Add ClassId
This commit is contained in:
parent
c7690712d2
commit
9fe0a8f5f4
|
|
@ -4,6 +4,7 @@
|
||||||
#include <ultra64.h>
|
#include <ultra64.h>
|
||||||
|
|
||||||
#include "assert.h"
|
#include "assert.h"
|
||||||
|
#include "class_id.h"
|
||||||
#include "element.h"
|
#include "element.h"
|
||||||
#include "gender.h"
|
#include "gender.h"
|
||||||
|
|
||||||
|
|
@ -15,7 +16,7 @@ typedef struct {
|
||||||
/* 0x00 */ s8 name[0x10];
|
/* 0x00 */ s8 name[0x10];
|
||||||
/* 0x10 */ u8 field_0x10;
|
/* 0x10 */ u8 field_0x10;
|
||||||
/* 0x11 */ u8 portrait;
|
/* 0x11 */ u8 portrait;
|
||||||
/* 0x12 */ u8 class;
|
/* 0x12 */ ClassId class;
|
||||||
/* 0x13 */ u8 level;
|
/* 0x13 */ u8 level;
|
||||||
/* 0x14 */ Gender gender;
|
/* 0x14 */ Gender gender;
|
||||||
/* 0x15 */ u8 field_0x15;
|
/* 0x15 */ u8 field_0x15;
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@
|
||||||
#include <ultra64.h>
|
#include <ultra64.h>
|
||||||
|
|
||||||
#include "assert.h"
|
#include "assert.h"
|
||||||
|
#include "class_id.h"
|
||||||
#include "equipment_id.h"
|
#include "equipment_id.h"
|
||||||
#include "gender.h"
|
#include "gender.h"
|
||||||
|
|
||||||
|
|
@ -76,7 +77,7 @@ typedef struct {
|
||||||
/* 0x42 */ u8 field_0x42;
|
/* 0x42 */ u8 field_0x42;
|
||||||
/* 0x43 */ u8 field_0x43;
|
/* 0x43 */ u8 field_0x43;
|
||||||
/* 0x44 */ u8 field_0x44;
|
/* 0x44 */ u8 field_0x44;
|
||||||
/* 0x45 */ u8 field_0x45;
|
/* 0x45 */ ClassId field_0x45;
|
||||||
/* 0x46 */ u8 element;
|
/* 0x46 */ u8 element;
|
||||||
/* 0x47 */ u8 max_items;
|
/* 0x47 */ u8 max_items;
|
||||||
} ClassData; // size:0x48
|
} ClassData; // size:0x48
|
||||||
|
|
@ -86,26 +87,26 @@ ASSERT_SIZE(ClassData, 0x48);
|
||||||
extern ClassData obClassData[];
|
extern ClassData obClassData[];
|
||||||
extern EquipmentId (*FP_CLASS_GET_ITEM_1[4])(u8, u8);
|
extern EquipmentId (*FP_CLASS_GET_ITEM_1[4])(u8, u8);
|
||||||
|
|
||||||
extern u8 class_get_field_0x2c(u8 portrait, u8 class);
|
extern u8 class_get_field_0x2c(u8 portrait, ClassId class);
|
||||||
extern u8 obClassGetAbilityFront(u8 portrait, u8 class);
|
extern u8 obClassGetAbilityFront(u8 portrait, ClassId class);
|
||||||
extern u8 obClassGetAbilityFrontHits(u8 portrait, u8 class);
|
extern u8 obClassGetAbilityFrontHits(u8 portrait, ClassId class);
|
||||||
extern u8 obClassGetAbilityMiddle(u8 portrait, u8 class);
|
extern u8 obClassGetAbilityMiddle(u8 portrait, ClassId class);
|
||||||
extern u8 obClassGetAbilityMiddleHits(u8 portrait, u8 class);
|
extern u8 obClassGetAbilityMiddleHits(u8 portrait, ClassId class);
|
||||||
extern u8 obClassGetAbilityBack(u8 portrait, u8 class);
|
extern u8 obClassGetAbilityBack(u8 portrait, ClassId class);
|
||||||
extern u8 obClassGetAbilityBackHits(u8 portrait, u8 class);
|
extern u8 obClassGetAbilityBackHits(u8 portrait, ClassId class);
|
||||||
extern u8 class_get_field_0x4(u8 portrait, u8 class);
|
extern u8 class_get_field_0x4(u8 portrait, ClassId class);
|
||||||
extern u8 obClassGetGender(u8 portrait, u8 class);
|
extern u8 obClassGetGender(u8 portrait, ClassId class);
|
||||||
extern u8 obClassGetLeadershipRank(u8 portrait, u8 class);
|
extern u8 obClassGetLeadershipRank(u8 portrait, ClassId class);
|
||||||
extern u8 class_get_global_flag(u8 portrait, u8 class);
|
extern u8 class_get_global_flag(u8 portrait, ClassId class);
|
||||||
|
|
||||||
extern EquipmentId obClassGetItemUpperLeft(u8 portrait, u8 class);
|
extern EquipmentId obClassGetItemUpperLeft(u8 portrait, ClassId class);
|
||||||
extern EquipmentId obClassGetItemUpperRight(u8 portrait, u8 class);
|
extern EquipmentId obClassGetItemUpperRight(u8 portrait, ClassId class);
|
||||||
extern EquipmentId obClassGetItemLowerLeft(u8 portrait, u8 class);
|
extern EquipmentId obClassGetItemLowerLeft(u8 portrait, ClassId class);
|
||||||
extern EquipmentId obClassGetItemLowerRight(u8 portrait, u8 class);
|
extern EquipmentId obClassGetItemLowerRight(u8 portrait, ClassId class);
|
||||||
|
|
||||||
extern char* obClassGetAbilityFrontName(u8 portrait, u8 class);
|
extern char *obClassGetAbilityFrontName(u8 portrait, ClassId class);
|
||||||
extern char* obClassGetAbilityMiddleName(u8 portrait, u8 class);
|
extern char *obClassGetAbilityMiddleName(u8 portrait, ClassId class);
|
||||||
extern char* obClassGetAbilityBackName(u8 portrait, u8 class);
|
extern char *obClassGetAbilityBackName(u8 portrait, ClassId class);
|
||||||
extern char* obClassGetName(u8 portrait, u8 class);
|
extern char *obClassGetName(u8 portrait, ClassId class);
|
||||||
|
|
||||||
#endif // __CLASS_H__
|
#endif // __CLASS_H__
|
||||||
|
|
@ -0,0 +1,20 @@
|
||||||
|
#ifndef __CLASS_ID_H__
|
||||||
|
#define __CLASS_ID_H__
|
||||||
|
|
||||||
|
#include <ultratypes.h>
|
||||||
|
|
||||||
|
typedef u8 ClassId;
|
||||||
|
|
||||||
|
#define CLASS_ID_SOLDIER 1
|
||||||
|
#define CLASS_ID_FIGHTER 2
|
||||||
|
#define CLASS_ID_LYCANTROPE 3
|
||||||
|
#define CLASS_ID_AMAZON 4
|
||||||
|
#define CLASS_ID_KNIGHT 5
|
||||||
|
#define CLASS_ID_BERSERKER 6
|
||||||
|
#define CLASS_ID_FENCER 7
|
||||||
|
#define CLASS_ID_PHALANX 8
|
||||||
|
#define CLASS_ID_BEAST_TAMER 9
|
||||||
|
#define CLASS_ID_DOLL_MASTER 10
|
||||||
|
#define CLASS_ID_NINJA 11
|
||||||
|
|
||||||
|
#endif // __CLASS_ID_H__
|
||||||
|
|
@ -5853,7 +5853,7 @@ u8 D_8018B484[] = { 0xFF, 0x3C, 0x44, 0x4C, 0x54, 0x9A, 0x60, 0x00 };
|
||||||
u8 D_8018B48C[] = { 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x00 };
|
u8 D_8018B48C[] = { 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x00 };
|
||||||
|
|
||||||
/* 61394 8018B494 */
|
/* 61394 8018B494 */
|
||||||
u16 (*FP_CLASS_GET_ITEM_1[])(u8 portrait, u8 class) = {
|
u16 (*FP_CLASS_GET_ITEM_1[])(u8 portrait, ClassId class) = {
|
||||||
class_get_item_upper_left,
|
class_get_item_upper_left,
|
||||||
class_get_item_upper_right,
|
class_get_item_upper_right,
|
||||||
class_get_item_lower_left,
|
class_get_item_lower_left,
|
||||||
|
|
|
||||||
|
|
@ -66,7 +66,7 @@ INCLUDE_ASM(const s32, "segment_obdata/_ob_fierce_selection", func_8016DB30);
|
||||||
INCLUDE_ASM(const s32, "segment_obdata/_ob_fierce_selection", func_8016DB84);
|
INCLUDE_ASM(const s32, "segment_obdata/_ob_fierce_selection", func_8016DB84);
|
||||||
|
|
||||||
/* 43AD8 8016DBD8 */
|
/* 43AD8 8016DBD8 */
|
||||||
u8 class_get_field_0x2c(u8 portrait, u8 class) {
|
u8 class_get_field_0x2c(u8 portrait, ClassId class) {
|
||||||
if (obClassData[portrait].field_0x45 == class)
|
if (obClassData[portrait].field_0x45 == class)
|
||||||
return obClassData[portrait].field_0x2c;
|
return obClassData[portrait].field_0x2c;
|
||||||
|
|
||||||
|
|
@ -74,7 +74,7 @@ u8 class_get_field_0x2c(u8 portrait, u8 class) {
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 43B2C 8016DC2C */
|
/* 43B2C 8016DC2C */
|
||||||
u8 obClassGetAbilityFront(u8 portrait, u8 class) {
|
u8 obClassGetAbilityFront(u8 portrait, ClassId class) {
|
||||||
if (obClassData[portrait].field_0x45 == class)
|
if (obClassData[portrait].field_0x45 == class)
|
||||||
return obClassData[portrait].ability_front;
|
return obClassData[portrait].ability_front;
|
||||||
|
|
||||||
|
|
@ -82,7 +82,7 @@ u8 obClassGetAbilityFront(u8 portrait, u8 class) {
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 43B80 8016DC80 */
|
/* 43B80 8016DC80 */
|
||||||
u8 obClassGetAbilityFrontHits(u8 portrait, u8 class) {
|
u8 obClassGetAbilityFrontHits(u8 portrait, ClassId class) {
|
||||||
if (obClassData[portrait].field_0x45 == class)
|
if (obClassData[portrait].field_0x45 == class)
|
||||||
return obClassData[portrait].ability_front_hitcount;
|
return obClassData[portrait].ability_front_hitcount;
|
||||||
|
|
||||||
|
|
@ -90,7 +90,7 @@ u8 obClassGetAbilityFrontHits(u8 portrait, u8 class) {
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 43BD4 8016DCD4 */
|
/* 43BD4 8016DCD4 */
|
||||||
u8 obClassGetAbilityMiddle(u8 portrait, u8 class) {
|
u8 obClassGetAbilityMiddle(u8 portrait, ClassId class) {
|
||||||
s32 var_v0;
|
s32 var_v0;
|
||||||
|
|
||||||
if (obClassData[portrait].field_0x45 != class) {
|
if (obClassData[portrait].field_0x45 != class) {
|
||||||
|
|
@ -102,7 +102,7 @@ u8 obClassGetAbilityMiddle(u8 portrait, u8 class) {
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 43C20 8016DD20 */
|
/* 43C20 8016DD20 */
|
||||||
u8 obClassGetAbilityMiddleHits(u8 portrait, u8 class) {
|
u8 obClassGetAbilityMiddleHits(u8 portrait, ClassId class) {
|
||||||
if (obClassData[portrait].field_0x45 == class)
|
if (obClassData[portrait].field_0x45 == class)
|
||||||
return obClassData[portrait].ability_middle_hitcount;
|
return obClassData[portrait].ability_middle_hitcount;
|
||||||
|
|
||||||
|
|
@ -110,7 +110,7 @@ u8 obClassGetAbilityMiddleHits(u8 portrait, u8 class) {
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 43C74 8016DD74 */
|
/* 43C74 8016DD74 */
|
||||||
u8 obClassGetAbilityBack(u8 portrait, u8 class) {
|
u8 obClassGetAbilityBack(u8 portrait, ClassId class) {
|
||||||
if (obClassData[portrait].field_0x45 == class)
|
if (obClassData[portrait].field_0x45 == class)
|
||||||
return obClassData[portrait].ability_back;
|
return obClassData[portrait].ability_back;
|
||||||
|
|
||||||
|
|
@ -118,7 +118,7 @@ u8 obClassGetAbilityBack(u8 portrait, u8 class) {
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 43CC8 8016DDC8 */
|
/* 43CC8 8016DDC8 */
|
||||||
u8 obClassGetAbilityBackHits(u8 portrait, u8 class) {
|
u8 obClassGetAbilityBackHits(u8 portrait, ClassId class) {
|
||||||
if (obClassData[portrait].field_0x45 == class)
|
if (obClassData[portrait].field_0x45 == class)
|
||||||
return obClassData[portrait].ability_back_hitcount;
|
return obClassData[portrait].ability_back_hitcount;
|
||||||
|
|
||||||
|
|
@ -126,7 +126,7 @@ u8 obClassGetAbilityBackHits(u8 portrait, u8 class) {
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 43D1C 8016DE1C */
|
/* 43D1C 8016DE1C */
|
||||||
u8 class_get_field_0x4(u8 portrait, u8 class) {
|
u8 class_get_field_0x4(u8 portrait, ClassId class) {
|
||||||
if (obClassData[portrait].field_0x45 == class)
|
if (obClassData[portrait].field_0x45 == class)
|
||||||
return obClassData[portrait].field_0x4;
|
return obClassData[portrait].field_0x4;
|
||||||
|
|
||||||
|
|
@ -134,7 +134,7 @@ u8 class_get_field_0x4(u8 portrait, u8 class) {
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 43D70 8016DE70 */
|
/* 43D70 8016DE70 */
|
||||||
Gender obClassGetGender(u8 portrait, u8 class) {
|
Gender obClassGetGender(u8 portrait, ClassId class) {
|
||||||
if (obClassData[portrait].field_0x45 == class)
|
if (obClassData[portrait].field_0x45 == class)
|
||||||
return obClassData[portrait].gender;
|
return obClassData[portrait].gender;
|
||||||
|
|
||||||
|
|
@ -142,7 +142,7 @@ Gender obClassGetGender(u8 portrait, u8 class) {
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 43DC4 8016DEC4 */
|
/* 43DC4 8016DEC4 */
|
||||||
u8 obClassGetLeadershipRank(u8 portrait, u8 class) {
|
u8 obClassGetLeadershipRank(u8 portrait, ClassId class) {
|
||||||
if (obClassData[portrait].field_0x45 == class)
|
if (obClassData[portrait].field_0x45 == class)
|
||||||
return obClassData[portrait].leadership_rank;
|
return obClassData[portrait].leadership_rank;
|
||||||
|
|
||||||
|
|
@ -150,7 +150,7 @@ u8 obClassGetLeadershipRank(u8 portrait, u8 class) {
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 43E18 8016DF18 */
|
/* 43E18 8016DF18 */
|
||||||
u8 class_get_global_flag(u8 portrait, u8 class) {
|
u8 class_get_global_flag(u8 portrait, ClassId class) {
|
||||||
u8 var_a1;
|
u8 var_a1;
|
||||||
|
|
||||||
var_a1 = class;
|
var_a1 = class;
|
||||||
|
|
@ -163,7 +163,7 @@ u8 class_get_global_flag(u8 portrait, u8 class) {
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 43E88 8016DF88 */
|
/* 43E88 8016DF88 */
|
||||||
EquipmentId obClassGetItemUpperLeft(u8 portrait, u8 class) {
|
EquipmentId obClassGetItemUpperLeft(u8 portrait, ClassId class) {
|
||||||
if (obClassData[portrait].field_0x45 == class)
|
if (obClassData[portrait].field_0x45 == class)
|
||||||
return obClassData[portrait].item_upper_left;
|
return obClassData[portrait].item_upper_left;
|
||||||
|
|
||||||
|
|
@ -171,7 +171,7 @@ EquipmentId obClassGetItemUpperLeft(u8 portrait, u8 class) {
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 43EDC 8016DFDC */
|
/* 43EDC 8016DFDC */
|
||||||
EquipmentId obClassGetItemUpperRight(u8 portrait, u8 class) {
|
EquipmentId obClassGetItemUpperRight(u8 portrait, ClassId class) {
|
||||||
if (obClassData[portrait].field_0x45 == class)
|
if (obClassData[portrait].field_0x45 == class)
|
||||||
return obClassData[portrait].item_upper_right;
|
return obClassData[portrait].item_upper_right;
|
||||||
|
|
||||||
|
|
@ -179,7 +179,7 @@ EquipmentId obClassGetItemUpperRight(u8 portrait, u8 class) {
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 43F30 8016E030 */
|
/* 43F30 8016E030 */
|
||||||
EquipmentId obClassGetItemLowerLeft(u8 portrait, u8 class) {
|
EquipmentId obClassGetItemLowerLeft(u8 portrait, ClassId class) {
|
||||||
if (obClassData[portrait].field_0x45 == class)
|
if (obClassData[portrait].field_0x45 == class)
|
||||||
return obClassData[portrait].item_lower_left;
|
return obClassData[portrait].item_lower_left;
|
||||||
|
|
||||||
|
|
@ -187,7 +187,7 @@ EquipmentId obClassGetItemLowerLeft(u8 portrait, u8 class) {
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 43F84 8016E084 */
|
/* 43F84 8016E084 */
|
||||||
EquipmentId obClassGetItemLowerRight(u8 portrait, u8 class) {
|
EquipmentId obClassGetItemLowerRight(u8 portrait, ClassId class) {
|
||||||
if (obClassData[portrait].field_0x45 == class)
|
if (obClassData[portrait].field_0x45 == class)
|
||||||
return obClassData[portrait].item_lower_right;
|
return obClassData[portrait].item_lower_right;
|
||||||
|
|
||||||
|
|
@ -195,7 +195,7 @@ EquipmentId obClassGetItemLowerRight(u8 portrait, u8 class) {
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 43FD8 8016E0D8 */
|
/* 43FD8 8016E0D8 */
|
||||||
char* obClassGetAbilityFrontName(u8 portrait, u8 class) {
|
char* obClassGetAbilityFrontName(u8 portrait, ClassId class) {
|
||||||
u8 var_v0;
|
u8 var_v0;
|
||||||
|
|
||||||
if (obClassData[portrait].field_0x45 == class) {
|
if (obClassData[portrait].field_0x45 == class) {
|
||||||
|
|
@ -208,7 +208,7 @@ char* obClassGetAbilityFrontName(u8 portrait, u8 class) {
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 44040 8016E140 */
|
/* 44040 8016E140 */
|
||||||
char* obClassGetAbilityMiddleName(u8 portrait, u8 class) {
|
char* obClassGetAbilityMiddleName(u8 portrait, ClassId class) {
|
||||||
// Possible a C macro wrapping?
|
// Possible a C macro wrapping?
|
||||||
do {
|
do {
|
||||||
char* ret = obAbilityGetName(obClassData[class].ability_middle);
|
char* ret = obAbilityGetName(obClassData[class].ability_middle);
|
||||||
|
|
@ -217,7 +217,7 @@ char* obClassGetAbilityMiddleName(u8 portrait, u8 class) {
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 44074 8016E174 */
|
/* 44074 8016E174 */
|
||||||
char* obClassGetAbilityBackName(u8 portrait, u8 class) {
|
char* obClassGetAbilityBackName(u8 portrait, ClassId class) {
|
||||||
u8 var_v0;
|
u8 var_v0;
|
||||||
|
|
||||||
if (obClassData[portrait].field_0x45 == class) {
|
if (obClassData[portrait].field_0x45 == class) {
|
||||||
|
|
@ -230,7 +230,7 @@ char* obClassGetAbilityBackName(u8 portrait, u8 class) {
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 440DC 8016E1DC */
|
/* 440DC 8016E1DC */
|
||||||
char* obClassGetName(u8 portrait, u8 class) {
|
char* obClassGetName(u8 portrait, ClassId class) {
|
||||||
if (obClassData[portrait].field_0x45 == class)
|
if (obClassData[portrait].field_0x45 == class)
|
||||||
return obClassData[portrait].name;
|
return obClassData[portrait].name;
|
||||||
|
|
||||||
|
|
@ -238,7 +238,7 @@ char* obClassGetName(u8 portrait, u8 class) {
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 44130 8016E230 */
|
/* 44130 8016E230 */
|
||||||
u8 obClassGetAbility(u8 portrait, u8 class, u8 row)
|
u8 obClassGetAbility(u8 portrait, ClassId class, u8 row)
|
||||||
{
|
{
|
||||||
if (obClassData[portrait].field_0x45 != class)
|
if (obClassData[portrait].field_0x45 != class)
|
||||||
portrait = class;
|
portrait = class;
|
||||||
|
|
@ -253,7 +253,7 @@ u8 obClassGetAbility(u8 portrait, u8 class, u8 row)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 44238 8016E338 */
|
/* 44238 8016E338 */
|
||||||
u8 obClassGetAbilityHits(u8 portrait, u8 class, u8 row) {
|
u8 obClassGetAbilityHits(u8 portrait, ClassId class, u8 row) {
|
||||||
if (obClassData[portrait].field_0x45 != class)
|
if (obClassData[portrait].field_0x45 != class)
|
||||||
portrait = class;
|
portrait = class;
|
||||||
|
|
||||||
|
|
@ -298,7 +298,7 @@ Element obAbilityGetElement(u8 index, u16 arg1, u16 arg2, s32 arg3, u16 arg4) {
|
||||||
INCLUDE_ASM(const s32, "segment_obdata/_ob_fierce_selection", func_8016E50C);
|
INCLUDE_ASM(const s32, "segment_obdata/_ob_fierce_selection", func_8016E50C);
|
||||||
|
|
||||||
/* 44934 8016EA34 */
|
/* 44934 8016EA34 */
|
||||||
u8 func_8016EA34(u8 portrait, u8 class, u8 arg2)
|
u8 func_8016EA34(u8 portrait, ClassId class, u8 arg2)
|
||||||
{
|
{
|
||||||
if (obClassData[portrait].field_0x45 != class)
|
if (obClassData[portrait].field_0x45 != class)
|
||||||
portrait = class;
|
portrait = class;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue