summaryrefslogtreecommitdiff
path: root/src/overlays/gamestates/ovl_select/m_select.h
blob: 0024827b5661f7e431a3c1c286981fb2862cac44 (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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
#ifndef SELECT_H
#define SELECT_H

#include "ultra64.h"
#include "game.h"
#include "unk.h"
#include "m_view.h"
#include "m_private_internals.h"

typedef enum SelectCheck {
    /* 0 */ SELECT_CHECK_A_BUTTON_RTC,
    /* 1 */ SELECT_CHECK_A_BUTTON_TIME,
    /* 2 */ SELECT_CHECK_A_BUTTON_STEP,
    /* 3 */ SELECT_CHECK_A_BUTTON_WEATHER,
    /* 4 */ SELECT_CHECK_A_BUTTON_SEX,
    /* 5 */ SELECT_CHECK_A_BUTTON_FACE_TYPE,
    /* 6 */ SELECT_CHECK_A_BUTTON_SWELL,
    /* 7 */ SELECT_CHECK_A_BUTTON_DECOY,
    /* 8 */ SELECT_CHECK_A_BUTTON_CLOTH,
    /* 9 */ SELECT_CHECK_A_BUTTON_EVENT,
    /* 10 */ SELECT_CHECK_A_BUTTON_NUM
} SelectCheck;

struct OSRTCTime; 
struct gfxprint;

typedef struct Game_Select {
    /* 0x000 */ Game state;
    /* 0x0E0 */ View view;
    /* 0x208 */ s32 status; 
    /* 0x20C */ s32 cursorX;
    /* 0x210 */ s32 cursorY;
    /* 0x214 */ s32 step;
    /* 0x218 */ s32 stepAdd;
    /* 0x21C */ s32 selectedScene;
    /* 0x220 */ s32 topScene;
    /* 0x224 */ s32 unk224;
    /* 0x228 */ s32 buttonStep;
    /* 0x22C */ char name[PLAYER_NAME_LEN]; 
    /* 0x234 */ UNK_TYPE unk_234;
    /* 0x238 */ UNK_TYPE unk_238;
    /* 0x23C */ UNK_TYPE unk_23C;
} Game_Select; // size = 0x240

typedef void (*GameProc)(Game*, s32);
    
typedef struct NameFunction {
    /* 0x0 */ const char* name;
    /* 0x4 */ GameProc nextProc;
    /* 0x8 */ s32 sceneNo;
} NameFunction; // size = 0xC

void game_next_play(Game* game, s32 scene);
char data2fcode(char data);
char fcode2data(char fcode);
void select_pass(Game_Select* select);
s32 select_start_proc(Game_Select* select);
s32 select_check_start(Game_Select* select);
s32 select_check_A_button_rtc(Game_Select* select);
s32 select_check_A_button_time(Game_Select* select);
s32 select_check_A_buttonStep(Game_Select* select);
s32 select_check_A_button_weather(Game_Select* select);
s32 select_check_A_button_sex(Game_Select* select);
s32 select_check_A_button_face_type(Game_Select* select);
s32 select_check_A_button_swell(Game_Select* select);
s32 select_check_A_button_decoy(Game_Select* select);
s32 select_check_A_button_cloth(Game_Select* select);
s32 select_check_A_button_event(Game_Select* select);
s32 select_check_A_button(Game_Select* select);
s32 select_move_cursol(Game_Select* select);
s32 select_course_step_sub(s32 course);
void select_adjust_top_no(Game_Select* select, s32 course, s32 adjust);
void select_course_step(Game_Select* select, s32 addend);
void select_course(Game_Select* select);
void select_move_main(Game_Select* select);
void select_move_setup(Game_Select* select);
void select_move_time_year_set(s32 adjust);
void select_move_time_month_set(s32 adjust);
void select_move_time_day_set(s32 adjust);
void select_move_time_hour_set(s32 adjust);
void select_move_time_min_set(s32 adjust);
void select_move_time_week_set(s32 adjust);
void select_move_time_set(Game_Select* select);
void select_move_cloth_sel(Game_Select* select);
void select_move(Game_Select* select);
void select_print_wait(struct gfxprint* gfxprint);
void select_print_course_name(Game_Select* select, struct gfxprint* gfxprint);
void select_print_rtc(struct gfxprint* gfxprint, Game_Select* select);
void select_print_time_sub(struct gfxprint* gfxprint, Game_Select* select, struct OSRTCTime* time);
void select_print_time(struct gfxprint* gfxprint, Game_Select* select);
void select_print_step_sub2(struct gfxprint* gfxprint);
void select_print_step(struct gfxprint* gfxprint, Game_Select* select);
void select_print_weather(struct gfxprint* gfxprint, Game_Select* select);
void select_print_sex(struct gfxprint* gfxprint, Game_Select* select);
void select_print_cloth(struct gfxprint* gfxprint, Game_Select* select);
void select_print_swell(struct gfxprint* gfxprint, Game_Select* select);
void select_print_decoy(struct gfxprint* gfxprint, Game_Select* select);
void select_print_face_type(struct gfxprint* gfxprint, Game_Select* select);
void select_print_event(struct gfxprint* gfxprint, Game_Select* select);
void select_draw_main(Game_Select* select);
void select_draw_wait(Game_Select* select);
void select_draw(Game_Select* select);
void select_main(Game* game);
void select_cleanup(Game* game);
void select_init(Game* game);


#endif