Corrected AbilityData
This commit is contained in:
parent
f0091a98ae
commit
0003efebb1
|
|
@ -297,19 +297,19 @@ extern u8 D_800A872C;
|
|||
extern CharacterSlot CHARACTER_SLOT[];
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u8 field_0x0;
|
||||
/* 0x01 */ Element element;
|
||||
/* 0x02 */ u8 field_0x2;
|
||||
/* 0x03 */ u8 field_0x3;
|
||||
/* 0x04 */ u8 field_0x4;
|
||||
/* 0x05 */ u8 field_0x5;
|
||||
/* 0x06 */ u8 field_0x6;
|
||||
/* 0x07 */ u8 field_0x7;
|
||||
/* 0x08 */ u8 field_0x8;
|
||||
/* 0x09 */ u8 field_0x9;
|
||||
/* 0x0a */ u8 field_0xa;
|
||||
/* 0x0b */ u8 field_0xb;
|
||||
/* 0x0c */ const char* name;
|
||||
/* 0x00 */ const char* name;
|
||||
/* 0x04 */ u8 field_0x0;
|
||||
/* 0x05 */ Element element;
|
||||
/* 0x06 */ u8 field_0x2;
|
||||
/* 0x07 */ u8 field_0x3;
|
||||
/* 0x08 */ u8 field_0x4;
|
||||
/* 0x09 */ u8 field_0x5;
|
||||
/* 0x0a */ u8 field_0x6;
|
||||
/* 0x0b */ u8 field_0x7;
|
||||
/* 0x0c */ u8 field_0x8;
|
||||
/* 0x0d */ u8 field_0x9;
|
||||
/* 0x0e */ u8 field_0xa;
|
||||
/* 0x0f */ u8 field_0xb;
|
||||
} AbilityData; // size:0x10
|
||||
|
||||
extern AbilityData ABILITY_DATA[];
|
||||
|
|
|
|||
|
|
@ -165,7 +165,7 @@ char* item_get_name(u16 index) {
|
|||
}
|
||||
|
||||
/* 454C8 8016F5C8 */
|
||||
u8 item_get_type(u16 index) {
|
||||
ItemType item_get_type(u16 index) {
|
||||
return ITEM_DATA[index].type;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ STR_PETRIFICATION = 0x8021DFA0; // rom:0x1B22B0
|
|||
|
||||
STR_PHYSICAL = 0x80187660; // rom:0x5D560 type:asciz
|
||||
|
||||
ABILITY_DATA = 0x8018AA80; // rom:0x60980 size:0x10
|
||||
ABILITY_DATA = 0x8018AA7C; // rom:0x6097C size:0x10
|
||||
ability_get_element = 0x8016E470;
|
||||
|
||||
ITEM_DATA = 0x8018C40C; // size:0x20
|
||||
|
|
|
|||
|
|
@ -2,6 +2,9 @@ from ob import read_rom, ELEMENT_NAME
|
|||
|
||||
from struct import unpack_from
|
||||
|
||||
NAME_VADDR_START = 0x8016AF80
|
||||
NAME_ADDR_START = 0x40E80
|
||||
|
||||
def read_attack(index):
|
||||
ATTACK_SIZE = 0x10
|
||||
ATTACK_FORMAT = '>BBBBBBBBBBBBI'
|
||||
|
|
@ -14,14 +17,12 @@ def read_attack(index):
|
|||
length = 0x6136B - 0x60980
|
||||
|
||||
for i in range(0, 130):
|
||||
name_vaddr_start = 0x801876FC
|
||||
name_addr_start = 0x5D5FC
|
||||
|
||||
(field_0x0, element, field_0x2, field_0x3, field_0x4,
|
||||
field_0x5, field_0x6, field_0x7, field_0x8, field_0x9,
|
||||
field_0xa, field_0xb, name_vaddr) = read_attack(i)
|
||||
|
||||
name_addr_diff = (name_vaddr - name_vaddr_start) + name_addr_start
|
||||
name_addr_diff = (name_vaddr - NAME_VADDR_START) + NAME_ADDR_START
|
||||
name = read_rom(name_addr_diff, name_addr_diff + 32).split(b'\0', 1)[0]
|
||||
|
||||
print(f"{name}:\t", (field_0x0, field_0x2, field_0x3, field_0x4, field_0x5,
|
||||
|
|
|
|||
|
|
@ -39,10 +39,15 @@ ITEM_TYPE_NAME = {
|
|||
19: "Robe",
|
||||
20: "Garment",
|
||||
21: "Helm",
|
||||
22: "Headgear",
|
||||
23: "Spellbook",
|
||||
24: "Fan",
|
||||
25: "Accessory",
|
||||
|
||||
255: "Invalid"
|
||||
}
|
||||
|
||||
for i in range(1, 276):
|
||||
for i in range(0, 279):
|
||||
# print(f"Item {i}:")
|
||||
(name_vaddr, item_type, element, field_0x2, field_0x3, field_0x4,
|
||||
strength, intelligence, agility, dexterity, vitality,
|
||||
|
|
@ -53,6 +58,8 @@ for i in range(1, 276):
|
|||
|
||||
(field_0xc, res_strike, res_wind, res_fire, res_earth, res_water,
|
||||
res_holy, res_dark, *rest) = rest
|
||||
|
||||
rest = (field_0xc, *rest)
|
||||
|
||||
type_str = ITEM_TYPE_NAME[item_type] if item_type in ITEM_TYPE_NAME else f"Unknown({item_type})"
|
||||
|
||||
|
|
|
|||
|
|
@ -19,6 +19,7 @@ ELEMENT_NAME = {
|
|||
14: "Unknown_14",
|
||||
|
||||
15: "Unknown_15",
|
||||
16: "Wind (Special)",
|
||||
|
||||
255: "Invalid"
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue