Digimon World 3 decomp
The European version, SLES_039.36
Loading...
Searching...
No Matches
wstag941.c
Go to the documentation of this file.
1/*
2 * WSTAG941: Wire Forest Entrance, Central Sector, in the extra chapter. The
3 * European version's: in its extra chapter (STORY_EXTRA), mode 653 starts it
4 * instead of WSTAG336.
5 */
6
7#include "common.h"
8#include "field/stage.h"
9
12
13#if VERSION_EU
14#define STAGE_TEXT TEXT_FILE(TEXT_TALKS_09)
15#define STAGE_FILE 0x909
16#define STAGE_FILE_8 0x1B6
17#elif VERSION_JP
18#define STAGE_TEXT 0x89B
19#define STAGE_FILE 0x8D4
20#define STAGE_FILE_8 0x1A8
21#endif
22/* Sets the stage up: its map, actors and battles, playing FIELDBGM */
42
44 { 0x200, 0x100, 0x21C, 0x1A6, 0x70, 0xA6, 0x230, 0x1FE },
45 { 0x200, 0x100, 0x200, 0x100, 0, 0, 0x220, 0x1FE },
46 { 0x200, 0x100, 0x216, 0x138, 0x58, 0x38, 0x200, 0x1FD },
47 { 0x200, 0x100, 0x208, 0x1BC, 0x20, 0xBC, 0x210, 0x1FD },
48 { 0x200, 0x100, 0x210, 0x1BC, 0x40, 0xBC, 0x220, 0x1FD },
49 { 0x200, 0x100, 0x200, 0x1BC, 0, 0xBC, 0x230, 0x1FD },
50 { 0x140, 0x100, 0x16C, 0x100, 0xB0, 0, 0x150, 0x1FF },
51 { 0x140, 0x100, 0x174, 0x100, 0xD0, 0, 0x160, 0x1FF },
52 { 0x140, 0x100, 0x174, 0x120, 0xD0, 0x20, 0x170, 0x1FF },
53};
68 { NULL, NULL, 0x74 },
69 { NULL, NULL, 0 },
70};
79 { NULL, NULL, 0x1D },
80 { NULL, NULL, 0 },
81};
83 { NULL, NULL, 0x73 },
84 { NULL, NULL, 0 },
85};
86u16 actor1Conditions[] = { ITEM(0, 0x192), 1, CODES_END };
87u16 actor2Conditions[] = { ITEM(0, 0x192), 0, CODES_END };
88FieldActorEntry actor0 = { NULL, actor0Talks, 0x1B, 4, 361, 684, 5 };
91FieldActorEntry actor3 = { NULL, actor3Talks, 0x16D, 6, 391, 309, 1 };
93 &actor0,
94 &actor1,
95 &actor2,
96 &actor3,
97 NULL,
98};
100 { 1, 0, 0x40, 2, 0, 1, 0, 5, 8, 0, 199, 607, 0, 0 },
101 { 1, 0, 0x40, 2, 0, 1, 0, 5, 8, 0, 353, -16, 0, 0 },
102 { 1, 0, 0x40, 2, 0, 1, 0, 5, 8, 0, 513, 285, 0, 0 },
103 { 1, 0, 0x40, 6, 0x32, 1, 0x32, 0x34, 0xA, 0, 113, 393, 0, 0 },
104 { 1, 0, 0x40, 6, 0x32, 1, 0x32, 0x34, 0xA, 0, 153, 554, 0, 0 },
105 { 1, 0, 0x40, 6, 0x32, 1, 0x32, 0x34, 0xA, 0, 167, 539, 0, 0 },
106 { 1, 0, 0x40, 6, 0x32, 1, 0x32, 0x34, 0xA, 0, 192, 494, 0, 0 },
107 { 1, 0, 0x40, 6, 0x32, 1, 0x32, 0x34, 0xA, 0, 225, 493, 0, 0 },
108 { 1, 0, 0x40, 6, 0x32, 1, 0x32, 0x34, 0xA, 0, 251, 483, 0, 0 },
109 { 1, 0, 0x40, 6, 0x32, 1, 0x32, 0x34, 0xA, 0, 313, 468, 0, 0 },
110 { 1, 0, 0x40, 6, 0x35, 1, 0x35, 0x37, 0xA, 0, 86, 400, 0, 0 },
111 { 1, 0, 0x40, 6, 0x35, 1, 0x35, 0x37, 0xA, 0, 169, 500, 0, 0 },
112 { 1, 0, 0x40, 6, 0x35, 1, 0x35, 0x37, 0xA, 0, 193, 527, 0, 0 },
113 { 1, 0, 0x40, 6, 0x35, 1, 0x35, 0x37, 0xA, 0, 216, 519, 0, 0 },
114 { 1, 0, 0x40, 6, 0x35, 1, 0x35, 0x37, 0xA, 0, 235, 480, 0, 0 },
115 { 1, 0, 0x40, 6, 0x35, 1, 0x35, 0x37, 0xA, 0, 248, 454, 0, 0 },
116 { 1, 0, 0x40, 6, 0x35, 1, 0x35, 0x37, 0xA, 0, 253, 491, 0, 0 },
117 { 1, 0, 0x40, 6, 0x35, 1, 0x35, 0x37, 0xA, 0, 264, 469, 0, 0 },
118 { 1, 0, 0x40, 6, 0x38, 1, 0x38, 0x3A, 0xA, 0, 58, 404, 0, 0 },
119 { 1, 0, 0x40, 6, 0x38, 1, 0x38, 0x3A, 0xA, 0, 130, 393, 0, 0 },
120 { 1, 0, 0x40, 6, 0x3B, 1, 0x3B, 0x3D, 0xA, 0, 214, 356, 0, 0 },
121 { 1, 0, 0x40, 6, 0x3E, 1, 0x3E, 0x40, 0xA, 0, 233, 362, 0, 0 },
122 { 1, 0, 0x40, 6, 0x41, 1, 0x41, 0x43, 0xA, 0, 204, 360, 0, 0 },
123 { 1, 0, 0x40, 6, 0x41, 1, 0x41, 0x43, 0xA, 0, 273, 366, 0, 0 },
124 { 1, 0, 0x40, 6, 0x44, 1, 0x44, 0x46, 0xA, 0, 219, 483, 0, 0 },
125 { 1, 0, 0x40, 6, 0x44, 1, 0x44, 0x46, 0xA, 0, 289, 362, 0, 0 },
126 { 1, 0, 0x40, 6, 0x44, 1, 0x44, 0x46, 0xA, 0, 307, 382, 0, 0 },
127 { 1, 0, 0x40, 6, 0x44, 1, 0x44, 0x46, 0xA, 0, 317, 385, 0, 0 },
128 { 1, 0, 0x40, 6, 0x44, 1, 0x44, 0x46, 0xA, 0, 323, 421, 0, 0 },
129 { 1, 0xFF, 0x64, 4, 0x38, 0, 0, 0, 0, 0, 184, 226, 226, 0 },
130 { 1, 0xFF, 0x64, 4, 0x38, 0, 0, 0, 0, 0, 232, 250, 250, 0 },
131 { 1, 0xFF, 0x64, 4, 0x38, 0, 0, 0, 0, 0, 243, 544, 544, 0 },
132 { 1, 0xFF, 0x64, 4, 0x38, 0, 0, 0, 0, 0, 267, 602, 602, 0 },
133 { 1, 0xFF, 0x64, 4, 0x38, 0, 0, 0, 0, 0, 271, 135, 135, 0 },
134 { 1, 0xFF, 0x64, 4, 0x38, 0, 0, 0, 0, 0, 277, 521, 521, 0 },
135 { 1, 0xFF, 0x64, 4, 0x38, 0, 0, 0, 0, 0, 320, 159, 159, 0 },
136 { 1, 0xFF, 0x64, 4, 0x38, 0, 0, 0, 0, 0, 399, 167, 167, 0 },
137 { 1, 0xFF, 0x64, 4, 0x38, 0, 0, 0, 0, 0, 422, 187, 187, 0 },
138 { 1, 0xFF, 0x64, 4, 0x38, 0, 0, 0, 0, 0, 431, 568, 568, 0 },
139 { 1, 0xFF, 0x64, 4, 0x38, 0, 0, 0, 0, 0, 489, 501, 501, 0 },
140 { 1, 0xFF, 0x64, 4, 0x38, 0, 0, 0, 0, 0, 506, 203, 203, 0 },
141 { 1, 0xFF, 0x64, 4, 0x38, 0, 0, 0, 0, 0, 542, 228, 228, 0 },
142 { 1, 0xFF, 0x64, 4, 0x38, 0, 0, 0, 0, 0, 641, 286, 286, 0 },
143 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
144};
146 { { { CODES_END, 0 }, { CODES_END, 0 } }, SLOT_EXIT, 0x28C, 0x5F4, 0x39E, 3, 0, 0, 0 },
147 { { { CODES_END, 0 }, { CODES_END, 0 } }, SLOT_EXIT, 0x290, 0x138, 0x7A, 7, 0, 0, 0 },
148 { { { ITEM(0, 5), 1 }, { CODES_END, 0 } }, SLOT_GAUGE, 0xFFC0, 0x30, 0, 0, 0, 0, 0 },
149 { { { ITEM(0, 5), 1 }, { CODES_END, 0 } }, SLOT_GAUGE, 0xFFC8, 0xFFF0, 0, 0, 0, 0, 0 },
150 { { { CODES_END, 0 }, { CODES_END, 0 } }, 0, 0, 0, 0, 0, 0, 0, 0 },
151};
152void (*stageFuncs[])(void) = {
154};
181AreaBattle area2Battle0 = { 0, 0, MUSIC(1, 0) };
182AreaBattle area2Battle1 = { 0, 0, MUSIC(1, 0) };
183AreaBattle area2Battle2 = { 0, 0, MUSIC(1, 0) };
184AreaBattle area2Battle3 = { 0, 0, MUSIC(1, 0) };
185AreaBattle area2Battle4 = { 0, 0, MUSIC(1, 0) };
186AreaBattle area2Battle5 = { 0, 0, MUSIC(1, 0) };
187AreaBattle area2Battle6 = { 0, 0, MUSIC(1, 0) };
188AreaBattle area2Battle7 = { 0, 0, MUSIC(1, 0) };
194AreaBattle area3Battle0 = { 0, 0, MUSIC(1, 0) };
195AreaBattle area3Battle1 = { 0, 0, MUSIC(1, 0) };
196AreaBattle area3Battle2 = { 0, 0, MUSIC(1, 0) };
199AreaBattle area3Battle5 = { 0, 0, MUSIC(1, 0) };
#define NULL
Definition common.h:17
unsigned short u16
Definition common.h:10
The stage overlays (AAA/PRO/WSTAG###.PRO), loaded at 0x800A4CA4 on top of FIELDSTG.
#define FIELD_MAP_FLOOR0
Some of FieldMap's maps (files): those of the floors the player walks on come first,...
Definition field_map.h:85
#define SLOT_GAUGE
the gauge game
Definition field_map.h:261
#define SLOT_EXIT
The kinds of StageSlot (type).
Definition field_map.h:255
#define FIELD_MAP_AREAS
a cell's value: its battle area (FieldBattles), or 0
Definition field_map.h:87
#define FIELD_MAP_TRIGGERS
a cell's value: a direction (3 bits) and a StageSlot (5)
Definition field_map.h:88
FieldMap FIELDSTG_map
Definition fieldstg.c:3660
FieldState FIELDSTG_state
Definition fieldstg.c:2641
#define CODES_END
Definition game_state.h:83
#define ITEM(kind, id)
an item, in the bag or equipped; kind (bits 9-11) isn't read, and the scripts set it after the item's...
Definition game_state.h:80
#define FLAG(group, id)
The codes of the (code, value) pairs that FLAGS_00 checks as conditions and applies as actions (event...
Definition game_state.h:68
#define CARD_BATTLE(opponent, kind)
action: startCardBattle
Definition game_state.h:73
#define MUSIC_BATTLE
BATL0000: the maps' random battles (AreaBattle, nearly all of them)
Definition sound.h:76
#define MUSIC_FIELD
FIELDBGM: Central Park, the Wire Forest Entrance, Shell Beach, Plug Cape.
Definition sound.h:83
#define MUSIC(bank, n)
A field's or a battle's music (FieldState.music, Battle.music): track (SEP) n of the first sequence o...
Definition sound.h:70
#define MUSIC_BANK(music)
The sound bank of a music, which a stage loads for it (FieldState.soundBank)
Definition sound.h:148
FIELDSTG's start of the stage (StageEntry.init in FIELDSTG_stages): the stage's task,...
#define FLAG_CARD_BATTLE_WON
set by updateModeFlags on the way back from a card battle: 1 if the player won it (FLAGS_00....
Definition story.h:166
#define FLAG_CARD_BATTLE_ENDED
set by updateModeFlags on the way back from a card battle; the talks that follow one test it and clea...
Definition story.h:169
Where an actor's frames go in VRAM: one of the records after the FieldImage (Actor....
Definition field_map.h:114
A battle of an area's BattleList, which can start on the field (see FIELDSTG_startEncounter); FIGHTST...
Definition field_map.h:402
The battles of an area of the map (its cells' value at FieldMap.files[4]), one picked at random.
Definition field_map.h:411
A character of the field (FieldState.actors, a list of pointers up to NULL), which FIELDSTG_updateFie...
Definition field_map.h:194
The battles of a place (FieldState.battles), by area of the map: the fourth area's are also the ones ...
Definition field_map.h:422
void(* setFile)(s32 index, s32 file)
FIELDSTG_setMapFile.
Definition field_map.h:100
void(* setFirstMap)(s32 index)
FIELDSTG_setFirstMap: the map the player starts on (GAME.mapIndex), when the mode is new.
Definition field_map.h:104
s32 sheetEntry
the stage's sprite sheet, loaded before the field starts, or 0
Definition field_map.h:445
s32 soundBank
SOUND.loadBank's, or 0.
Definition field_map.h:459
StageTile * objects
the map objects, up to the first margin 0
Definition field_map.h:446
s32 imageFile
or an image archive file, or 0
Definition field_map.h:449
FieldBattles * battles
Definition field_map.h:450
Vec2 start
where the player starts
Definition field_map.h:456
StageSlot * slots
up to the first type 0
Definition field_map.h:447
ActorImage * actors
then the actors', from actors[2]
Definition field_map.h:454
s32 mapFile
the file of the map's tiles (FIELDSTG_createMapStreamer)
Definition field_map.h:444
s32 startDir
and its direction
Definition field_map.h:457
s32 textFile
the stage's text file, for the talks
Definition field_map.h:461
union FieldState::@12 images
s32 music
SOUND.playSound's, or 0.
Definition field_map.h:460
What a character says (FIELDSTG_runActorAction): the first whose conditions hold, or the last,...
Definition field_map.h:176
What the player can trigger on a map (FIELDSTG_updateTriggers): a record of the table at FieldState....
Definition field_map.h:276
An object of a map, which FIELDSTG draws: a record of the table at FieldState.objects,...
Definition field_map.h:208
Definition gfx.h:352
u16 actor1Conditions[]
Definition wstag941.c:86
AreaBattle area2Battle7
Definition wstag941.c:188
FieldActorEntry actor0
Definition wstag941.c:88
void(* stageFuncs[])(void)
The stage's functions (common/start_stage.inc.c calls the first): a StageFuncs in the stages with a t...
Definition wstag941.c:152
FieldTalk actor2Talks[]
Definition wstag941.c:78
AreaBattle area2Battle6
Definition wstag941.c:187
AreaBattle area1Battle6
Definition wstag941.c:174
u16 actor1Talk3Actions[]
Definition wstag941.c:66
u16 actor1Talk2Actions[]
Definition wstag941.c:64
u16 actor1Talk1Conditions[]
Definition wstag941.c:56
AreaBattle area0Battle7
Definition wstag941.c:162
FieldActorEntry actor2
Definition wstag941.c:90
#define STAGE_FILE_8
Definition wstag941.c:16
AreaBattle area3Battle4
Definition wstag941.c:198
AreaBattle area3Battle3
Definition wstag941.c:197
AreaBattle area0Battle1
Definition wstag941.c:156
AreaBattle area2Battle0
Definition wstag941.c:181
FieldActorEntry * stageActors[]
Definition wstag941.c:92
AreaBattle area1Battle2
Definition wstag941.c:170
AreaBattle area3Battle0
Definition wstag941.c:194
AreaBattle area0Battle6
Definition wstag941.c:161
FieldTalk actor1Talks[]
Definition wstag941.c:71
AreaBattle area3Battle2
Definition wstag941.c:196
u16 actor1Talk0Conditions[]
Definition wstag941.c:54
FieldTalk actor0Talks[]
Definition wstag941.c:67
AreaBattle area3Battle1
Definition wstag941.c:195
AreaBattle area0Battle3
Definition wstag941.c:158
AreaBattle area3Battle6
Definition wstag941.c:200
ActorImage stageImages[]
Definition wstag941.c:43
u16 actor1Talk1Actions[]
Definition wstag941.c:57
void setupStage(void)
Sets the stage up: its map, actors and battles, playing FIELDBGM.
Definition wstag941.c:23
AreaBattle area2Battle4
Definition wstag941.c:185
StageTile stageObjects[]
The tables and color setupStage gives FIELDSTG_state (FieldState)
Definition wstag941.c:99
FieldTalk actor3Talks[]
Definition wstag941.c:82
BattleList area3Battles
Definition wstag941.c:202
AreaBattle area3Battle5
Definition wstag941.c:199
AreaBattle area0Battle5
Definition wstag941.c:160
BattleList area1Battles
Definition wstag941.c:176
BattleList area2Battles
Definition wstag941.c:189
AreaBattle area1Battle4
Definition wstag941.c:172
AreaBattle area2Battle2
Definition wstag941.c:183
AreaBattle area1Battle5
Definition wstag941.c:173
StageSlot stageSlots[]
Definition wstag941.c:145
AreaBattle area2Battle1
Definition wstag941.c:182
u16 actor1Talk0Actions[]
Definition wstag941.c:55
AreaBattle area1Battle3
Definition wstag941.c:171
AreaBattle area1Battle0
Definition wstag941.c:168
u16 actor1Talk2Conditions[]
Definition wstag941.c:63
FieldActorEntry actor1
Definition wstag941.c:89
AreaBattle area0Battle0
Definition wstag941.c:155
AreaBattle area0Battle2
Definition wstag941.c:157
#define STAGE_FILE
Definition wstag941.c:15
AreaBattle area2Battle5
Definition wstag941.c:186
AreaBattle area1Battle1
Definition wstag941.c:169
AreaBattle area2Battle3
Definition wstag941.c:184
u16 actor2Conditions[]
Definition wstag941.c:87
AreaBattle area0Battle4
Definition wstag941.c:159
#define STAGE_TEXT
Definition wstag941.c:14
AreaBattle area3Battle7
Definition wstag941.c:201
BattleList area0Battles
Definition wstag941.c:163
AreaBattle area1Battle7
Definition wstag941.c:175
FieldActorEntry actor3
Definition wstag941.c:91
FieldBattles stageBattles[]
Definition wstag941.c:207
u16 actor1Talk3Conditions[]
Definition wstag941.c:65