#ifndef __CLASS_H__ #define __CLASS_H__ #include #include "assert.h" #include "equipment.h" #include "gender.h" typedef struct { /* 0x00 */ char* name; /* 0x04 */ u8 field_0x4; /* 0x05 */ Gender gender; /* 0x06 */ u8 leadership_rank; /* 0x07 */ u8 field_0x7; /* 0x08 */ u16 max_hp; /* 0x0a */ u8 field_0xa; /* 0x0b */ u8 field_0xb; /* 0x0c */ u16 strength; /* 0x0e */ u8 field_0xe; /* 0x0f */ u8 field_0xf; /* 0x10 */ u16 vitality; /* 0x12 */ u8 field_0x12; /* 0x13 */ u8 field_0x13; /* 0x14 */ u16 intelligence; /* 0x16 */ u8 field_0x16; /* 0x17 */ u8 field_0x17; /* 0x18 */ u16 mentality; /* 0x1a */ u8 field_0x1a; /* 0x1b */ u8 field_0x1b; /* 0x1c */ u16 agility; /* 0x1e */ u8 field_0x1e; /* 0x1f */ u8 field_0x1f; /* 0x20 */ u16 dexterity; /* 0x22 */ u8 field_0x22; /* 0x23 */ u8 field_0x23; /* 0x24 */ u8 field_0x24; /* 0x25 */ u8 field_0x25; /* 0x26 */ u8 field_0x26; /* 0x27 */ u8 field_0x27; /* 0x28 */ u8 field_0x28; /* 0x29 */ u8 field_0x29; /* 0x2a */ u8 field_0x2a; /* 0x2b */ u8 field_0x2b; /* 0x2c */ u8 field_0x2c; /* 0x2d */ u8 field_0x2d; /* 0x2e */ u16 item_upper_left; /* 0x30 */ u16 item_upper_right; /* 0x32 */ u16 item_lower_left; /* 0x34 */ u16 item_lower_right; /* 0x36 */ u8 field_0x36; // The ability which is used when the unit is placed in the front row. /* 0x37 */ u8 ability_front; // The amount of hits the unit performs when placed in the front row. /* 0x38 */ u8 ability_front_hitcount; // The ability which is used when the unit is placed in the middle row. /* 0x39 */ u8 ability_middle; // The amount of hits the unit performs when placed in the middle row. /* 0x3a */ u8 ability_middle_hitcount; // The ability which is used when the unit is placed in the back row. /* 0x3b */ u8 ability_back; // The amount of hits the unit performs when placed in the back row. /* 0x3c */ u8 ability_back_hitcount; /* 0x3d */ u8 field_0x3d; /* 0x3e */ u8 field_0x3e; /* 0x3f */ u8 field_0x3f; /* 0x40 */ u8 field_0x40; /* 0x41 */ u8 field_0x41; /* 0x42 */ u8 field_0x42; /* 0x43 */ u8 field_0x43; /* 0x44 */ u8 field_0x44; /* 0x45 */ u8 field_0x45; /* 0x46 */ u8 element; /* 0x47 */ u8 max_items; } ClassData; // size:0x48 ASSERT_SIZE(ClassData, 0x48); extern ClassData obClassData[]; extern EquipmentId (*FP_CLASS_GET_ITEM_1[4])(u8, u8); extern u8 class_get_field_0x2c(u8 portrait, u8 class); extern u8 obClassGetAbilityFront(u8 portrait, u8 class); extern u8 obClassGetAbilityFrontHits(u8 portrait, u8 class); extern u8 obClassGetAbilityMiddle(u8 portrait, u8 class); extern u8 obClassGetAbilityMiddleHits(u8 portrait, u8 class); extern u8 obClassGetAbilityBack(u8 portrait, u8 class); extern u8 obClassGetAbilityBackHits(u8 portrait, u8 class); extern u8 class_get_field_0x4(u8 portrait, u8 class); extern u8 obClassGetGender(u8 portrait, u8 class); extern u8 obClassGetLeadershipRank(u8 portrait, u8 class); extern u8 class_get_global_flag(u8 portrait, u8 class); extern EquipmentId obClassGetItemUpperLeft(u8 portrait, u8 class); extern EquipmentId obClassGetItemUpperRight(u8 portrait, u8 class); extern EquipmentId obClassGetItemLowerLeft(u8 portrait, u8 class); extern EquipmentId obClassGetItemLowerRight(u8 portrait, u8 class); extern char* obClassGetAbilityFrontName(u8 portrait, u8 class); extern char* obClassGetAbilityMiddleName(u8 portrait, u8 class); extern char* obClassGetAbilityBackName(u8 portrait, u8 class); extern char* obClassGetName(u8 portrait, u8 class); #endif // __CLASS_H__