blob: 8dfa0d9fcfa704639ad71a7f8ccad2d10af82f19 (
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
|
#include "global.h"
#include "file_system.h"
#include "pokemon.h"
#include "memory.h"
#include "text.h"
#include "input.h"
#include "menu.h"
#include "gulpin_shop.h"
extern struct unkStruct_203B26C *gUnknown_203B26C;
extern const struct UnkTextStruct2 gUnknown_80DC11C;
extern const struct UnkTextStruct2 gUnknown_80DC134;
extern void UpdateGulpinShopState(u32);
extern void sub_801ECBC();
extern void sub_801ED28();
extern void sub_801EDA4();
extern void sub_801EDC0();
extern void sub_801E980();
extern void sub_801EA28();
extern void sub_8012CAC(struct UnkTextStruct2 *, struct MenuItem *);
extern void sub_801EBC4();
u32 DisplayGulpinDialogueSprite(s32 param_1,s16 pokeSpecies,struct PokemonMove *param_3)
{
struct OpenedFile *faceFile;
s32 species_32;
species_32 = pokeSpecies; // dumb cast needed to get lsr/asr combo
gUnknown_203B26C = MemoryAlloc(sizeof(struct unkStruct_203B26C),8);
gUnknown_203B26C->unk0 = param_1;
gUnknown_203B26C->speciesNum = species_32;
gUnknown_203B26C->unk10 = param_3;
gUnknown_203B26C->unk1C = param_3[4].moveID;
if (param_1 == 0) {
gUnknown_203B26C->unk128 = &gUnknown_203B26C->faceFile;
}
else {
gUnknown_203B26C->unk128 = NULL;
}
faceFile = GetDialogueSpriteDataPtr(SPECIES_GULPIN);
gUnknown_203B26C->faceFile = faceFile;
gUnknown_203B26C->faceData = faceFile->data;
gUnknown_203B26C->unk124 = 0;
gUnknown_203B26C->unk125 = 0;
gUnknown_203B26C->unk126 = 0;
gUnknown_203B26C->unk120 = 2;
gUnknown_203B26C->unk122 = 8;
UpdateGulpinShopState(0);
return 1;
}
u32 sub_801E8C0(void)
{
switch(gUnknown_203B26C->state)
{
case 0:
case 1:
sub_801ECBC();
break;
case 2:
sub_801ED28();
break;
case 3:
sub_801EDA4();
break;
case 4:
sub_801EDC0();
if(gUnknown_203B26C->state == 5)
return 3;
break;
case 5:
return 3;
case 6:
return 2;
}
return 0;
}
u8 sub_801E930(void)
{
return gUnknown_203B26C->unkE;
}
void sub_801E93C(void)
{
if(gUnknown_203B26C != NULL)
{
CloseFile(gUnknown_203B26C->faceFile);
MemoryFree(gUnknown_203B26C);
gUnknown_203B26C = NULL;
}
}
void UpdateGulpinShopState(u32 newState)
{
gUnknown_203B26C->state = newState;
sub_801E980();
sub_801EA28();
}
void sub_801E980(void)
{
s32 iVar2;
sub_8006518(gUnknown_203B26C->unk12C);
switch(gUnknown_203B26C->state)
{
case 2:
sub_801EBC4();
gUnknown_203B26C->unk12C[1] = gUnknown_80DC11C;
gUnknown_203B26C->unk12C[2] = gUnknown_80DC134;
sub_8012CAC(&gUnknown_203B26C->unk12C[2], gUnknown_203B26C->unk28);
break;
default:
for(iVar2 = 0; iVar2 < 4; iVar2++)
{
gUnknown_203B26C->unk12C[iVar2] = gUnknown_80DC11C;
}
break;
}
ResetUnusedInputStruct();
sub_800641C(gUnknown_203B26C->unk12C, 1, 1);
}
|