summaryrefslogtreecommitdiff
path: root/src/overlays/actors/player_actor/m_player.h
diff options
context:
space:
mode:
authorPrakxo <87568477+Prakxo@users.noreply.github.com>2024-09-26 16:39:38 +0200
committerGitHub <noreply@github.com>2024-09-26 07:39:38 -0700
commitbd553a1ca83a6135604920e8f073ebe29122bc5a (patch)
treea84c34487578cfae9ddab32c4e43ea83fc932e60 /src/overlays/actors/player_actor/m_player.h
parent5fb92a5079f8e2ccf67d5593236a62dff6cd3638 (diff)
m_player controller functions (#217)
* player work1 * m_player_controller * format
Diffstat (limited to 'src/overlays/actors/player_actor/m_player.h')
-rw-r--r--src/overlays/actors/player_actor/m_player.h59
1 files changed, 59 insertions, 0 deletions
diff --git a/src/overlays/actors/player_actor/m_player.h b/src/overlays/actors/player_actor/m_player.h
index 444b92d..43fe690 100644
--- a/src/overlays/actors/player_actor/m_player.h
+++ b/src/overlays/actors/player_actor/m_player.h
@@ -4,12 +4,71 @@
#include "ultra64.h"
#include "m_actor.h"
#include "m_collision_obj.h"
+#include "m_controller.h"
#include "unk.h"
struct Game;
struct Game_Play;
struct Player;
+typedef enum Player_ItemKind {
+ Player_ITEM_KIND_START,
+ Player_ITEM_KIND_AXE = Player_ITEM_KIND_START,
+ Player_ITEM_KIND_NET,
+ Player_ITEM_KIND_UMBRELLA00,
+ Player_ITEM_KIND_UMBRELLA01,
+ Player_ITEM_KIND_UMBRELLA02,
+ Player_ITEM_KIND_UMBRELLA03,
+ Player_ITEM_KIND_UMBRELLA04,
+ Player_ITEM_KIND_UMBRELLA05,
+ Player_ITEM_KIND_UMBRELLA06,
+ Player_ITEM_KIND_UMBRELLA07,
+ Player_ITEM_KIND_UMBRELLA08,
+ Player_ITEM_KIND_UMBRELLA09,
+ Player_ITEM_KIND_UMBRELLA10,
+ Player_ITEM_KIND_UMBRELLA11,
+ Player_ITEM_KIND_UMBRELLA12,
+ Player_ITEM_KIND_UMBRELLA13,
+ Player_ITEM_KIND_UMBRELLA14,
+ Player_ITEM_KIND_UMBRELLA15,
+ Player_ITEM_KIND_UMBRELLA16,
+ Player_ITEM_KIND_UMBRELLA17,
+ Player_ITEM_KIND_UMBRELLA18,
+ Player_ITEM_KIND_UMBRELLA19,
+ Player_ITEM_KIND_UMBRELLA20,
+ Player_ITEM_KIND_UMBRELLA21,
+ Player_ITEM_KIND_UMBRELLA22,
+ Player_ITEM_KIND_UMBRELLA23,
+ Player_ITEM_KIND_UMBRELLA24,
+ Player_ITEM_KIND_UMBRELLA25,
+ Player_ITEM_KIND_UMBRELLA26,
+ Player_ITEM_KIND_UMBRELLA27,
+ Player_ITEM_KIND_UMBRELLA28,
+ Player_ITEM_KIND_UMBRELLA29,
+ Player_ITEM_KIND_UMBRELLA30,
+ Player_ITEM_KIND_UMBRELLA31,
+ Player_ITEM_KIND_ROD,
+ Player_ITEM_KIND_SCOOP
+} Player_ItemKind;
+
+#define Player_ITEM_KIND_CHECK(kind, min, max) (kind >= min && kind < max + 1)
+#define Player_ITEM_IS_AXE(kind) (kind == Player_ITEM_KIND_AXE)
+#define Player_ITEM_IS_NET(kind) (kind == Player_ITEM_KIND_NET)
+#define Player_ITEM_IS_ROD(kind) (kind == Player_ITEM_KIND_ROD)
+#define Player_ITEM_IS_SCOOP(kind) (kind == Player_ITEM_KIND_SCOOP)
+#define Player_ITEM_IS_UMBRELLA(kind) \
+ (Player_ITEM_KIND_CHECK(kind, Player_ITEM_KIND_UMBRELLA00, Player_ITEM_KIND_UMBRELLA31))
+#define Player_ITEM_IS_VALID(kind) (Player_ITEM_KIND_CHECK(kind, Player_ITEM_KIND_START, Player_ITEM_KIND_SCOOP))
+
+typedef struct PlayerControllerData {
+ /* 0x00 */ Controller controller;
+ /* 0x38 */ s8 triggerButtonA;
+ /* 0x39 */ s8 buttonA;
+ /* 0x3A */ s8 triggerButtonB;
+ /* 0x3B */ s8 buttonB;
+ /* 0x3C */ u16 equippedItem;
+} PlayerControllerData; // size = 0x40;
+
typedef void (*PlayerUnk1230Func)(struct Player*, struct Game_Play*, Actor*, s32, xyz_t*, f32);
typedef f32 (*PlayerUnk1234Func)(struct Player*, struct Game_Play*);
typedef void (*PlayerUnk1238Func)(struct Player*, struct Game_Play*, Actor*, s32);