ogrebattle64/include/class.h

107 lines
3.6 KiB
C

#ifndef __CLASS_H__
#define __CLASS_H__
#include <ultra64.h>
#include "item.h"
typedef struct {
/* 0x00 */ char* name;
/* 0x04 */ u8 field_0x4;
/* 0x05 */ u8 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
extern ClassData CLASS_DATA[];
extern ItemId (*FP_CLASS_GET_ITEM[4])(u8, u8);
extern u8 class_get_field_0x2c(u8 portrait, u8 class);
extern u8 class_get_ability_front(u8 portrait, u8 class);
extern u8 class_get_ability_front_hitcount(u8 portrait, u8 class);
extern u8 class_get_ability_middle(u8 portrait, u8 class);
extern u8 class_get_ability_middle_hitcount(u8 portrait, u8 class);
extern u8 class_get_ability_back(u8 portrait, u8 class);
extern u8 class_get_ability_back_hitcount(u8 portrait, u8 class);
extern u8 class_get_field_0x4(u8 portrait, u8 class);
extern u8 class_get_gender(u8 portrait, u8 class);
extern u8 class_get_leadership_rank(u8 portrait, u8 class);
extern u8 class_get_global_flag(u8 portrait, u8 class);
extern ItemId class_get_item_upper_left(u8 portrait, u8 class);
extern ItemId class_get_item_upper_right(u8 portrait, u8 class);
extern ItemId class_get_item_lower_left(u8 portrait, u8 class);
extern ItemId class_get_item_lower_right(u8 portrait, u8 class);
extern char* class_get_ability_front_name(u8 portrait, u8 class);
extern char* class_get_ability_middle_name(u8 portrait, u8 class);
extern char* class_get_ability_back_name(u8 portrait, u8 class);
extern char* class_get_name(u8 portrait, u8 class);
#endif // __CLASS_H__