ogrebattle64/include/class.h

114 lines
3.6 KiB
C

#ifndef __CLASS_H__
#define __CLASS_H__
#include <ultra64.h>
#include "assert.h"
#include "class_id.h"
#include "equipment_id.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 */ ClassId 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, ClassId);
u8 class_get_field_0x2c(u8 portrait, ClassId class);
u8 obClassGetAbilityFront(u8 portrait, ClassId class);
u8 obClassGetAbilityFrontHits(u8 portrait, ClassId class);
u8 obClassGetAbilityMiddle(u8 portrait, ClassId class);
u8 obClassGetAbilityMiddleHits(u8 portrait, ClassId class);
u8 obClassGetAbilityBack(u8 portrait, ClassId class);
u8 obClassGetAbilityBackHits(u8 portrait, ClassId class);
u8 class_get_field_0x4(u8 portrait, ClassId class);
u8 obClassGetGender(u8 portrait, ClassId class);
u8 obClassGetLeadershipRank(u8 portrait, ClassId class);
u8 class_get_global_flag(u8 portrait, ClassId class);
EquipmentId obClassGetItemUpperLeft(u8 portrait, ClassId class);
EquipmentId obClassGetItemUpperRight(u8 portrait, ClassId class);
EquipmentId obClassGetItemLowerLeft(u8 portrait, ClassId class);
EquipmentId obClassGetItemLowerRight(u8 portrait, ClassId class);
char *obClassGetAbilityFrontName(u8 portrait, ClassId class);
char *obClassGetAbilityMiddleName(u8 portrait, ClassId class);
char *obClassGetAbilityBackName(u8 portrait, ClassId class);
char *obClassGetName(u8 portrait, ClassId class);
u8 obClassGetAbility(u8 portrait, ClassId class, u8 row);
#endif // __CLASS_H__