summaryrefslogtreecommitdiff
path: root/src/code/m_player_call.c
blob: 3f8a68cf61f132b4e5cdf4ccec9719fece4021d6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#include "ultra64.h"
#include "m_actor.h"
#include "m_actor_dlftbls.h"
#include "m_object.h"
#include "overlays/gamestates/ovl_play/m_play.h"
#include "overlays/actors/player_actor/m_player.h"

ActorFunc Player_actor_ct_func;
ActorFunc Player_actor_dt_func;
ActorFunc Player_actor_move_func;
ActorFunc Player_actor_draw_func;

void Player_actor_ct_call(Actor* thisx, Game_Play* game_play);
void Player_actor_dt_call(Actor* thisx, Game_Play* game_play);
void Player_actor_move_call(Actor* thisx, Game_Play* game_play);
void Player_actor_draw_call(Actor* thisx, Game_Play* game_play);

ActorProfile Player_Profile = {
    /* */ ACTOR_PLAYER,
    /* */ ACTOR_PART_PLAYER,
    /* */ ACTOR_FLAG_1 | ACTOR_FLAG_4 | ACTOR_FLAG_10 | ACTOR_FLAG_20 | ACTOR_FLAG_2000000 | ACTOR_FLAG_4000000 |
        ACTOR_FLAG_20000000,
    /* */ 0,
    /* */ GAMEPLAY_KEEP,
    /* */ sizeof(Player),
    /* */ Player_actor_ct_call,
    /* */ Player_actor_dt_call,
    /* */ Player_actor_move_call,
    /* */ Player_actor_draw_call,
    /* */ NULL,
};

void initfunc(Game_Play* game_play) {
    Player_actor_ct_func = mSM_ovlptr_dllcnv(Player_actor_ct, &game_play->submenu);
    Player_actor_dt_func = mSM_ovlptr_dllcnv(Player_actor_dt, &game_play->submenu);
    Player_actor_move_func = mSM_ovlptr_dllcnv(Player_actor_move, &game_play->submenu);
    Player_actor_draw_func = mSM_ovlptr_dllcnv(Player_actor_draw, &game_play->submenu);
}

void Player_actor_ct_call(Actor* thisx, Game_Play* game_play) {
    load_player(&game_play->submenu);
    initfunc(game_play);
    Player_actor_ct_func(thisx, game_play);
}

void Player_actor_dt_call(Actor* thisx, Game_Play* game_play) {
    load_player(&game_play->submenu);
    Player_actor_dt_func(thisx, game_play);
}

void Player_actor_move_call(Actor* thisx, Game_Play* game_play) {
    load_player(&game_play->submenu);
    Player_actor_move_func(thisx, game_play);
}

void Player_actor_draw_call(Actor* thisx, Game_Play* game_play) {
    load_player(&game_play->submenu);
    Player_actor_draw_func(thisx, game_play);
}