-
Notifications
You must be signed in to change notification settings - Fork 2
/
ctxmenu.c
126 lines (112 loc) · 2.4 KB
/
ctxmenu.c
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
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
#include "ctxmenu.h"
#include "audio.h"
#include "vars.h"
typedef void (*cvptr)(u8);
struct brmo2 { // TODO
u8 field_0;
u8 field_1;
u8 field_2;
u8 field_3;
void (*funcptr_4)(void); // TODO: Correct signature
u8 field_8;
u8 field_9;
u8 field_A;
u8 field_B;
u8 field_C;
u8 field_D;
u8 field_E;
u8 seq[8];
u8 cur;
u8 unknown[540];
u16 field_234;
u16 field_236;
u8 field_238;
};
struct brmo { // TODO
void *func_c2;
u8 field_4;
u8 field_5;
u8 field_6;
u8 field_7;
u8 field_8;
u8 pokesel1;
u8 pokesel2;
u8 field_B;
u8 field_C;
u8 field_D;
u16 field_E;
};
extern struct brmo brm; // TODO
extern struct brmo2* ptr_brmo2;
struct ctxmenuentry {
char *label;
cvptr action;
};
void task_0811FAB4(task_id c);
void task_081203B8(task_id c);
void ctxmenu_summary_08122D78();
// 0811FA78
void sub_811FA78(task_id c) {
sub_8070588(~1, ~2, 0, 0x10, 0);
task[c].funcptr = task_0811FAB4;
}
// 0811FAB4
// void task_0811FAB4(task_id c) {
//
// }
// 081203B8
// void task_081203B8(task_id c) {
//
// }
// 08122D4C
void ctxmenu_summary(task_id c) {
sound_play(5);
ptr_brmo2->funcptr_4 = ctxmenu_summary_08122D78;
sub_811FA78(c);
}
// 08122D78
// void ctxmenu_summary_08122D78() {
//
// }
// ???
void ctxmenu_store(task_id c) {
sound_play(5);
var_8004 = (i16)(i8)brm.pokesel1;
sub_811FA78(c);
}
// 081240F4
void ctxmenu_shift_sendout(task_id c) {
sound_play(5);
sub_8121CE4(ptr_brmo2->field_C);
if (sub_8127AC0() == 1)
sub_811FA78(c);
else {
sub_8121CE4(ptr_brmo2->field_D);
sub_81202F8(displayed_string, 1);
task[c].funcptr = task_081203B8;
}
}
// 0845A618
struct ctxmenuentry pokemon_context_menu[] = {
{ "Summary", ctxmenu_summary },
{ "Switch", ctxmenu_switch },
{ "Cancel", ctxmenu_cancel_1 },
{ "Item", ctxmenu_item },
{ "Give", ctxmenu_give },
{ "Take", ctxmenu_take_1 },
{ "Mail", ctxmenu_mail },
{ "Take", ctxmenu_take_2 },
{ "Read", ctxmenu_read },
{ "Cancel", ctxmenu_cancel_2 },
{ "Shift", ctxmenu_shift_send },
{ "Send out", ctxmenu_shift_send },
{ "Enter", ctxmenu_enter },
{ "No entry", ctxmenu_no_entry },
{ "Store", ctxmenu_store },
{ "Register", ctxmenu_register },
{ "Trade", ctxmenu_trade_1 },
{ "Trade", ctxmenu_trade_nop },
#define hm(name) \
{ #name, ctxmenu_hm },
#include "hm.x"
};