summaryrefslogtreecommitdiff
path: root/src/battle_controller_safari.c
blob: 46e34589a64d0475dbf2da53ae7b73643516ee77 (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
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
#include "global.h"
#include "battle_anim_81258BC.h"
#include "battle.h"
#include "battle_message.h"
#include "menu_cursor.h"
#include "text.h"

extern struct Window gUnknown_03004210;
extern u8 gDisplayedStringBattle[];
extern u8 gActionSelectionCursor[];

extern const u8 gUnknown_08400CBB[];
extern u8 gActiveBank;
extern const u8 gUnknown_08400D15[];

extern void *gBattleBankFunc[];
extern u16 gUnknown_030042A0;
extern u16 gUnknown_030042A4;

#if ENGLISH
#define SUB_812BB10_TILE_DATA_OFFSET 440
#elif GERMAN
#define SUB_812BB10_TILE_DATA_OFFSET 444
#endif

// this file's functions
void SafariHandleGetAttributes(void);
void SafariHandlecmd1(void);
void SafariHandleSetAttributes(void);
void SafariHandlecmd3(void);
void SafariHandleLoadPokeSprite(void);
void SafariHandleSendOutPoke(void);
void SafariHandleReturnPokeToBall(void);
void SafariHandleTrainerThrow(void);
void SafariHandleTrainerSlide(void);
void SafariHandleTrainerSlideBack(void);
void SafariHandlecmd10(void);
void SafariHandlecmd11(void);
void SafariHandlecmd12(void);
void SafariHandleBallThrow(void);
void SafariHandlePuase(void);
void SafariHandleMoveAnimation(void);
void SafariHandlePrintString(void);
void SafariHandlePrintStringPlayerOnly(void);
void SafariHandlecmd18(void);
void SafariHandlecmd19(void);
void SafariHandlecmd20(void);
void SafariHandleOpenBag(void);
void SafariHandlecmd22(void);
void SafariHandlecmd23(void);
void SafariHandleHealthBarUpdate(void);
void SafariHandleExpBarUpdate(void);
void SafariHandleStatusIconUpdate(void);
void SafariHandleStatusAnimation(void);
void SafariHandleStatusXor(void);
void SafariHandlecmd29(void);
void SafariHandleDMATransfer(void);
void SafariHandlecmd31(void);
void SafariHandlecmd32(void);
void SafariHandlecmd33(void);
void SafariHandlecmd34(void);
void SafariHandlecmd35(void);
void SafariHandlecmd36(void);
void SafariHandlecmd37(void);
void SafariHandlecmd38(void);
void SafariHandlecmd39(void);
void SafariHandlecmd40(void);
void SafariHandleHitAnimation(void);
void SafariHandlecmd42(void);
void SafariHandleEffectivenessSound(void);
void SafariHandlecmd44(void);
void SafariHandleFaintingCry(void);
void SafariHandleIntroSlide(void);
void SafariHandleTrainerBallThrow(void);
void SafariHandlecmd48(void);
void SafariHandlecmd49(void);
void SafariHandlecmd50(void);
void SafariHandleSpriteInvisibility(void);
void SafariHandleBattleAnimation(void);
void SafariHandleLinkStandbyMsg(void);
void SafariHandleResetActionMoveSelection(void);
void SafariHandlecmd55(void);
void SafariHandlecmd56(void);

// const data
typedef void (*BattleBufferCmd) (void);
const BattleBufferCmd gSafariBufferCommands[] =
{
	SafariHandleGetAttributes,
	SafariHandlecmd1,
	SafariHandleSetAttributes,
	SafariHandlecmd3,
	SafariHandleLoadPokeSprite,
	SafariHandleSendOutPoke,
	SafariHandleReturnPokeToBall,
	SafariHandleTrainerThrow,
	SafariHandleTrainerSlide,
	SafariHandleTrainerSlideBack,
	SafariHandlecmd10,
	SafariHandlecmd11,
	SafariHandlecmd12,
	SafariHandleBallThrow,
	SafariHandlePuase,
	SafariHandleMoveAnimation,
	SafariHandlePrintString,
	SafariHandlePrintStringPlayerOnly,
	SafariHandlecmd18,
	SafariHandlecmd19,
	SafariHandlecmd20,
	SafariHandleOpenBag,
	SafariHandlecmd22,
	SafariHandlecmd23,
	SafariHandleHealthBarUpdate,
	SafariHandleExpBarUpdate,
	SafariHandleStatusIconUpdate,
	SafariHandleStatusAnimation,
	SafariHandleStatusXor,
	SafariHandlecmd29,
	SafariHandleDMATransfer,
	SafariHandlecmd31,
	SafariHandlecmd32,
	SafariHandlecmd33,
	SafariHandlecmd34,
	SafariHandlecmd35,
	SafariHandlecmd36,
	SafariHandlecmd37,
	SafariHandlecmd38,
	SafariHandlecmd39,
	SafariHandlecmd40,
	SafariHandleHitAnimation,
	SafariHandlecmd42,
	SafariHandleEffectivenessSound,
	SafariHandlecmd44,
	SafariHandleFaintingCry,
	SafariHandleIntroSlide,
	SafariHandleTrainerBallThrow,
	SafariHandlecmd48,
	SafariHandlecmd49,
	SafariHandlecmd50,
	SafariHandleSpriteInvisibility,
	SafariHandleBattleAnimation,
	SafariHandleLinkStandbyMsg,
	SafariHandleResetActionMoveSelection,
	SafariHandlecmd55,
	SafariHandlecmd56,
};
// code

void SafariHandlecmd18(void) {
    int i;

    gUnknown_030042A4 = 0;
    gUnknown_030042A0 = 160;
    gUnknown_03004210.paletteNum = 0;
    FillWindowRect_DefaultPalette(&gUnknown_03004210, 10, 2, 15, 27, 18);
    FillWindowRect_DefaultPalette(&gUnknown_03004210, 10, 2, 35, 16, 36);
    gBattleBankFunc[gActiveBank] = bx_battle_menu_t6_2;

    InitWindow(&gUnknown_03004210, gUnknown_08400D15, 400, 18, 35);
    sub_8002F44(&gUnknown_03004210);
    sub_814A5C0(0, 0xFFFF, 12, 11679, 0);

    for (i = 0; i < 4; i++)
    {
        nullsub_8(i);
    }

    sub_802E3E4(gActionSelectionCursor[gActiveBank], 0);
    StrCpyDecodeToDisplayedStringBattle((u8 *) gUnknown_08400CBB);

    InitWindow(&gUnknown_03004210, gDisplayedStringBattle, SUB_812BB10_TILE_DATA_OFFSET, 2, 35);
    sub_8002F44(&gUnknown_03004210);
}