fixes
This commit is contained in:
@@ -12,7 +12,13 @@ func (gd *GameReader) GetKeyBindings() data.KeyBindings {
|
||||
blobSkills := gd.ReadBytesFromMemory(gd.moduleBaseAddressPtr+gd.offset.KeyBindingsSkillsOffset, 0x500)
|
||||
|
||||
skillsKB := [16]data.SkillBinding{}
|
||||
// Skills 0-6: slots 14-20
|
||||
|
||||
// The skill blob stores 16 skill IDs contiguously at 0x1C stride.
|
||||
// The key blob stores VK codes in three separate regions:
|
||||
// F1-F7 at 0x118 (stride 0x14), F8 at 0x384, NUMPAD0-6 at 0x208 (stride 0x14), extra at 0x398.
|
||||
// The skill blob order is: F1, F2, ..., F7, F8, NUMPAD0, ..., NUMPAD6, extra.
|
||||
|
||||
// Skills 0-6: F1-F7 (key region at 0x118, stride 0x14)
|
||||
for i := 0; i < 7; i++ {
|
||||
skillsKB[i] = data.SkillBinding{
|
||||
SkillID: skill.ID(binary.LittleEndian.Uint32(blobSkills[i*0x1c : i*0x1c+4])),
|
||||
@@ -22,9 +28,19 @@ func (gd *GameReader) GetKeyBindings() data.KeyBindings {
|
||||
},
|
||||
}
|
||||
}
|
||||
// Skills 7-13: slots 26-32
|
||||
|
||||
// Skill 7: F8 (key at 0x384)
|
||||
skillsKB[7] = data.SkillBinding{
|
||||
SkillID: skill.ID(binary.LittleEndian.Uint32(blobSkills[7*0x1c : 7*0x1c+4])),
|
||||
KeyBinding: data.KeyBinding{
|
||||
Key1: [2]byte{blob[0x384], blob[0x385]},
|
||||
Key2: [2]byte{blob[0x38e], blob[0x38f]},
|
||||
},
|
||||
}
|
||||
|
||||
// Skills 8-14: NUMPAD0-NUMPAD6 (key region at 0x208, stride 0x14)
|
||||
for i := 0; i < 7; i++ {
|
||||
skillIdx := i + 7
|
||||
skillIdx := i + 8
|
||||
skillsKB[skillIdx] = data.SkillBinding{
|
||||
SkillID: skill.ID(binary.LittleEndian.Uint32(blobSkills[skillIdx*0x1c : skillIdx*0x1c+4])),
|
||||
KeyBinding: data.KeyBinding{
|
||||
@@ -33,16 +49,14 @@ func (gd *GameReader) GetKeyBindings() data.KeyBindings {
|
||||
},
|
||||
}
|
||||
}
|
||||
// Skills 14-15: slots 45-46
|
||||
for i := 0; i < 2; i++ {
|
||||
skillIdx := i + 14
|
||||
skillsKB[skillIdx] = data.SkillBinding{
|
||||
SkillID: skill.ID(binary.LittleEndian.Uint32(blobSkills[skillIdx*0x1c : skillIdx*0x1c+4])),
|
||||
KeyBinding: data.KeyBinding{
|
||||
Key1: [2]byte{blob[0x384+(i*0x14)], blob[0x385+(i*0x14)]},
|
||||
Key2: [2]byte{blob[0x38e+(i*0x14)], blob[0x38f+(i*0x14)]},
|
||||
},
|
||||
}
|
||||
|
||||
// Skill 15: extra slot (key at 0x398)
|
||||
skillsKB[15] = data.SkillBinding{
|
||||
SkillID: skill.ID(binary.LittleEndian.Uint32(blobSkills[15*0x1c : 15*0x1c+4])),
|
||||
KeyBinding: data.KeyBinding{
|
||||
Key1: [2]byte{blob[0x398], blob[0x399]},
|
||||
Key2: [2]byte{blob[0x3a2], blob[0x3a3]},
|
||||
},
|
||||
}
|
||||
|
||||
belt := [4]data.KeyBinding{}
|
||||
|
||||
Reference in New Issue
Block a user