summaryrefslogtreecommitdiff
path: root/src/code
diff options
context:
space:
mode:
authorAnghelo Carvajal <angheloalf95@gmail.com>2022-03-05 11:51:51 -0300
committerGitHub <noreply@github.com>2022-03-05 11:51:51 -0300
commit6017869b1e2f369fa2c27a17a5e1b8f29b4aaf41 (patch)
tree854edf2d190420279f558ff9c591dc8063799854 /src/code
parentd9155eb4985c9cf7e542bbe6ad25c29cd2abdbe5 (diff)
`z_player_call` OK (#693)
* Match functions * Rename functions * Import data and bss, and minor fixes * Format * Whoops * Add some protos to z_player
Diffstat (limited to 'src/code')
-rw-r--r--src/code/z_player_call.c59
1 files changed, 54 insertions, 5 deletions
diff --git a/src/code/z_player_call.c b/src/code/z_player_call.c
index 69e2f4dae..7ed1ce5ce 100644
--- a/src/code/z_player_call.c
+++ b/src/code/z_player_call.c
@@ -1,11 +1,60 @@
#include "global.h"
-#pragma GLOBAL_ASM("asm/non_matchings/code/z_player_call/func_80160A90.s")
+#define FLAGS \
+ (ACTOR_FLAG_1 | ACTOR_FLAG_8 | ACTOR_FLAG_10 | ACTOR_FLAG_20 | ACTOR_FLAG_200000 | ACTOR_FLAG_2000000 | \
+ ACTOR_FLAG_4000000 | ACTOR_FLAG_80000000)
-#pragma GLOBAL_ASM("asm/non_matchings/code/z_player_call/func_80160AF8.s")
+ActorFunc sPlayerCallInitFunc;
+ActorFunc sPlayerCallDestroyFunc;
+ActorFunc sPlayerCallUpdateFunc;
+ActorFunc sPlayerCallDrawFunc;
-#pragma GLOBAL_ASM("asm/non_matchings/code/z_player_call/func_80160B40.s")
+void PlayerCall_Init(Actor* thisx, GlobalContext* globalCtx);
+void PlayerCall_Destroy(Actor* thisx, GlobalContext* globalCtx);
+void PlayerCall_Update(Actor* thisx, GlobalContext* globalCtx);
+void PlayerCall_Draw(Actor* thisx, GlobalContext* globalCtx);
-#pragma GLOBAL_ASM("asm/non_matchings/code/z_player_call/func_80160B80.s")
+const ActorInit Player_InitVars = {
+ ACTOR_PLAYER,
+ ACTORCAT_PLAYER,
+ FLAGS,
+ GAMEPLAY_KEEP,
+ sizeof(Player),
+ (ActorFunc)PlayerCall_Init,
+ (ActorFunc)PlayerCall_Destroy,
+ (ActorFunc)PlayerCall_Update,
+ (ActorFunc)PlayerCall_Draw,
+};
-#pragma GLOBAL_ASM("asm/non_matchings/code/z_player_call/func_80160BC0.s")
+void Player_Init(Actor* thisx, GlobalContext* globalCtx);
+void Player_Destroy(Actor* thisx, GlobalContext* globalCtx);
+void Player_Update(Actor* thisx, GlobalContext* globalCtx);
+void Player_Draw(Actor* thisx, GlobalContext* globalCtx);
+
+void PlayerCall_InitFuncPtrs(void) {
+ sPlayerCallInitFunc = KaleidoManager_GetRamAddr(Player_Init);
+ sPlayerCallDestroyFunc = KaleidoManager_GetRamAddr(Player_Destroy);
+ sPlayerCallUpdateFunc = KaleidoManager_GetRamAddr(Player_Update);
+ sPlayerCallDrawFunc = KaleidoManager_GetRamAddr(Player_Draw);
+}
+
+void PlayerCall_Init(Actor* thisx, GlobalContext* globalCtx) {
+ KaleidoScopeCall_LoadPlayer();
+ PlayerCall_InitFuncPtrs();
+ sPlayerCallInitFunc(thisx, globalCtx);
+}
+
+void PlayerCall_Destroy(Actor* thisx, GlobalContext* globalCtx) {
+ KaleidoScopeCall_LoadPlayer();
+ sPlayerCallDestroyFunc(thisx, globalCtx);
+}
+
+void PlayerCall_Update(Actor* thisx, GlobalContext* globalCtx) {
+ KaleidoScopeCall_LoadPlayer();
+ sPlayerCallUpdateFunc(thisx, globalCtx);
+}
+
+void PlayerCall_Draw(Actor* thisx, GlobalContext* globalCtx) {
+ KaleidoScopeCall_LoadPlayer();
+ sPlayerCallDrawFunc(thisx, globalCtx);
+}