#include "class.h" #include "common.h" #include "ability.h" INCLUDE_ASM(const s32, "class", func_8016D200); INCLUDE_ASM(const s32, "class", func_8016D254); INCLUDE_ASM(const s32, "class", func_8016D2A8); INCLUDE_ASM(const s32, "class", func_8016D2FC); INCLUDE_ASM(const s32, "class", func_8016D350); INCLUDE_ASM(const s32, "class", func_8016D3A4); INCLUDE_ASM(const s32, "class", func_8016D3F8); INCLUDE_ASM(const s32, "class", func_8016D44C); INCLUDE_ASM(const s32, "class", func_8016D4A0); INCLUDE_ASM(const s32, "class", func_8016D4F4); INCLUDE_ASM(const s32, "class", func_8016D548); INCLUDE_ASM(const s32, "class", func_8016D59C); INCLUDE_ASM(const s32, "class", func_8016D5F0); INCLUDE_ASM(const s32, "class", func_8016D644); INCLUDE_ASM(const s32, "class", func_8016D698); INCLUDE_ASM(const s32, "class", func_8016D6EC); INCLUDE_ASM(const s32, "class", func_8016D740); INCLUDE_ASM(const s32, "class", func_8016D794); INCLUDE_ASM(const s32, "class", func_8016D7E8); INCLUDE_ASM(const s32, "class", func_8016D83C); INCLUDE_ASM(const s32, "class", func_8016D890); INCLUDE_ASM(const s32, "class", func_8016D8E4); INCLUDE_ASM(const s32, "class", func_8016D938); INCLUDE_ASM(const s32, "class", func_8016D98C); INCLUDE_ASM(const s32, "class", func_8016D9E0); INCLUDE_ASM(const s32, "class", func_8016DA34); INCLUDE_ASM(const s32, "class", func_8016DA88); INCLUDE_ASM(const s32, "class", func_8016DADC); INCLUDE_ASM(const s32, "class", func_8016DB30); INCLUDE_ASM(const s32, "class", func_8016DB84); /* 43AD8 8016DBD8 */ u8 class_get_field_0x2c(u8 portrait, u8 class) { if (obClassData[portrait].field_0x45 == class) return obClassData[portrait].field_0x2c; return obClassData[class].field_0x2c; } /* 43B2C 8016DC2C */ u8 class_get_ability_front(u8 portrait, u8 class) { if (obClassData[portrait].field_0x45 == class) return obClassData[portrait].ability_front; return obClassData[class].ability_front; } /* 43B80 8016DC80 */ u8 class_get_ability_front_hitcount(u8 portrait, u8 class) { if (obClassData[portrait].field_0x45 == class) return obClassData[portrait].ability_front_hitcount; return obClassData[class].ability_front_hitcount; } /* 43BD4 8016DCD4 */ u8 class_get_ability_middle(u8 portrait, u8 class) { s32 var_v0; if (obClassData[portrait].field_0x45 != class) { var_v0 = class * 9; } else { var_v0 = obClassData[portrait].field_0x45 * 9; } return *(&obClassData->ability_middle + (var_v0 * 8)); } /* 43C20 8016DD20 */ u8 class_get_ability_middle_hitcount(u8 portrait, u8 class) { if (obClassData[portrait].field_0x45 == class) return obClassData[portrait].ability_middle_hitcount; return obClassData[class].ability_middle_hitcount; } /* 43C74 8016DD74 */ u8 class_get_ability_back(u8 portrait, u8 class) { if (obClassData[portrait].field_0x45 == class) return obClassData[portrait].ability_back; return obClassData[class].ability_back; } /* 43CC8 8016DDC8 */ u8 class_get_ability_back_hitcount(u8 portrait, u8 class) { if (obClassData[portrait].field_0x45 == class) return obClassData[portrait].ability_back_hitcount; return obClassData[class].ability_back_hitcount; } /* 43D1C 8016DE1C */ u8 class_get_field_0x4(u8 portrait, u8 class) { if (obClassData[portrait].field_0x45 == class) return obClassData[portrait].field_0x4; return obClassData[class].field_0x4; } /* 43D70 8016DE70 */ u8 class_get_gender(u8 portrait, u8 class) { if (obClassData[portrait].field_0x45 == class) return obClassData[portrait].gender; return obClassData[class].gender; } /* 43DC4 8016DEC4 */ u8 class_get_leadership_rank(u8 portrait, u8 class) { if (obClassData[portrait].field_0x45 == class) return obClassData[portrait].leadership_rank; return obClassData[class].leadership_rank; } /* 43E18 8016DF18 */ u8 class_get_global_flag(u8 portrait, u8 class) { u8 var_a1; var_a1 = class; if (D_8018ECE4[portrait].field_0x0 & 0x80) { if (obClassData[portrait].field_0x45 == var_a1) { var_a1 = portrait; } } return D_8018ECE4[var_a1].field_0x0 & 0x3F; } /* 43E88 8016DF88 */ EquipmentId class_get_item_upper_left(u8 portrait, u8 class) { if (obClassData[portrait].field_0x45 == class) return obClassData[portrait].item_upper_left; return obClassData[class].item_upper_left; } /* 43EDC 8016DFDC */ EquipmentId class_get_item_upper_right(u8 portrait, u8 class) { if (obClassData[portrait].field_0x45 == class) return obClassData[portrait].item_upper_right; return obClassData[class].item_upper_right; } /* 43F30 8016E030 */ EquipmentId class_get_item_lower_left(u8 portrait, u8 class) { if (obClassData[portrait].field_0x45 == class) return obClassData[portrait].item_lower_left; return obClassData[class].item_lower_left; } /* 43F84 8016E084 */ EquipmentId class_get_item_lower_right(u8 portrait, u8 class) { if (obClassData[portrait].field_0x45 == class) return obClassData[portrait].item_lower_right; return obClassData[class].item_lower_right; } /* 43FD8 8016E0D8 */ char* class_get_ability_front_name(u8 portrait, u8 class) { u8 var_v0; if (obClassData[portrait].field_0x45 == class) { var_v0 = obClassData[portrait].ability_front; } else { var_v0 = obClassData[class].ability_front; } return obAbilityGetName(var_v0); } /* 44040 8016E140 */ char* class_get_ability_middle_name(u8 portrait, u8 class) { // Possible a C macro wrapping? do { char* ret = obAbilityGetName(obClassData[class].ability_middle); return ret; } while(0); } /* 44074 8016E174 */ char* class_get_ability_back_name(u8 portrait, u8 class) { u8 var_v0; if (obClassData[portrait].field_0x45 == class) { var_v0 = obClassData[portrait].ability_back; } else { var_v0 = obClassData[class].ability_back; } return obAbilityGetName(var_v0); } /* 440DC 8016E1DC */ char* class_get_name(u8 portrait, u8 class) { if (obClassData[portrait].field_0x45 == class) return obClassData[portrait].name; return obClassData[class].name; } /* 44130 8016E230 */ u8 class_get_ability(u8 portrait, u8 class, u8 row) { if (obClassData[portrait].field_0x45 != class) portrait = class; if (row == 0) { return obClassData[portrait].ability_front != 0xFF ? obClassData[portrait].ability_front : obClassData[class].ability_front; } else if (row == 1) { return obClassData[portrait].ability_middle != 0xFF ? obClassData[portrait].ability_middle : obClassData[class].ability_middle; } else { return obClassData[portrait].ability_back != 0xFF ? obClassData[portrait].ability_back : obClassData[class].ability_back; } } /* 44238 8016E338 */ u8 class_get_ability_hitcount(u8 portrait, u8 class, u8 row) { if (obClassData[portrait].field_0x45 != class) portrait = class; if (row == 0) { return obClassData[portrait].ability_front_hitcount != 0xFF ? obClassData[portrait].ability_front_hitcount : obClassData[class].ability_front_hitcount; } else if (row == 1) { return obClassData[portrait].ability_middle_hitcount != 0xFF ? obClassData[portrait].ability_middle_hitcount : obClassData[class].ability_middle_hitcount; } else { return obClassData[portrait].ability_back_hitcount != 0xFF ? obClassData[portrait].ability_back_hitcount : obClassData[class].ability_back_hitcount; } }