ogrebattle64/include/equipment.h

126 lines
4.3 KiB
C

#ifndef __ITEM_H__
#define __ITEM_H__
#include <ultra64.h>
#include "assert.h"
#include "element.h"
typedef u8 EquipmentType;
#define EQUIPMENT_TYPE_SWORD 0x01
#define EQUIPMENT_TYPE_GREATSWORD 0x02
#define EQUIPMENT_TYPE_THRUSTING_SWORD 0x03
#define EQUIPMENT_TYPE_1_HANDED_HAMMER 0x04
#define EQUIPMENT_TYPE_2_HANDED_HAMMER 0x05
#define EQUIPMENT_TYPE_SHORT_SPEAR 0x06
#define EQUIPMENT_TYPE_SPEAR 0x07
#define EQUIPMENT_TYPE_WHIP 0x08
#define EQUIPMENT_TYPE_CLAW 0x09
#define EQUIPMENT_TYPE_BOW 0x0a
#define EQUIPMENT_TYPE_MACE 0x0b
#define EQUIPMENT_TYPE_STAFF 0x0c
#define EQUIPMENT_TYPE_DOLL 0x0d
#define EQUIPMENT_TYPE_SMALL_SHIELD 0x0e
#define EQUIPMENT_TYPE_SHIELD 0x0f
#define EQUIPMENT_TYPE_LIGHT_ARMOR 0x10
#define EQUIPMENT_TYPE_ARMOR 0x11
#define EQUIPMENT_TYPE_FULL_BODY_ARMOR 0x12
#define EQUIPMENT_TYPE_ROBE 0x13
#define EQUIPMENT_TYPE_GARMENT 0x14
#define EQUIPMENT_TYPE_HELM 0x15
#define EQUIPMENT_TYPE_HEAD_GEAR 0x16
#define EQUIPMENT_TYPE_SPELLBOOK 0x17
#define EQUIPMENT_TYPE_FAN 0x18
#define EQUIPMENT_TYPE_ACCESSORY 0x19
#define EQUIPMENT_TYPE_INVALID 0xFF
typedef u16 EquipmentId;
ASSERT_SIZE(EquipmentId, 2);
#define EQUIPMENT_ID_GALLANT_DOLL 132
typedef struct {
/* 0x00 */ char *name;
/* 0x04 */ EquipmentType type;
/* 0x05 */ Element element;
/* 0x06 */ u8 field_0x6;
/* 0x07 */ u8 field_0x7;
/* 0x08 */ u16 buy_price;
/* 0x0a */ s8 strength;
/* 0x0b */ s8 intelligence;
/* 0x0c */ s8 agility;
/* 0x0d */ s8 dexterity;
/* 0x0e */ s8 vitality;
/* 0x0f */ s8 mentality;
/* 0x10 */ s8 field_0x10;
/* 0x11 */ s8 res_strike;
/* 0x12 */ s8 res_wind;
/* 0x13 */ s8 res_fire;
/* 0x14 */ s8 res_earth;
/* 0x15 */ s8 res_water;
/* 0x16 */ s8 res_holy;
/* 0x17 */ u8 res_dark;
/* 0x18 */ u8 field_0x18;
/* 0x19 */ u8 field_0x19;
/* 0x1a */ u8 field_0x1a;
/* 0x1b */ u8 field_0x1b;
/* 0x1c */ u8 field_0x1c;
/* 0x1d */ u8 field_0x1d;
/* 0x1e */ u8 field_0x1e;
/* 0x1f */ u8 field_0x1f;
} EquipmentData; // size:0x20
ASSERT_SIZE(EquipmentData, 0x20);
extern char *obEquipmentTypeName[];
extern EquipmentData obEquipmentData[];
extern s8 (*obEquipmentGetResistance[])(EquipmentId index);
extern char *obEquipmentGetName(EquipmentId index);
extern EquipmentType obEquipmentGetType(EquipmentId index);
extern Element obEquipmentGetElement(EquipmentId index);
extern u8 equipment_get_field_0x6(EquipmentId index);
extern u16 obEquipmentGetBuyPrice(EquipmentId index);
extern s8 equipment_get_field_0x10(EquipmentId index);
extern s8 obEquipmentGetStrength(EquipmentId index);
extern s8 obEquipmentGetVitality(EquipmentId index);
extern s8 obEquipmentGetIntelligence(EquipmentId index);
extern s8 obEquipmentGetMentality(EquipmentId index);
extern s8 obEquipmentGetAgility(EquipmentId index);
extern s8 obEquipmentGetDexterity(EquipmentId index);
extern s8 obEquipmentGetResistanceStrike(EquipmentId index);
extern s8 obEquipmentGetResistanceWind(EquipmentId index);
extern s8 obEquipmentGetResistanceFire(EquipmentId index);
extern s8 obEquipmentGetResistanceEarth(EquipmentId index);
extern s8 obEquipmentGetResistanceWater(EquipmentId index);
extern s8 obEquipmentGetResistanceVirtue(EquipmentId index);
extern s8 obEquipmentGetResistanceBane(EquipmentId index);
extern u8 equipment_get_field_0x18_b68(EquipmentId index);
extern u8 equipment_get_field_0x18_b46(EquipmentId index);
extern u8 equipment_get_field_0x18_b24(EquipmentId index);
extern u8 equipment_get_field_0x18_b12(EquipmentId index);
extern u8 equipment_get_field_0x19_b68(EquipmentId index);
extern u8 equipment_get_field_0x19_b46(EquipmentId index);
extern u8 equipment_get_field_0x19_b24(EquipmentId index);
extern u8 equipment_get_field_0x19_b12(EquipmentId index);
extern u8 equipment_get_field_0x1a_b7(EquipmentId index);
extern u8 obEquipmentIsWeapon(EquipmentId index);
extern EquipmentId obEquipmentGetFirstWeapon(EquipmentId arg0,
EquipmentId arg1,
EquipmentId arg2,
EquipmentId arg3);
extern EquipmentId obEquipmentGetFirstSpellbook(EquipmentId arg0,
EquipmentId arg1,
EquipmentId arg2,
EquipmentId arg3);
#endif