Merge branch 'master' into sync-menuhelpers

This commit is contained in:
GriffinR
2022-11-17 19:19:30 -05:00
committed by GitHub
134 changed files with 6802 additions and 6423 deletions
+3 -3
View File
@@ -1,3 +1,3 @@
gHostRFUtgtGnameBuffer
Rfu
gHostRFUtgtUnameBuffer
gHostRfuGameData
gRfu
gHostRfuUsername
+1 -10
View File
@@ -1,12 +1,3 @@
.set LOCALID_UNION_ROOM_PLAYER_4, 2
.set LOCALID_UNION_ROOM_PLAYER_8, 3
.set LOCALID_UNION_ROOM_PLAYER_7, 4
.set LOCALID_UNION_ROOM_PLAYER_6, 5
.set LOCALID_UNION_ROOM_PLAYER_5, 6
.set LOCALID_UNION_ROOM_PLAYER_3, 7
.set LOCALID_UNION_ROOM_PLAYER_2, 8
.set LOCALID_UNION_ROOM_PLAYER_1, 9
UnionRoom_MapScripts::
map_script MAP_SCRIPT_ON_RESUME, UnionRoom_OnResume
map_script MAP_SCRIPT_ON_TRANSITION, UnionRoom_OnTransition
@@ -29,7 +20,7 @@ UnionRoom_OnResume::
removeobject LOCALID_UNION_ROOM_PLAYER_6
removeobject LOCALID_UNION_ROOM_PLAYER_7
removeobject LOCALID_UNION_ROOM_PLAYER_8
special UnionRoomSpecial
special RunUnionRoom
end
UnionRoom_OnTransition::
+1 -1
View File
@@ -796,7 +796,7 @@ CableClub_EventScript_EnterUnionRoom::
special SetCableClubWarp
warpspinenter MAP_UNION_ROOM, 7, 11
waitstate
special UnionRoomSpecial
special RunUnionRoom
waitstate
end
+1 -1
View File
@@ -373,7 +373,7 @@ gSpecials::
def_special IsWirelessAdapterConnected
def_special TryBecomeLinkLeader
def_special TryJoinLinkGroup
def_special UnionRoomSpecial
def_special RunUnionRoom
def_special ShowWirelessCommunicationScreen
def_special EnableNationalPokedex
def_special SetWalkingIntoSignVars
Binary file not shown.

Before

Width:  |  Height:  |  Size: 210 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 156 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 109 B

+19
View File
@@ -0,0 +1,19 @@
JASC-PAL
0100
16
0 0 0
57 57 57
255 255 255
213 205 189
131 131 139
74 65 90
82 106 90
255 213 82
255 180 65
222 106 90
115 255 172
90 213 131
255 230 57
205 172 8
255 90 57
172 65 74
+19
View File
@@ -0,0 +1,19 @@
JASC-PAL
0100
16
0 0 0
65 65 65
255 255 222
222 213 180
197 189 115
123 148 131
82 106 98
32 57 0
57 82 65
255 230 0
255 156 148
65 205 255
0 0 255
0 255 0
255 0 0
106 148 255
Binary file not shown.

Before

Width:  |  Height:  |  Size: 270 B

After

Width:  |  Height:  |  Size: 371 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 277 B

After

Width:  |  Height:  |  Size: 377 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 282 B

After

Width:  |  Height:  |  Size: 377 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 369 B

After

Width:  |  Height:  |  Size: 462 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 149 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 96 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 82 B

Before

Width:  |  Height:  |  Size: 174 B

After

Width:  |  Height:  |  Size: 174 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 196 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 198 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 195 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 116 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 116 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 112 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 116 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 117 B

Before

Width:  |  Height:  |  Size: 505 B

After

Width:  |  Height:  |  Size: 505 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 807 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 746 B

Before

Width:  |  Height:  |  Size: 308 B

After

Width:  |  Height:  |  Size: 308 B

-19
View File
@@ -1,19 +0,0 @@
JASC-PAL
0100
16
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
Binary file not shown.

After

Width:  |  Height:  |  Size: 315 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 188 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 271 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 244 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

Before

Width:  |  Height:  |  Size: 293 B

After

Width:  |  Height:  |  Size: 293 B

Before

Width:  |  Height:  |  Size: 99 B

After

Width:  |  Height:  |  Size: 99 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1012 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 951 B

Before

Width:  |  Height:  |  Size: 490 B

After

Width:  |  Height:  |  Size: 490 B

+126 -126
View File
@@ -100,13 +100,13 @@ graphics/title_screen/pokemon_logo.gbapal: %.gbapal: %.pal
$(GFX) $< $@ -num_colors 224
graphics/pokemon_jump/bg.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 63
$(GFX) $< $@ -num_tiles 63 -Wnum_tiles
$(MISCGFXDIR)/japanese_hof.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 29
$(GFX) $< $@ -num_tiles 29 -Wnum_tiles
$(MISCGFXDIR)/markings2.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 25
$(GFX) $< $@ -num_tiles 25 -Wnum_tiles
$(INTERFACEGFXDIR)/menu.gbapal: $(INTERFACEGFXDIR)/menu_0.gbapal \
$(INTERFACEGFXDIR)/menu_1.gbapal
@@ -150,15 +150,15 @@ $(UNUSEDGFXDIR)/redyellowgreen_frame.bin: $(UNUSEDGFXDIR)/red_frame.bin \
@cat $^ >$@
$(UNUSEDGFXDIR)/color_frames.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 353
$(GFX) $< $@ -num_tiles 353 -Wnum_tiles
$(BATINTGFXDIR)/unused_window2bar.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 5
$(GFX) $< $@ -num_tiles 5 -Wnum_tiles
$(BATINTGFXDIR)/level_up_banner.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 36
$(GFX) $< $@ -num_tiles 36 -Wnum_tiles
$(BATINTGFXDIR)/window.gbapal: $(BATINTGFXDIR)/window1.gbapal $(BATINTGFXDIR)/window2.gbapal
$(BATINTGFXDIR)/textbox.gbapal: $(BATINTGFXDIR)/textbox1.gbapal $(BATINTGFXDIR)/textbox2.gbapal
cat $^ > $@
$(UNUSEDGFXDIR)/old_contest.4bpp: $(UNUSEDGFXDIR)/old_contest_frame_1.4bpp \
@@ -175,7 +175,7 @@ $(UNUSEDGFXDIR)/old_contest_2.4bpp: $(UNUSEDGFXDIR)/old_contest_2_1.4bpp \
@cat $^ >$@
$(UNKNOWNGFXDIR)/unknown_D196E4.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 36
$(GFX) $< $@ -num_tiles 36 -Wnum_tiles
$(BTLANMSPRGFXDIR)/ice_crystals.4bpp: $(BTLANMSPRGFXDIR)/ice_crystals_0.4bpp \
$(BTLANMSPRGFXDIR)/ice_crystals_1.4bpp \
@@ -197,13 +197,13 @@ $(BTLANMSPRGFXDIR)/spark.4bpp: $(BTLANMSPRGFXDIR)/spark_0.4bpp \
@cat $^ >$@
$(MASKSGFXDIR)/unknown_D2EC24.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 14
$(GFX) $< $@ -num_tiles 14 -Wnum_tiles
$(BATTRANSGFXDIR)/vs_frame.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 16
$(GFX) $< $@ -num_tiles 16 -Wnum_tiles
$(INTERFACEGFXDIR)/party_menu_misc.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 62
$(GFX) $< $@ -num_tiles 62 -Wnum_tiles
$(TYPESGFXDIR)/move_types.4bpp: $(types:%=$(TYPESGFXDIR)/%.4bpp) $(contest_types:%=$(TYPESGFXDIR)/contest_%.4bpp)
@cat $^ >$@
@@ -214,29 +214,29 @@ $(TYPESGFXDIR)/move_types.gbapal: $(TYPESGFXDIR)/move_types_1.gbapal \
@cat $^ >$@
$(INTERFACEGFXDIR)/bag_screen.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 53
$(GFX) $< $@ -num_tiles 53 -Wnum_tiles
$(RAYQUAZAGFXDIR)/rayquaza.8bpp: %.8bpp: %.png
$(GFX) $< $@ -num_tiles 227
$(GFX) $< $@ -num_tiles 227 -Wnum_tiles
$(RAYQUAZAGFXDIR)/overcast.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 313
$(GFX) $< $@ -num_tiles 313 -Wnum_tiles
$(RAYQUAZAGFXDIR)/rayquaza_fly1.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 124
$(GFX) $< $@ -num_tiles 124 -Wnum_tiles
$(RAYQUAZAGFXDIR)/rayquaza_tail_fix.4bpp: $(RAYQUAZAGFXDIR)/rayquaza_tail.4bpp
cp $< $@
head -c 12 /dev/zero >> $@
$(RAYQUAZAGFXDIR)/chase_streaks.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 19
$(GFX) $< $@ -num_tiles 19 -Wnum_tiles
$(RAYQUAZAGFXDIR)/rayquaza_chase.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 155
$(GFX) $< $@ -num_tiles 155 -Wnum_tiles
graphics/picture_frame/frame5.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 86
$(GFX) $< $@ -num_tiles 86 -Wnum_tiles
$(ROULETTEGFXDIR)/roulette_tilt.4bpp: $(ROULETTEGFXDIR)/shroomish.4bpp \
$(ROULETTEGFXDIR)/tailow.4bpp
@@ -249,10 +249,10 @@ $(ROULETTEGFXDIR)/poke_icons2.4bpp: $(ROULETTEGFXDIR)/wynaut.4bpp \
@cat $^ >$@
$(BATTRANSGFXDIR)/85BBC14.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 53
$(GFX) $< $@ -num_tiles 53 -Wnum_tiles
$(BATTRANSGFXDIR)/rayquaza.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 938
$(GFX) $< $@ -num_tiles 938 -Wnum_tiles
$(BATTRANSGFXDIR)/frontier_square_1.4bpp: $(BATTRANSGFXDIR)/frontier_squares_blanktiles.4bpp \
$(BATTRANSGFXDIR)/frontier_squares_1.4bpp
@@ -275,16 +275,16 @@ $(SLOTMACHINEGFXDIR)/reel_time_gfx.4bpp: $(SLOTMACHINEGFXDIR)/reel_time_pikachu.
@cat $^ >$@
$(UNUSEDGFXDIR)/intro_birch_beauty.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 822
$(GFX) $< $@ -num_tiles 822 -Wnum_tiles
$(PSSGFXDIR)/forest_frame.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 55
$(GFX) $< $@ -num_tiles 55 -Wnum_tiles
$(PSSGFXDIR)/forest.4bpp: $(PSSGFXDIR)/forest_frame.4bpp $(PSSGFXDIR)/forest_bg.4bpp
@cat $^ >$@
$(PSSGFXDIR)/city_frame.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 52
$(GFX) $< $@ -num_tiles 52 -Wnum_tiles
$(PSSGFXDIR)/city.4bpp: $(PSSGFXDIR)/city_frame.4bpp $(PSSGFXDIR)/city_bg.4bpp
@cat $^ >$@
@@ -293,97 +293,97 @@ $(PSSGFXDIR)/desert.4bpp: $(PSSGFXDIR)/desert_frame.4bpp $(PSSGFXDIR)/desert_bg.
@cat $^ >$@
$(PSSGFXDIR)/savanna_frame.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 45
$(GFX) $< $@ -num_tiles 45 -Wnum_tiles
$(PSSGFXDIR)/savanna_bg.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 23
$(GFX) $< $@ -num_tiles 23 -Wnum_tiles
$(PSSGFXDIR)/savanna.4bpp: $(PSSGFXDIR)/savanna_frame.4bpp $(PSSGFXDIR)/savanna_bg.4bpp
@cat $^ >$@
$(PSSGFXDIR)/crag_frame.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 49
$(GFX) $< $@ -num_tiles 49 -Wnum_tiles
$(PSSGFXDIR)/crag.4bpp: $(PSSGFXDIR)/crag_frame.4bpp $(PSSGFXDIR)/crag_bg.4bpp
@cat $^ >$@
$(PSSGFXDIR)/volcano_frame.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 56
$(GFX) $< $@ -num_tiles 56 -Wnum_tiles
$(PSSGFXDIR)/volcano.4bpp: $(PSSGFXDIR)/volcano_frame.4bpp $(PSSGFXDIR)/volcano_bg.4bpp
@cat $^ >$@
$(PSSGFXDIR)/snow_frame.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 57
$(GFX) $< $@ -num_tiles 57 -Wnum_tiles
$(PSSGFXDIR)/snow.4bpp: $(PSSGFXDIR)/snow_frame.4bpp $(PSSGFXDIR)/snow_bg.4bpp
@cat $^ >$@
$(PSSGFXDIR)/cave_frame.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 55
$(GFX) $< $@ -num_tiles 55 -Wnum_tiles
$(PSSGFXDIR)/cave.4bpp: $(PSSGFXDIR)/cave_frame.4bpp $(PSSGFXDIR)/cave_bg.4bpp
@cat $^ >$@
$(PSSGFXDIR)/beach_frame.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 46
$(GFX) $< $@ -num_tiles 46 -Wnum_tiles
$(PSSGFXDIR)/beach_bg.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 23
$(GFX) $< $@ -num_tiles 23 -Wnum_tiles
$(PSSGFXDIR)/beach.4bpp: $(PSSGFXDIR)/beach_frame.4bpp $(PSSGFXDIR)/beach_bg.4bpp
@cat $^ >$@
$(PSSGFXDIR)/seafloor_frame.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 54
$(GFX) $< $@ -num_tiles 54 -Wnum_tiles
$(PSSGFXDIR)/seafloor.4bpp: $(PSSGFXDIR)/seafloor_frame.4bpp $(PSSGFXDIR)/seafloor_bg.4bpp
@cat $^ >$@
$(PSSGFXDIR)/river_frame.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 51
$(GFX) $< $@ -num_tiles 51 -Wnum_tiles
$(PSSGFXDIR)/river_bg.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 11
$(GFX) $< $@ -num_tiles 11 -Wnum_tiles
$(PSSGFXDIR)/river.4bpp: $(PSSGFXDIR)/river_frame.4bpp $(PSSGFXDIR)/river_bg.4bpp
@cat $^ >$@
$(PSSGFXDIR)/sky_frame.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 45
$(GFX) $< $@ -num_tiles 45 -Wnum_tiles
$(PSSGFXDIR)/sky.4bpp: $(PSSGFXDIR)/sky_frame.4bpp $(PSSGFXDIR)/sky_bg.4bpp
@cat $^ >$@
$(PSSGFXDIR)/polkadot_frame.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 54
$(GFX) $< $@ -num_tiles 54 -Wnum_tiles
$(PSSGFXDIR)/polkadot.4bpp: $(PSSGFXDIR)/polkadot_frame.4bpp $(PSSGFXDIR)/polkadot_bg.4bpp
@cat $^ >$@
$(PSSGFXDIR)/pokecenter_frame.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 35
$(GFX) $< $@ -num_tiles 35 -Wnum_tiles
$(PSSGFXDIR)/pokecenter.4bpp: $(PSSGFXDIR)/pokecenter_frame.4bpp $(PSSGFXDIR)/pokecenter_bg.4bpp
@cat $^ >$@
$(PSSGFXDIR)/machine_frame.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 33
$(GFX) $< $@ -num_tiles 33 -Wnum_tiles
$(PSSGFXDIR)/machine.4bpp: $(PSSGFXDIR)/machine_frame.4bpp $(PSSGFXDIR)/machine_bg.4bpp
@cat $^ >$@
$(PSSGFXDIR)/plain_frame.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 18
$(GFX) $< $@ -num_tiles 18 -Wnum_tiles
$(PSSGFXDIR)/plain.4bpp: $(PSSGFXDIR)/plain_frame.4bpp $(PSSGFXDIR)/plain_bg.4bpp
@cat $^ >$@
$(PSSGFXDIR)/friends_frame1.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 57
$(GFX) $< $@ -num_tiles 57 -Wnum_tiles
$(PSSGFXDIR)/friends_frame2.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 57
$(GFX) $< $@ -num_tiles 57 -Wnum_tiles
$(PSSGFXDIR)/zigzagoon.4bpp: $(PSSGFXDIR)/friends_frame1.4bpp $(PSSGFXDIR)/zigzagoon_bg.4bpp
@cat $^ >$@
@@ -449,70 +449,70 @@ $(FIELDEFFECTSGFXDIR)/pics/tree_disguise.4bpp: %.4bpp: %.png
$(GFX) $< $@ -mwidth 2 -mheight 4
$(INTERFACEGFXDIR)/selector_outline.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 8
$(GFX) $< $@ -num_tiles 8 -Wnum_tiles
$(BATTRANSGFXDIR)/frontier_transition.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 43
$(GFX) $< $@ -num_tiles 43 -Wnum_tiles
graphics/tm_case/unk_8E845D8.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 91
graphics/tm_case/tm_case.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 91 -Wnum_tiles
$(PKNAVGFXDIR)/header.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 53
$(GFX) $< $@ -num_tiles 53 -Wnum_tiles
$(PKNAVGFXDIR)/outline.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 53
$(GFX) $< $@ -num_tiles 53 -Wnum_tiles
$(PKNAVGFXDIR)/ui_matchcall.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 13
$(GFX) $< $@ -num_tiles 13 -Wnum_tiles
$(INTERFACEGFXDIR)/region_map.8bpp: %.8bpp: %.png
$(GFX) $< $@ -num_tiles 232
$(GFX) $< $@ -num_tiles 232 -Wnum_tiles
$(INTERFACEGFXDIR)/region_map_affine.8bpp: %.8bpp: %.png
$(GFX) $< $@ -num_tiles 233
$(GFX) $< $@ -num_tiles 233 -Wnum_tiles
$(MISCGFXDIR)/birch_help.4bpp: $(MISCGFXDIR)/birch_bag.4bpp $(MISCGFXDIR)/birch_grass.4bpp
@cat $^ >$@
$(FAMECHECKERGFXDIR)/spinning_pokeball.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 15
$(GFX) $< $@ -num_tiles 15 -Wnum_tiles
$(FAMECHECKERGFXDIR)/bg.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 165
$(GFX) $< $@ -num_tiles 165 -Wnum_tiles
graphics/seagallop/water.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 41
$(GFX) $< $@ -num_tiles 41 -Wnum_tiles
graphics/link/321start.4bpp: %.4bpp: %.png
$(GFX) $< $@ -mwidth 4 -mheight 4
$(TEXTWINDOWGFXDIR)/signpost.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 19
$(GFX) $< $@ -num_tiles 19 -Wnum_tiles
$(SLOTMACHINEGFXDIR)/unk_8466620.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 66
$(GFX) $< $@ -num_tiles 66 -Wnum_tiles
$(SLOTMACHINEGFXDIR)/unk_84659d0.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 138
$(GFX) $< $@ -num_tiles 138 -Wnum_tiles
$(TEACHYTVGFXDIR)/tiles.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 233
$(GFX) $< $@ -num_tiles 233 -Wnum_tiles
$(SSANNEGFXDIR)/unk_8479A38.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 17
$(SSANNEGFXDIR)/smoke.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 17 -Wnum_tiles
$(ITEMPCGFXDIR)/unk_8E85090.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 82
$(ITEMPCGFXDIR)/bg.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 82 -Wnum_tiles
$(TITLESCREENGFXDIR)/firered/box_art_mon.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 135
$(GFX) $< $@ -num_tiles 135 -Wnum_tiles
$(TITLESCREENGFXDIR)/leafgreen/box_art_mon.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 123
$(GFX) $< $@ -num_tiles 123 -Wnum_tiles
$(CREDITSGFXDIR)/unk_8EAE548.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 77
$(GFX) $< $@ -num_tiles 77 -Wnum_tiles
POKEDEXAREAMARKERSDATADIR := graphics/pokedex/area_markers
@@ -535,188 +535,188 @@ graphics/misc/emoticons.4bpp: %.4bpp: %.png
$(GFX) $< $@ -mwidth 2 -mheight 2
$(ITEMMENUGFXDIR)/bag_tiles.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 55
$(GFX) $< $@ -num_tiles 55 -Wnum_tiles
$(INTROGFXDIR)/scene_1/grass.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 397
$(GFX) $< $@ -num_tiles 397 -Wnum_tiles
$(INTROGFXDIR)/scene_2/plants.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 17
$(GFX) $< $@ -num_tiles 17 -Wnum_tiles
$(INTROGFXDIR)/scene_2/nidorino_close.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 170
$(GFX) $< $@ -num_tiles 170 -Wnum_tiles
$(INTROGFXDIR)/scene_2/gengar_close.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 114
$(GFX) $< $@ -num_tiles 114 -Wnum_tiles
$(INTROGFXDIR)/scene_3/gengar_anim.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 348
$(GFX) $< $@ -num_tiles 348 -Wnum_tiles
$(BATTLETERRAINGFXDIR)/building/terrain.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 77
$(GFX) $< $@ -num_tiles 77 -Wnum_tiles
$(BATTLETERRAINGFXDIR)/cave/anim.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 106
$(GFX) $< $@ -num_tiles 106 -Wnum_tiles
$(BATTLETERRAINGFXDIR)/cave/terrain.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 84
$(GFX) $< $@ -num_tiles 84 -Wnum_tiles
$(BATTLETERRAINGFXDIR)/grass/terrain.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 98
$(GFX) $< $@ -num_tiles 98 -Wnum_tiles
$(BATTLETERRAINGFXDIR)/indoor/terrain.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 77
$(GFX) $< $@ -num_tiles 77 -Wnum_tiles
$(BATTLETERRAINGFXDIR)/longgrass/anim.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 133
$(GFX) $< $@ -num_tiles 133 -Wnum_tiles
$(BATTLETERRAINGFXDIR)/longgrass/terrain.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 98
$(GFX) $< $@ -num_tiles 98 -Wnum_tiles
$(BATTLETERRAINGFXDIR)/mountain/anim.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 47
$(GFX) $< $@ -num_tiles 47 -Wnum_tiles
$(BATTLETERRAINGFXDIR)/pond/anim.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 36
$(GFX) $< $@ -num_tiles 36 -Wnum_tiles
$(BATTLETERRAINGFXDIR)/pond/terrain.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 75
$(GFX) $< $@ -num_tiles 75 -Wnum_tiles
$(BATTLETERRAINGFXDIR)/sand/terrain.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 83
$(GFX) $< $@ -num_tiles 83 -Wnum_tiles
$(BATTLETERRAINGFXDIR)/underwater/anim.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 26
$(GFX) $< $@ -num_tiles 26 -Wnum_tiles
$(BATTLETERRAINGFXDIR)/underwater/terrain.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 85
$(GFX) $< $@ -num_tiles 85 -Wnum_tiles
$(BATTLETERRAINGFXDIR)/water/terrain.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 81
$(GFX) $< $@ -num_tiles 81 -Wnum_tiles
$(BERRYPOUCHGFXDIR)/background.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 52
$(GFX) $< $@ -num_tiles 52 -Wnum_tiles
$(HALLOFFAMEGFXDIR)/hall_of_fame.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 29
$(GFX) $< $@ -num_tiles 29 -Wnum_tiles
$(TILESETGFXDIR)/primary/general/anim/water_current_landwatersedge/7.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 47
$(GFX) $< $@ -num_tiles 47 -Wnum_tiles
$(MAPPREVIEWGFXDIR)/altering_cave/tiles.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 391
$(GFX) $< $@ -num_tiles 391 -Wnum_tiles
$(MAPPREVIEWGFXDIR)/berry_forest/tiles.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 395
$(GFX) $< $@ -num_tiles 395 -Wnum_tiles
$(MAPPREVIEWGFXDIR)/digletts_cave/tiles.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 398
$(GFX) $< $@ -num_tiles 398 -Wnum_tiles
$(MAPPREVIEWGFXDIR)/dotted_hole/tiles.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 317
$(GFX) $< $@ -num_tiles 317 -Wnum_tiles
$(MAPPREVIEWGFXDIR)/icefall_cave/tiles.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 399
$(GFX) $< $@ -num_tiles 399 -Wnum_tiles
$(MAPPREVIEWGFXDIR)/lost_cave/tiles.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 404
$(GFX) $< $@ -num_tiles 404 -Wnum_tiles
$(MAPPREVIEWGFXDIR)/monean_chamber/tiles.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 326
$(GFX) $< $@ -num_tiles 326 -Wnum_tiles
$(MAPPREVIEWGFXDIR)/mt_ember/tiles.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 355
$(GFX) $< $@ -num_tiles 355 -Wnum_tiles
$(MAPPREVIEWGFXDIR)/mt_moon/tiles.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 364
$(GFX) $< $@ -num_tiles 364 -Wnum_tiles
$(MAPPREVIEWGFXDIR)/pokemon_mansion/tiles.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 388
$(GFX) $< $@ -num_tiles 388 -Wnum_tiles
$(MAPPREVIEWGFXDIR)/pokemon_tower/tiles.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 290
$(GFX) $< $@ -num_tiles 290 -Wnum_tiles
$(MAPPREVIEWGFXDIR)/power_plant/tiles.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 368
$(GFX) $< $@ -num_tiles 368 -Wnum_tiles
$(MAPPREVIEWGFXDIR)/rock_tunnel/tiles.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 407
$(GFX) $< $@ -num_tiles 407 -Wnum_tiles
$(MAPPREVIEWGFXDIR)/rocket_hideout/tiles.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 194
$(GFX) $< $@ -num_tiles 194 -Wnum_tiles
$(MAPPREVIEWGFXDIR)/rocket_warehouse/tiles.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 234
$(GFX) $< $@ -num_tiles 234 -Wnum_tiles
$(MAPPREVIEWGFXDIR)/safari_zone/tiles.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 330
$(GFX) $< $@ -num_tiles 330 -Wnum_tiles
$(MAPPREVIEWGFXDIR)/seafoam_islands/tiles.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 408
$(GFX) $< $@ -num_tiles 408 -Wnum_tiles
$(MAPPREVIEWGFXDIR)/silph_co/tiles.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 355
$(GFX) $< $@ -num_tiles 355 -Wnum_tiles
$(MAPPREVIEWGFXDIR)/victory_road/tiles.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 375
$(GFX) $< $@ -num_tiles 375 -Wnum_tiles
$(MAPPREVIEWGFXDIR)/viridian_forest/tiles.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 389
$(GFX) $< $@ -num_tiles 389 -Wnum_tiles
$(NAMINGGFXDIR)/cursor.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 5
$(GFX) $< $@ -num_tiles 5 -Wnum_tiles
$(NAMINGGFXDIR)/cursor_squished.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 5
$(GFX) $< $@ -num_tiles 5 -Wnum_tiles
$(NAMINGGFXDIR)/cursor_filled.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 5
$(GFX) $< $@ -num_tiles 5 -Wnum_tiles
$(WALLPAPERGFXDIR)/beach/tiles.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 60
$(GFX) $< $@ -num_tiles 60 -Wnum_tiles
$(WALLPAPERGFXDIR)/cave/tiles.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 61
$(GFX) $< $@ -num_tiles 61 -Wnum_tiles
$(WALLPAPERGFXDIR)/city/tiles.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 40
$(GFX) $< $@ -num_tiles 40 -Wnum_tiles
$(WALLPAPERGFXDIR)/crag/tiles.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 54
$(GFX) $< $@ -num_tiles 54 -Wnum_tiles
$(WALLPAPERGFXDIR)/desert/tiles.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 52
$(GFX) $< $@ -num_tiles 52 -Wnum_tiles
$(WALLPAPERGFXDIR)/forest/tiles.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 53
$(GFX) $< $@ -num_tiles 53 -Wnum_tiles
$(WALLPAPERGFXDIR)/pokecenter/tiles.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 57
$(GFX) $< $@ -num_tiles 57 -Wnum_tiles
$(WALLPAPERGFXDIR)/river/tiles.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 63
$(GFX) $< $@ -num_tiles 63 -Wnum_tiles
$(WALLPAPERGFXDIR)/savanna/tiles.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 45
$(GFX) $< $@ -num_tiles 45 -Wnum_tiles
$(WALLPAPERGFXDIR)/seafloor/tiles.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 53
$(GFX) $< $@ -num_tiles 53 -Wnum_tiles
$(WALLPAPERGFXDIR)/simple/tiles.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 25
$(GFX) $< $@ -num_tiles 25 -Wnum_tiles
$(WALLPAPERGFXDIR)/sky/tiles.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 52
$(GFX) $< $@ -num_tiles 52 -Wnum_tiles
$(WALLPAPERGFXDIR)/snow/tiles.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 51
$(GFX) $< $@ -num_tiles 51 -Wnum_tiles
$(WALLPAPERGFXDIR)/stars/tiles.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 37
$(GFX) $< $@ -num_tiles 37 -Wnum_tiles
$(WALLPAPERGFXDIR)/tiles/tiles.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 31
$(GFX) $< $@ -num_tiles 31 -Wnum_tiles
$(WALLPAPERGFXDIR)/volcano/tiles.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 57
$(GFX) $< $@ -num_tiles 57 -Wnum_tiles
+1 -1
View File
@@ -581,7 +581,7 @@ struct BattleBarInfo
u8 healthboxSpriteId;
s32 maxValue;
s32 oldValue;
s32 receivedValue;
s32 receivedValue; // if positive/negative, fills the bar to the left/right respectively
s32 currValue;
};
+21 -15
View File
@@ -25,25 +25,31 @@ enum
HP_BAR_FULL,
};
#define TAG_HEALTHBOX_PLAYER1_TILE 0xD6FF
#define TAG_HEALTHBOX_PLAYER2_TILE 0xD700
#define TAG_HEALTHBOX_OPPONENT1_TILE 0xD701
#define TAG_HEALTHBOX_OPPONENT2_TILE 0xD702
#define TAG_HEALTHBOX_PLAYER1_TILE 55039
#define TAG_HEALTHBOX_PLAYER2_TILE 55040
#define TAG_HEALTHBOX_OPPONENT1_TILE 55041
#define TAG_HEALTHBOX_OPPONENT2_TILE 55042
#define TAG_HEALTHBAR_PLAYER1_TILE 0xD704
#define TAG_HEALTHBAR_OPPONENT1_TILE 0xD705
#define TAG_HEALTHBAR_PLAYER2_TILE 0xD706
#define TAG_HEALTHBAR_OPPONENT2_TILE 0xD707
#define TAG_HEALTHBAR_PLAYER1_TILE 55044
#define TAG_HEALTHBAR_OPPONENT1_TILE 55045
#define TAG_HEALTHBAR_PLAYER2_TILE 55046
#define TAG_HEALTHBAR_OPPONENT2_TILE 55047
#define TAG_HEALTHBOX_SAFARI_TILE 0xD70B
#define TAG_HEALTHBOX_PALS_1 55049
#define TAG_HEALTHBOX_PALS_2 55050
#define TAG_HEALTHBOX_SAFARI_TILE 55051
#define TAG_PARTY_SUMMARY_BAR_PLAYER_TILE 55052
#define TAG_PARTY_SUMMARY_BAR_OPPONENT_TILE 55053
#define TAG_STATUS_SUMMARY_BAR_TILE 0xD70C
#define TAG_STATUS_SUMMARY_BALLS_TILE 0xD714
#define TAG_PARTY_SUMMARY_BAR_PLAYER_PAL 55056
#define TAG_PARTY_SUMMARY_BAR_OPPONENT_PAL 55057
#define TAG_PARTY_SUMMARY_BALL_PLAYER_PAL 55058
#define TAG_PARTY_SUMMARY_BALL_OPPONENT_PAL 55059
#define TAG_PARTY_SUMMARY_BALL_PLAYER_TILE 55060
#define TAG_PARTY_SUMMARY_BALL_OPPONENT_TILE 55061
#define TAG_HEALTHBOX_PAL 0xD6FF
#define TAG_HEALTHBAR_PAL 0xD704
#define TAG_STATUS_SUMMARY_BAR_PAL 0xD710
#define TAG_STATUS_SUMMARY_BALLS_PAL 0xD712
#define TAG_HEALTHBOX_PAL TAG_HEALTHBOX_PLAYER1_TILE
#define TAG_HEALTHBAR_PAL TAG_HEALTHBAR_PLAYER1_TILE
enum
{
+14 -3
View File
@@ -189,10 +189,21 @@
#define TRACKS_FOOT 1
#define TRACKS_BIKE_TIRE 2
#define OBJ_EVENT_ID_PLAYER 0xFF
#define OBJ_EVENT_ID_CAMERA 0x7F
#define OBJ_KIND_NORMAL 0
#define OBJ_KIND_CLONE 255
// Special object event local ids
#define OBJ_EVENT_ID_PLAYER 0xFF
#define OBJ_EVENT_ID_CAMERA 0x7F
// Object event local ids referenced in C files
#define LOCALID_UNION_ROOM_PLAYER_4 2
#define LOCALID_UNION_ROOM_PLAYER_8 3
#define LOCALID_UNION_ROOM_PLAYER_7 4
#define LOCALID_UNION_ROOM_PLAYER_6 5
#define LOCALID_UNION_ROOM_PLAYER_5 6
#define LOCALID_UNION_ROOM_PLAYER_3 7
#define LOCALID_UNION_ROOM_PLAYER_2 8
#define LOCALID_UNION_ROOM_PLAYER_1 9
#endif // GUARD_CONSTANTS_EVENT_OBJECTS_H
+59 -34
View File
@@ -1,47 +1,51 @@
#ifndef GUARD_CONSTANTS_UNION_ROOM_H
#define GUARD_CONSTANTS_UNION_ROOM_H
// The number of possible group leaders visible in the Union Room.
// Note that this is different than the number of people actively
// connected as children via the Wireless Adapter, which cannot
// exceed RFU_CHILD_MAX (4), for a total of 5 including the player.
#define MAX_UNION_ROOM_LEADERS 8
#define UNION_ROOM_SPAWN_NONE 0
#define UNION_ROOM_SPAWN_IN 1
#define UNION_ROOM_SPAWN_OUT 2
#define ACTIVITY_NONE 0
#define ACTIVITY_BATTLE 1
#define ACTIVITY_DBLBATTLE 2
#define ACTIVITY_MLTBATTLE 3
#define ACTIVITY_TRADE 4
#define ACTIVITY_CHAT 5
#define ACTIVITY_WCARD 6
#define ACTIVITY_WNEWS 7
#define ACTIVITY_CARD 8
#define ACTIVITY_PJUMP 9
#define ACTIVITY_BCRUSH 10
#define ACTIVITY_BPICK 11
#define ACTIVITY_SEARCH 12
#define ACTIVITY_SPINTRADE 13
#define ACTIVITY_ITEMTRADE 14
#define UNION_ROOM_MAX_LEVEL 30
// The number of possible trainer classes for a trainer of a given gender in the Union Room.
// This value is necessarily a power of 2 because of the way it's treated in GetUnionRoomTrainerPic / GetUnionRoomTrainerClass
#define NUM_UNION_ROOM_CLASSES (1 << 3) // 8
#define ACTIVITY_NONE 0
#define ACTIVITY_BATTLE_SINGLE 1
#define ACTIVITY_BATTLE_DOUBLE 2
#define ACTIVITY_BATTLE_MULTI 3
#define ACTIVITY_TRADE 4
#define ACTIVITY_CHAT 5
#define ACTIVITY_WONDER_CARD_DUP 6 // Duplicates of later WONDER constants
#define ACTIVITY_WONDER_NEWS_DUP 7 //
#define ACTIVITY_CARD 8
#define ACTIVITY_POKEMON_JUMP 9
#define ACTIVITY_BERRY_CRUSH 10
#define ACTIVITY_BERRY_PICK 11
#define ACTIVITY_SEARCH 12
#define ACTIVITY_SPIN_TRADE 13
#define ACTIVITY_ITEM_TRADE 14 // Replaced with ACTIVITY_BATTLE_TOWER_OPEN in Emerald
#define ACTIVITY_RECORD_CORNER 15
#define ACTIVITY_BERRY_BLENDER 16
// Player response
#define ACTIVITY_ACCEPT 17
#define ACTIVITY_DECLINE 18
#define ACTIVITY_ACCEPT 17
#define ACTIVITY_DECLINE 18
#define ACTIVITY_NPCTALK 19
#define ACTIVITY_PLYRTALK 20
#define ACTIVITY_NPCTALK 19
#define ACTIVITY_PLYRTALK 20
// Duplicate IDs?
#define ACTIVITY_WCARD2 21
#define ACTIVITY_WNEWS2 22
#define ACTIVITY_WONDER_CARD 21
#define ACTIVITY_WONDER_NEWS 22
#define IN_UNION_ROOM 0x40
// Used in UR_AddTextPrinterParameterized
#define UR_COLOR_DKE_WHT_LTE 0
#define UR_COLOR_RED_WHT_LTR 1
#define UR_COLOR_GRN_WHT_LTG 2
#define UR_COLOR_WHT_WHT_LTE 3
#define UR_COLOR_WHT_DKE_LTE 4
#define UR_COLOR_GRN_DN6_LTB 5
#define UR_COLOR_DN5_DN6_LTB 6
#define IN_UNION_ROOM (1 << 6)
#define LINK_GROUP_SINGLE_BATTLE 0
#define LINK_GROUP_DOUBLE_BATTLE 1
@@ -52,9 +56,30 @@
#define LINK_GROUP_BERRY_PICKING 6
#define LINK_GROUP_WONDER_CARD 7
#define LINK_GROUP_WONDER_NEWS 8
#define NUM_LINK_GROUP_TYPES 9
#define LINK_GROUP_UNION_ROOM_RESUME 9
#define LINK_GROUP_UNION_ROOM_INIT 10
#define LINK_GROUP_UNK_11 11
#define LINK_GROUP_UNK_12 12
#define NUM_LINK_GROUP_TYPES 13
#define UR_TRADE_MATCH 0
#define UR_TRADE_NOTYPE 1
#define UR_TRADE_NOEGG 2
#define UR_TRADE_READY 0
#define UR_TRADE_PLAYER_NOT_READY 1
#define UR_TRADE_PARTNER_NOT_READY 2
#define UR_INTERACT_PLAYER_1 1
#define UR_INTERACT_PLAYER_2 2
#define UR_INTERACT_PLAYER_3 3
#define UR_INTERACT_PLAYER_4 4
#define UR_INTERACT_PLAYER_5 5
#define UR_INTERACT_PLAYER_6 6
#define UR_INTERACT_PLAYER_7 7
#define UR_INTERACT_PLAYER_8 8
#define UR_INTERACT_ATTENDANT 9
#define UR_INTERACT_UNUSED 10
#define UR_INTERACT_START_MENU 11
#endif //GUARD_CONSTANTS_UNION_ROOM_H
+3
View File
@@ -27,6 +27,9 @@ typedef double f64;
typedef u8 bool8;
typedef u16 bool16;
typedef u32 bool32;
typedef vu8 vbool8;
typedef vu16 vbool16;
typedef vu32 vbool32;
struct BgCnt
{
+17 -19
View File
@@ -2866,21 +2866,19 @@ extern const u16 gFameCheckerBg3Tilemap[0x400];
extern const u16 gFameCheckerBg2Tilemap[0x400];
// tm_case
extern const u32 gUnknown_8E845D8[];
extern const u32 gUnknown_8E84A24[];
extern const u32 gUnknown_8E84B70[];
extern const u32 gUnknown_8E84CB0[];
extern const u32 gUnknown_8E84D20[];
extern const u32 gTMCase_TMSpriteGfx[];
extern const u32 gUnknown_8E84F20[];
extern const u32 gUnknown_8E85068[];
extern const u8 gUnknown_8E99118[];
extern const u32 gTMCase_Gfx[];
extern const u32 gTMCaseMenu_Tilemap[];
extern const u32 gTMCase_Tilemap[];
extern const u32 gTMCaseMenu_Male_Pal[];
extern const u32 gTMCaseMenu_Female_Pal[];
extern const u32 gTMCaseDisc_Gfx[];
extern const u32 gTMCaseDiscTypes1_Pal[];
extern const u32 gTMCaseDiscTypes2_Pal[];
extern const u8 gTMCaseHM_Gfx[];
extern const u16 gStandardMenuPalette[];
// egg_hatch
extern const u32 gBattleTextboxTiles[];
extern const u32 gBattleTextboxTilemap[];
extern const u32 gBattleTextboxPalette[];
extern const u32 gTradeGba2_Pal[];
extern const u32 gTradeGba_Gfx[];
@@ -4322,8 +4320,6 @@ extern const u32 gHealthboxDoublesPlayerGfx[];
extern const u32 gHealthboxDoublesOpponentGfx[];
extern const u32 gHealthboxSafariGfx[];
extern const u32 gBlankGfxCompressed[];
extern const u16 gBattleInterface_BallStatusBarPal[];
extern const u16 gBattleInterface_BallDisplayPal[];
extern const u32 gInterfaceGfx_HPNumbers[];
extern const u32 gGhostFrontPic[];
extern const u32 gGhostPalette[];
@@ -4861,11 +4857,13 @@ extern const u16 gHoennTrainerCard_Pal[];
extern const u32 gHoennTrainerCard_Gfx[];
// battle_interface
extern const u32 gFile_graphics_battle_interface_ball_status_bar_sheet[];
extern const u8 gHealthboxElementsGfxTable[][32];
extern const u16 gBattleInterface_BallStatusBarPal[];
extern const u16 gBattleInterface_BallDisplayPal[];
extern const u16 gBattleInterface_SummaryBallDisplayGfx[];
extern const u32 gBattleInterface_Textbox_Gfx[];
extern const u32 gBattleInterface_Textbox_Pal[];
extern const u32 gBattleInterface_Textbox_Tilemap[];
extern const u32 gBattleInterface_PartySummaryBar_Gfx[];
extern const u8 gBattleInterface_Gfx[][32];
extern const u16 gBattleInterface_Healthbox_Pal[];
extern const u16 gBattleInterface_Healthbar_Pal[];
// item_menu
extern const u32 gUnknown_8E830CC[];
+3 -3
View File
@@ -14,7 +14,7 @@ struct Item
u8 holdEffectParam;
const u8 *description;
u8 importance;
u8 exitsBagOnUse;
u8 registrability;
u8 pocket;
u8 type; // unused for balls
ItemUseFunc fieldUseFunc;
@@ -69,7 +69,7 @@ ItemUseFunc ItemId_GetFieldFunc(u16 itemId);
u8 ItemId_GetBattleUsage(u16 itemId);
ItemUseFunc ItemId_GetBattleFunc(u16 itemId);
u8 ItemId_GetSecondaryId(u16 itemId);
u16 itemid_get_market_price(u16 itemId);
u16 ItemId_GetPrice(u16 itemId);
void ClearBag(void);
void ClearPCItemSlots(void);
void TrySetObtainedItemQuestLogEvent(u16 itemId);
@@ -79,7 +79,7 @@ void SortPocketAndPlaceHMsFirst(struct BagPocket * pocket);
u16 BagGetItemIdByPocketPosition(u8 pocketId, u16 itemId);
u16 BagGetQuantityByPocketPosition(u8 pocketId, u16 itemId);
u16 BagGetQuantityByItemId(u16 item);
bool8 itemid_is_unique(u16 itemId);
u8 ItemId_GetImportance(u16 itemId);
void BagPocketCompaction(struct ItemSlot * slots, u8 capacity);
u16 GetPcItemQuantity(u16 *);
void SetBagPocketsPointers(void);
+1 -2
View File
@@ -269,7 +269,7 @@ void SetSuppressLinkErrorMessage(bool8);
bool8 HasLinkErrorOccurred(void);
void ResetSerial(void);
u32 LinkMain1(u8 *, u16 *, u16[MAX_RFU_PLAYERS][CMD_LENGTH]);
void RFUVSync(void);
void RfuVSync(void);
void Timer3Intr(void);
void SerialCB(void);
u8 GetLinkPlayerCount(void);
@@ -277,7 +277,6 @@ bool32 InUnionRoom(void);
void SetLinkStandbyCallback(void);
void SetWirelessCommType1(void);
void LinkRfu_DestroyIdleTask(void);
void SetCloseLinkCallback(void);
void OpenLink(void);
bool8 IsLinkMaster(void);
+162 -140
View File
@@ -6,35 +6,29 @@
#include "link.h"
#include "AgbRfu_LinkManager.h"
#define RFUCMD_MASK 0xFF00
#define RFUCMD_MASK 0xFF00
#define RFUCMD_SEND_PACKET 0x2F00
#define RFUCMD_READY_CLOSE_LINK 0x5f00
#define RFUCMD_READY_EXIT_STANDBY 0x6600
#define RFUCMD_PLAYERS_LIST 0x7700
#define RFUCMD_PLAYERS_LIST_2 0x7800
#define RFUCMD_SEND_BLOCK_INIT 0x8800
#define RFUCMD_SEND_BLOCK_STEP 0x8900
#define RFUCMD_SEND_BLOCK_REQ 0xa100
#define RFUCMD_SEND_HELD_KEYS 0xbe00
#define RFUCMD_PARENT_DISCONNECT 0xed00
#define RFUCMD_CHILD_DISCONNECT 0xee00
#define RFUCMD_SEND_PACKET 0x2F00
#define RFUCMD_BLENDER_SEND_KEYS 0x4400
#define RFUCMD_READY_CLOSE_LINK 0x5F00
#define RFUCMD_READY_EXIT_STANDBY 0x6600
#define RFUCMD_SEND_PLAYER_IDS 0x7700
#define RFUCMD_SEND_PLAYER_IDS_NEW 0x7800
#define RFUCMD_SEND_BLOCK_INIT 0x8800
#define RFUCMD_SEND_BLOCK 0x8900
#define RFUCMD_SEND_BLOCK_REQ 0xA100
#define RFUCMD_SEND_HELD_KEYS 0xBE00
#define RFUCMD_DISCONNECT 0xED00
#define RFUCMD_DISCONNECT_PARENT 0xEE00
#define RFU_PACKET_SIZE 6
#define RFU_SERIAL_7F7D 0x7F7D
#define RFU_SERIAL_GAME 0x0002 // Serial number for Pokémon game (FRLG or Emerald)
#define RFU_SERIAL_WONDER_DISTRIBUTOR 0x7F7D // Serial number for distributing Wonder Cards / News
#define RFU_SERIAL_END 0xFFFF
#define COMM_SLOT_LENGTH 14
#define RECV_QUEUE_NUM_SLOTS 20
#define RECV_QUEUE_SLOT_LENGTH (14 * MAX_RFU_PLAYERS)
#define SEND_QUEUE_NUM_SLOTS 40
#define SEND_QUEUE_SLOT_LENGTH 14
#define BACKUP_QUEUE_NUM_SLOTS 2
#define BACKUP_QUEUE_SLOT_LENGTH 14
#define UNUSED_QUEUE_NUM_SLOTS 2
#define UNUSED_QUEUE_SLOT_LENGTH 256
#define RFU_PACKET_SIZE 6
@@ -48,50 +42,88 @@
#define RFU_STATUS_WAIT_ACK_JOIN_GROUP 7
#define RFU_STATUS_LEAVE_GROUP_NOTICE 8
#define RFU_STATUS_LEAVE_GROUP 9
#define RFU_STATUS_10 10
#define RFU_STATUS_11 11
#define RFU_STATUS_CHILD_LEAVE_READY 10
#define RFU_STATUS_CHILD_LEAVE 11
#define RFU_STATUS_ACK_JOIN_GROUP 12
#define RFU_RECV_IDLE 0
#define RFU_RECV_RECEIVING 1
#define RFU_RECV_FINISHED 2
// Values for disconnectMode
enum {
RFU_DISCONNECT_NONE,
RFU_DISCONNECT_ERROR,
RFU_DISCONNECT_NORMAL,
};
// Values for errorState
enum {
RFU_ERROR_STATE_NONE,
RFU_ERROR_STATE_OCCURRED,
RFU_ERROR_STATE_PROCESSED,
RFU_ERROR_STATE_DISCONNECTING,
RFU_ERROR_STATE_IGNORE,
};
// These error flags are set in errorInfo, and given as
// the uppermost 16 bits of 'status' for sLinkErrorBuffer.
// The first 8 bits are reserved for the link manager msg
// when the error occurred, and the last 8 bits are this
// sequence of presumably meaningful error flags, but
// ultimately sLinkErrorBuffer's status is never read.
#define F_RFU_ERROR_1 (1 << 8)
#define F_RFU_ERROR_2 (1 << 9) // Never set
#define F_RFU_ERROR_3 (1 << 10) // Never set
#define F_RFU_ERROR_4 (1 << 11) // Never set
#define F_RFU_ERROR_5 (1 << 12)
#define F_RFU_ERROR_6 (1 << 13)
#define F_RFU_ERROR_7 (1 << 14)
#define F_RFU_ERROR_8 (1 << 15)
// RfuTgtData.gname is read as these structs.
struct GFtgtGnameSub
struct RfuGameCompatibilityData
{
u16 language:4;
u16 hasNews:1;
u16 hasCard:1;
u16 unknown:1;
u16 unknown:1; // Never read
u16 isChampion:1;
u16 hasNationalDex:1;
u16 gameClear:1;
u16 version:4;
u16 unk_01_6:2;
u16 unused:2;
u8 playerTrainerId[2];
};
struct __attribute__((packed, aligned(2))) GFtgtGname
// This struct is sent via the Wireless Adapter as the game name or "gname" data.
// Gname is only applicable during Wireless Single Game Pak Multiplay, when the
// adapter needs this data for connection. Per the RFU manual, during "normal"
// wireless play (the kind the Pokémon games use) the gname data can be used for
// anything the developers want. This struct is what GF decided to use it for.
// It can be up to 13 bytes in size (RFU_GAME_NAME_LENGTH).
// The player's name is sent separately as the username ("uname"), and does not
// use a struct (gHostRfuUsername).
struct __attribute__((packed, aligned(2))) RfuGameData
{
struct GFtgtGnameSub unk_00;
u8 child_sprite_gender[RFU_CHILD_MAX]; // u8 sprite_idx:3;
// u8 gender:1;
// u8 unk_4:3
// u8 active:1
u16 species:10;
u16 type:6;
struct RfuGameCompatibilityData compatibility;
u8 partnerInfo[RFU_CHILD_MAX];
u16 tradeSpecies:10;
u16 tradeType:6;
u8 activity:7;
u8 started:1;
u8 startedActivity:1;
u8 playerGender:1;
u8 level:7;
u8 tradeLevel:7;
u8 padding;
}; // size: RFU_GNAME_SIZE
struct Padded_U8
{
u8 value;
};
// Constants for getting/setting information in 'partnerInfo' of RfuGameData.
// This data is used to determine what the link partners look like from
// the host's perspective.
// Bits 0-2 are a shortened trainerId
// Bit 3 is the player's gender
// Bits 4-6 are unknown/unused
// Bit 7 is an 'active' flag
#define PINFO_TID_MASK 0x7
#define PINFO_GENDER_SHIFT 3
#define PINFO_ACTIVE_FLAG (1 << 7)
struct RfuBlockSend
{
/* 0x00 */ u16 next;
@@ -106,59 +138,50 @@ struct RfuBlockSend
struct RfuRecvQueue
{
/* 0x000 */ u8 slots[RECV_QUEUE_NUM_SLOTS][RECV_QUEUE_SLOT_LENGTH];
/* 0x578 */ vu8 recv_slot;
/* 0x579 */ vu8 send_slot;
/* 0x000 */ u8 slots[RECV_QUEUE_NUM_SLOTS][COMM_SLOT_LENGTH * MAX_RFU_PLAYERS];
/* 0x578 */ vu8 recvSlot;
/* 0x579 */ vu8 sendSlot;
/* 0x57a */ vu8 count;
/* 0x57b */ vu8 full;
};
struct RfuSendQueue
{
/* 0x000 */ u8 slots[SEND_QUEUE_NUM_SLOTS][SEND_QUEUE_SLOT_LENGTH];
/* 0x230 */ vu8 recv_slot;
/* 0x231 */ vu8 send_slot;
/* 0x000 */ u8 slots[SEND_QUEUE_NUM_SLOTS][COMM_SLOT_LENGTH];
/* 0x230 */ vu8 recvSlot;
/* 0x231 */ vu8 sendSlot;
/* 0x232 */ vu8 count;
/* 0x233 */ vu8 full;
};
struct RfuBackupQueue
{
/* 0x00 */ u8 slots[BACKUP_QUEUE_NUM_SLOTS][BACKUP_QUEUE_SLOT_LENGTH];
/* 0x1c */ vu8 recv_slot;
/* 0x1d */ vu8 send_slot;
/* 0x00 */ u8 slots[BACKUP_QUEUE_NUM_SLOTS][COMM_SLOT_LENGTH];
/* 0x1c */ vu8 recvSlot;
/* 0x1d */ vu8 sendSlot;
/* 0x1e */ vu8 count;
};
struct RfuUnusedQueue
struct RfuManager
{
/* 0x000 */ u8 slots[UNUSED_QUEUE_NUM_SLOTS][UNUSED_QUEUE_SLOT_LENGTH];
/* 0x200 */ vu8 recv_slot;
/* 0x201 */ vu8 send_slot;
/* 0x202 */ vu8 count;
/* 0x203 */ vu8 full;
};
typedef struct UnkRfuStruct_2
{
/* 0x000 */ void (*RfuFunc)(void);
/* 0x000 */ void (*callback)(void);
/* 0x004 */ u16 state;
/* 0x006 */ u8 filler_06[4];
/* 0x00a */ u16 linkman_msg;
/* 0x00c */ u8 parent_child;
/* 0x006 */ u8 unused1[4];
/* 0x00a */ u16 errorInfo;
/* 0x00c */ u8 parentChild;
/* 0x00d */ u8 playerCount;
/* 0x00e */ u8 unk_0e;
/* 0x00f */ u8 unk_0f;
/* 0x010 */ u16 linkman_param[2];
/* 0x014 */ u8 main_UNI_recvBuffer[RFU_CHILD_MAX][14];
/* 0x04c */ u8 lastCmdBeforeCommInterrupt[14];
/* 0x05a */ u8 cmdA100_blockRequestType;
/* 0x00e */ bool8 runParentMain2;
/* 0x00f */ u8 unused2;
/* 0x010 */ u16 errorParams[2];
/* 0x014 */ u8 childRecvBuffer[RFU_CHILD_MAX][COMM_SLOT_LENGTH];
/* 0x04c */ u8 childSendBuffer[COMM_SLOT_LENGTH];
/* 0x05a */ u8 blockRequestType;
/* 0x05b */ u8 sendBlockInitDelay;
/* 0x05c */ bool8 blockReceived[MAX_RFU_PLAYERS];
/* 0x061 */ u8 numBlocksReceived[MAX_RFU_PLAYERS];
/* 0x066 */ u8 idleTaskId;
/* 0x067 */ u8 searchTaskId;
/* 0x068 */ u8 filler_68[4];
/* 0x068 */ u8 unused3[4];
/* 0x06c */ struct RfuBlockSend sendBlock;
/* 0x080 */ struct RfuBlockSend recvBlock[MAX_RFU_PLAYERS];
/* 0x0e4 */ bool8 readyCloseLink[MAX_RFU_PLAYERS];
@@ -170,67 +193,66 @@ typedef struct UnkRfuStruct_2
/* 0x0f2 */ u16 packet[RFU_PACKET_SIZE];
/* 0x0fe */ u16 resendExitStandbyTimer;
/* 0x100 */ u16 resendExitStandbyCount;
/* 0x102 */ u8 unk_102;
/* 0x104 */ struct RfuTgtData tgtData;
/* 0x102 */ u8 childSendCmdId;
/* 0x104 */ struct RfuTgtData parent;
/* 0x124 */ struct RfuRecvQueue recvQueue;
/* 0x6a0 */ struct RfuSendQueue sendQueue;
/* 0x8d4 */ struct RfuBackupQueue backupQueue;
/* 0x8f4 */ vu8 linkRecovered;
/* 0x8f5 */ u8 reconnectedParentIdx;
/* 0x8f6 */ vu8 child_slot;
/* 0x8f7 */ u8 unk_c3f[70];
/* 0x8f5 */ u8 reconnectParentId;
/* 0x8f6 */ vu8 childSlot;
/* 0x8f7 */ u8 childRecvQueue[COMM_SLOT_LENGTH * MAX_RFU_PLAYERS];
/* 0x93d */ u8 sendStatus;
/* 0x93e */ u8 recvStatus;
/* 0x93f */ u8 recvCmds[MAX_RFU_PLAYERS][7][2];
/* 0x93f */ u8 recvCmds[MAX_RFU_PLAYERS][CMD_LENGTH - 1][2];
/* 0x985 */ u8 parentId;
/* 0x986 */ u8 multiplayerId; // childId
/* 0x987 */ u8 unk_ccf;
/* 0x988 */ vu8 sem_UNI_SendRecv;
/* 0x987 */ u8 connectParentFailures;
/* 0x988 */ vu8 childSendCount;
/* 0x989 */ u8 partnerSendStatuses[RFU_CHILD_MAX];
/* 0x98d */ u8 partnerRecvStatuses[RFU_CHILD_MAX];
/* 0x991 */ u8 linkClosing;
/* 0x992 */ u8 unk_cda;
/* 0x993 */ volatile bool8 unk_cdb;
/* 0x994 */ volatile bool8 unk_cdc;
/* 0x995 */ u8 unk_cdd;
/* 0x991 */ bool8 stopNewConnections;
/* 0x992 */ u8 parentSendSlot;
/* 0x993 */ vbool8 parentFinished;
/* 0x994 */ vbool8 parentMain2Failed;
/* 0x995 */ u8 unused5;
/* 0x996 */ u8 linkPlayerIdx[RFU_CHILD_MAX];
/* 0x99a */ u8 bm_PartnerFlags;
/* 0x99b */ u8 bm_DisconnectSlot;
/* 0x99c */ u8 unk_ce4;
/* 0x99d */ u8 bmChatLeaderMaybe;
/* 0x99e */ u8 unionRoomChatters;
/* 0x99a */ u8 parentSlots;
/* 0x99b */ u8 disconnectSlots;
/* 0x99c */ u8 disconnectMode;
/* 0x99d */ u8 nextChildBits;
/* 0x99e */ u8 newChildQueue;
/* 0x99f */ u8 acceptSlot_flag;
/* 0x9a0 */ bool8 foundNewLeaderMaybe;
/* 0x9a1 */ u8 unk_ce9;
/* 0x9a2 */ u8 unk_cea[RFU_CHILD_MAX];
/* 0x9a6 */ u8 unk_cee[RFU_CHILD_MAX];
} GF_RFU_MANAGER; // size: 0x9AC
/* 0x9a0 */ bool8 playerExchangeActive;
/* 0x9a1 */ u8 incomingChild;
/* 0x9a2 */ u8 numChildRecvErrors[RFU_CHILD_MAX];
/* 0x9a6 */ u8 childRecvIds[RFU_CHILD_MAX];
}; // size: 0x9AC
extern struct GFtgtGname gHostRFUtgtGnameBuffer;
extern u8 gHostRFUtgtUnameBuffer[];
extern GF_RFU_MANAGER Rfu;
extern struct RfuGameData gHostRfuGameData;
extern u8 gHostRfuUsername[];
extern struct RfuManager gRfu;
// GameFreak signatures
void AddTextPrinterToWindow1(const u8 *str);
bool32 MG_PrintTextOnWindow1AndWaitButton(u8 * cmdPtr, const u8 * src);
bool32 PrintMysteryGiftMenuMessage(u8 * cmdPtr, const u8 * src);
void LinkRfu_FatalError(void);
void MG_DrawCheckerboardPattern(void);
void Rfu_SetCloseLinkCallback(void);
bool8 IsLinkRfuTaskFinished(void);
void DestroyWirelessStatusIndicatorSprite(void);
void MEvent_CreateTask_CardOrNewsWithFriend(u32 arg0);
void MEvent_CreateTask_CardOrNewsOverWireless(u32 arg0);
void MEvent_CreateTask_Leader(u32 arg0);
void CreateTask_LinkMysteryGiftWithFriend(u32 activity);
void CreateTask_LinkMysteryGiftOverWireless(u32 activity);
void CreateTask_SendMysteryGift(u32 activity);
void Rfu_SendPacket(void *data);
u8 CreateTask_ListenToWireless(void);
void LinkRfu_DestroyIdleTask(void);
void DestroyTask_RfuIdle(void);
void InitRFUAPI(void);
void sub_80FB128(bool32 a0);
void RfuSetIgnoreError(bool32 enable);
bool32 IsSendingKeysToRfu(void);
void ClearLinkRfuCallback(void);
u8 GetRfuPlayerCount(void);
u8 Rfu_GetLinkPlayerCount(void);
void StartSendingKeysToRfu(void);
u8 LinkRfu_GetMultiplayerId(void);
u8 Rfu_GetMultiplayerId(void);
bool32 Rfu_InitBlockSend(const u8 * src, size_t size);
bool8 Rfu_SendBlockRequest(u8 blockRequestType);
u8 Rfu_GetBlockReceivedStatus(void);
@@ -238,15 +260,15 @@ void Rfu_SetBlockReceivedFlag(u8 linkPlayerId);
void Rfu_ResetBlockReceivedFlag(u8 linkPlayerId);
bool8 Rfu_IsMaster(void);
void ResetLinkRfuGFLayer(void);
bool32 LinkRfuMain1(void);
bool32 LinkRfuMain2(void);
bool32 RfuMain1(void);
bool32 RfuMain2(void);
bool32 IsRfuRecvQueueEmpty(void);
u32 GetRfuRecvQueueLength(void);
void LinkRfu_Shutdown(void);
void LinkRfu_CreateIdleTask(void);
bool8 ToggleLMANlinkRecovery(bool32 enable);
void var_800D_set_xB(void);
struct GFtgtGname *GetHostRFUtgtGname(void);
void CreateTask_RfuIdle(void);
bool8 Rfu_SetLinkRecovery(bool32 enable);
void SetUsingUnionRoomStartMenu(void);
struct RfuGameData *GetHostRfuGameData(void);
void UpdateWirelessStatusIndicatorSprite(void);
void InitRFU(void);
bool32 RfuHasErrored(void);
@@ -262,44 +284,44 @@ bool8 RfuBackupQueue_Dequeue(struct RfuBackupQueue *queue, u8 *dest);
void RfuBackupQueue_Enqueue(struct RfuBackupQueue *queue, const u8 *dest);
bool8 RfuRecvQueue_Dequeue(struct RfuRecvQueue * queue, u8 *dest);
void RfuSendQueue_Enqueue(struct RfuSendQueue * queue, u8 *src);
void InitHostRFUtgtGname(struct GFtgtGname *data, u8 activity, bool32 started, s32 child_sprite_genders);
void InitHostRfuGameData(struct RfuGameData *data, u8 activity, bool32 started, s32 partnerInfo);
void UpdateGameData_GroupLockedIn(bool8 started);
bool32 IsRfuSerialNumberValid(u32 serialNo);
bool8 IsRfuRecoveringFromLinkLoss(void);
bool8 LmanAcceptSlotFlagIsNotZero(void);
void LinkRfu_StopManagerAndFinalizeSlots(void);
bool32 sub_80FA5D4(void);
bool32 sub_80FC1CC(void);
bool32 WaitRfuState(bool32 a0);
bool32 CheckTrainerHasLeftByIdAndName(u16 trainerId, const u8 *trainerName);
void SendByteToPartnerByIdAndName(u8 a0, u16 a1, const u8 *a2);
u32 WaitSendByteToPartnerByIdAndName(u16 a0, const u8 *a1);
void SetHostRFUtgtGname(u8 activity, u32 child_sprite_genders, u32 a2);
bool32 RfuTryDisconnectLeavingChildren(void);
bool32 IsRfuCommunicatingWithAllChildren(void);
bool32 WaitRfuState(bool32 force);
bool32 HasTrainerLeftPartnersList(u16 trainerId, const u8 *trainerName);
void SendRfuStatusToPartner(u8 status, u16 trainerId, const u8 *name);
u32 WaitSendRfuStatusToPartner(u16 trainerId, const u8 *name);
void SetHostRfuGameData(u8 activity, u32 partnerInfo, bool32 startedActivity);
void InitializeRfuLinkManager_LinkLeader(u32 availSlots);
void RequestDisconnectSlotByTrainerNameAndId(const u8 *trainerName, u16 trainerId);
void LinkRfu3_SetGnameUnameFromStaticBuffers(struct GFtgtGname *gname, u8 *uname);
void CopyHostRfuGameDataAndUsername(struct RfuGameData *gameData, u8 *username);
void InitializeRfuLinkManager_JoinGroup(void);
void SendLeaveGroupNotice(void);
void CreateTask_RfuReconnectWithParent(const u8 *src, u16 trainerId);
void UpdateGameDataWithActivitySpriteGendersFlag(u8 activity, u32 child_sprite_genders, u32 started);
void RecordMixTrainerNames(void);
void UpdateGameData_SetActivity(u8 activity, u32 partnerInfo, u32 startedActivity);
void SaveLinkTrainerNames(void);
void LinkRfu_CreateConnectionAsParent();
void LinkRfu_StopManagerBeforeEnteringChat();
void SetGnameBufferWonderFlags(bool32 hasNews, bool32 hasCard);
void ClearAndInitHostRFUtgtGname(void);
void sub_80F8FA0(void);
void RfuUpdatePlayerGnameStateAndSend(u32 type, u32 species, u32 level);
void SetHostRfuWonderFlags(bool32 hasNews, bool32 hasCard);
void ResetHostRfuGameData(void);
void StopUnionRoomLinkManager(void);
void SetTradeBoardRegisteredMonInfo(u32 type, u32 species, u32 level);
bool32 IsUnionRoomListenTaskActive(void);
void InitializeRfuLinkManager_EnterUnionRoom(void);
void sub_80FBD6C(u32 a0);
void sub_80FC114(const u8 *name, struct GFtgtGname *structPtr, u8 a2);
void Rfu_DisconnectPlayerById(u32 playerIdx);
void TryConnectToUnionRoomParent(const u8 *name, struct RfuGameData *parent, u8 activity);
bool32 PlayerHasMetTrainerBefore(u16 id, u8 *name);
bool8 LinkRfu_GetNameIfCompatible(struct GFtgtGname *gname, u8 *uname, u8 idx);
bool8 LinkRfu_GetNameIfSerial7F7D(struct GFtgtGname *gname, u8 *uname, u8 idx);
bool32 RfuHasFoundNewLeader(void);
void Rfu_UnionRoomChat_StopLinkManager(void);
void sub_80FB9D0(void);
void sub_80FB030(u32 a0);
bool8 Rfu_GetCompatiblePlayerData(struct RfuGameData *gameData, u8 *username, u8 idx);
bool8 Rfu_GetWonderDistributorPlayerData(struct RfuGameData *gameData, u8 *username, u8 idx);
bool32 Rfu_IsPlayerExchangeActive(void);
void Rfu_StopPartnerSearch(void);
void RfuSetNormalDisconnectMode(void);
void SetUnionRoomChatPlayerData(u32 numPlayers);
void ClearRecvCommands(void);
#include "mevent_server.h"
+2 -2
View File
@@ -101,8 +101,8 @@ void InitMEventData(void);
u16 MEvent_GetBattleCardCount(u32 command);
void MysteryGift_TryIncrementStat(u32 eventId, u32 trainerId);
u16 *GetMEventProfileECWordsMaybe(void);
void ResetReceivedWonderCardFlag(void);
bool32 MEventHandleReceivedWonderCard(u16 flagId);
void MysteryGift_DisableStats(void);
bool32 MysteryGift_TryEnableStatsByFlagId(u16 flagId);
u16 GetWonderCardFlagId(void);
#endif //GUARD_MEVENT_H
+2 -2
View File
@@ -6,8 +6,8 @@ extern bool8 gGiftIsFromEReader;
void MainCB_FreeAllBuffersAndReturnToInitTitleScreen(void);
void PrintMysteryGiftOrEReaderTopMenu(bool8, bool32);
void c2_mystery_gift(void);
void c2_mystery_gift_e_reader_run(void);
s8 mevent_message_print_and_prompt_yes_no(u8 * textState, u16 * windowId, bool8 yesNoBoxPlacement, const u8 * str);
void CB2_MysteryGiftEReader(void);
s8 DoMysteryGiftYesNo(u8 * textState, u16 * windowId, bool8 yesNoBoxPlacement, const u8 * str);
void MG_DrawTextBorder(u8 windowId);
u16 GetMysteryGiftBaseBlock(void);
-16
View File
@@ -1,16 +0,0 @@
#ifndef GUARD_UNION_ROOM_PLAYER_AVATAR_H
#define GUARD_UNION_ROOM_PLAYER_AVATAR_H
#include "union_room.h"
u8 ZeroUnionObjWork(struct UnionObj * ptr);
void DeleteUnionObjWorkAndStopTask(void);
void CreateGroupMemberObjectsInvisible(u8 *spriteIds, s32 group);
void DestroyGroupMemberObjects(u8 *spriteIds);
void MakeGroupAssemblyAreasPassable(void);
void ScheduleUnionRoomPlayerRefresh(struct UnkStruct_URoom *uroom_p);
void HandleUnionRoomPlayerRefresh(struct UnkStruct_URoom *uroom_p);
bool32 RfuUnionTool_GetGroupAndMemberInFrontOfPlayer(struct UnkStruct_Main0 *main0_p, s16 *member_p, s16 *group_p, u8 *spriteIds);
void UpdateUnionGroupMemberFacing(u32 member, u32 group, struct UnkStruct_Main0 *main0_p);
#endif //GUARD_UNION_ROOM_PLAYER_AVATAR_H
+2 -2
View File
@@ -103,8 +103,8 @@ extern const u8 gText_ItemCantBeHeld[];
extern const u8 gText_TMCase[];
extern const u8 gText_Close[];
extern const u8 gText_TMCaseWillBePutAway[];
extern const u8 gText_FontSize0[];
extern const u8 gText_FontSize2[];
extern const u8 gText_Font0[];
extern const u8 gText_Font2[];
extern const u8 gText_OhNoICantBuyThat[];
extern const u8 gText_HowManyWouldYouLikeToSell[];
extern const u8 gText_ICanPayThisMuch_WouldThatBeOkay[];
+13 -9
View File
@@ -1,17 +1,21 @@
#ifndef GUARD_TM_CASE_H
#define GUARD_TM_CASE_H
enum TmCaseType
{
TMCASE_FROMFIELD,
TMCASE_FROMPARTYGIVE,
TMCASE_FROMMARTSELL,
TMCASE_FROMPOKEMONSTORAGEPC,
TMCASE_FROMBATTLE,
TMCASE_NA
// Values for 'type' argument to InitTMCase
enum {
TMCASE_FIELD,
TMCASE_GIVE_PARTY,
TMCASE_SELL,
TMCASE_GIVE_PC,
TMCASE_POKEDUDE,
TMCASE_REOPENING,
};
void InitTMCase(u8 a0, void (* a1)(void), u8 a2);
// Alternative value for 'allowSelectClose' argument to InitTMCase.
// Indicates that the previous value should be preserved
#define TMCASE_KEEP_PREV 0xFF
void InitTMCase(u8 type, void (* exitCallback)(void), bool8 allowSelectClose);
void ResetTMCaseCursorPos(void);
void Pokedude_InitTMCase(void);
+3 -3
View File
@@ -13,10 +13,10 @@ extern const u8 gText_FemaleSymbol4[];
extern const u8 gText_GenderlessSymbol[];
extern const u16 gTradeOrHatchMonShadowTilemap[];
void CB2_ReturnFromLinkTrade(void);
void CB2_StartCreateTradeMenu(void);
s32 Trade_CalcLinkPlayerCompatibilityParam(void);
s32 CanRegisterMonForTradingBoard(struct GFtgtGnameSub rfuPlayer, u16 species2, u16 species, u8 isEventLegal);
s32 GetUnionRoomTradeMessageId(struct GFtgtGnameSub rfuPlayer, struct GFtgtGnameSub rfuPartner, u16 playerSpecies2, u16 partnerSpecies, u8 requestedType, u16 playerSpecies, u8 isEventLegal);
s32 CanRegisterMonForTradingBoard(struct RfuGameCompatibilityData rfuPlayer, u16 species2, u16 species, u8 isEventLegal);
s32 GetUnionRoomTradeMessageId(struct RfuGameCompatibilityData rfuPlayer, struct RfuGameCompatibilityData rfuPartner, u16 playerSpecies2, u16 partnerSpecies, u8 requestedType, u16 playerSpecies, u8 isEventLegal);
void CB2_ReturnToTradeMenuFromSummary(void);
#endif //GUARD_TRADE_H
+1 -1
View File
@@ -1,7 +1,7 @@
#ifndef GUARD_TRADE_SCENE_H
#define GUARD_TRADE_SCENE_H
void CB2_InitTradeAnim_LinkTrade(void);
void CB2_LinkTrade(void);
void CreateInGameTradePokemon(void);
void DoInGameTradeScene(void);
void DrawTextOnTradeWindow(u8 windowId, const u8 *str, s8 speed);
+85 -97
View File
@@ -3,58 +3,60 @@
#include "global.h"
#include "link_rfu.h"
#include "constants/union_room.h"
// Return value of IsRequestedTypeAndSpeciesInPlayerParty
#define UR_TRADE_MATCH 0
#define UR_TRADE_NOTYPE 1
#define UR_TRADE_NOEGG 2
// In the Union Room the player is only ever connected to ≤ 4 other players.
// However, there can be up to MAX_UNION_ROOM_LEADERS (8) object events to
// represent leaders of recently discovered link groups, and each of those groups
// may have up to MAX_RFU_PLAYERS (5) players in it including the leader.
// These players are represented on-screen by NPC sprites drawn around the leader.
// Thus there can be 40 sprites of other players on-screen, in 8 groups of 5.
#define NUM_UNION_ROOM_SPRITES (MAX_UNION_ROOM_LEADERS * MAX_RFU_PLAYERS)
#define UROOM_MAX_GROUP_COUNT 8
#define UROOM_MAX_PARTY_SIZE 5
// The maximum number of recently connected players that can be tracked.
// Note that this is significantly less than NUM_UNION_ROOM_SPRITES, i.e. not
// every player that can be shown in the Union Room can be tracked at once.
// Information such as a group member's gender can instead be read from partnerInfo
// of the leader's RfuGameData by tracking at least all of the group leaders.
#define MAX_RFU_PLAYER_LIST_SIZE 16
struct UnionGnameUnamePair
struct RfuPlayerData
{
struct GFtgtGname gname;
u8 ALIGNED(4) uname[PLAYER_NAME_LENGTH + 1];
struct RfuGameData data;
u8 ALIGNED(4) name[RFU_USER_NAME_LENGTH];
};
struct UnkStruct_x1C
struct RfuPlayer
{
struct UnionGnameUnamePair gname_uname;
struct RfuPlayerData rfu;
u16 timeoutCounter;
u8 groupScheduledAnim:2;
bool8 useRedText:1; // Never set
u8 newPlayerCountdown;
u8 unused;
};
struct RfuPlayerList
{
struct RfuPlayer players[MAX_RFU_PLAYER_LIST_SIZE];
};
struct RfuIncomingPlayer
{
struct RfuPlayerData rfu;
u8 active:1;
};
struct UnkStruct_x20
struct RfuIncomingPlayerList
{
struct UnionGnameUnamePair gname_uname;
u16 field_18;
u8 groupScheduledAnim:2;
bool8 field_1A_1:1;
u8 field_1B;
u32 field_1C; // unused
struct RfuIncomingPlayer players[MAX_RFU_PLAYERS];
};
// These arrays are dynamically allocated but must be
// represented as structs to match.
// Don't ask me why.
// FIXME: Find a way around this.
struct UnkStruct_Main0
struct WirelessLink_Leader
{
struct UnkStruct_x20 arr[0];
};
struct UnkStruct_Main4
{
struct UnkStruct_x1C arr[0];
};
struct UnkStruct_Leader
{
struct UnkStruct_Main0 * field_0;
struct UnkStruct_Main4 * field_4;
struct UnkStruct_Main0 * field_8;
struct RfuPlayerList * playerList;
struct RfuIncomingPlayerList * incomingPlayerList;
struct RfuPlayerList * playerListBackup;
u8 state;
u8 textState;
u8 delayTimerAfterOk;
@@ -63,36 +65,35 @@ struct UnkStruct_Leader
u8 nPlayerModeWindowId;
u8 listTaskId;
u8 playerCount;
u8 messageWindowId;
u8 field_15;
u8 field_16;
u16 yesNoWindowId;
u8 unused;
u8 listenTaskId;
u8 activity;
u8 field_19;
u16 field_1A;
u8 joinRequestAnswer;
u16 memberConfirmTimeout;
};
struct UnkStruct_Group
struct WirelessLink_Group
{
struct UnkStruct_Main0 * field_0;
struct UnkStruct_Main4 * field_4;
struct RfuPlayerList * playerList;
struct RfuIncomingPlayerList * incomingPlayerList;
u8 state;
u8 textState;
u8 field_A; // unused
u8 delayTimerAfterOk; // unused
u8 listWindowId;
u8 bButtonCancelWindowId;
u8 playerNameAndIdWindowId;
u8 listTaskId;
u8 leaderId;
u8 field_10;
u8 unused;
u8 listenTaskId;
u8 cardOrNews;
u8 field_13; // referenced but never set
bool8 isWonderNews;
bool8 showListMenu; // referenced but never set
u8 refreshTimer;
u8 delayBeforePrint;
};
struct UnionObj
struct UnionRoomObject
{
u8 state;
u8 gfxId;
@@ -100,69 +101,56 @@ struct UnionObj
u8 schedAnim;
};
struct UnkStruct_URoom
struct WirelessLink_URoom
{
/* 0x000 */ struct UnkStruct_Main0 * field_0;
/* 0x004 */ struct UnkStruct_Main4 * field_4;
/* 0x008 */ struct UnkStruct_Main0 * field_8;
/* 0x00C */ struct UnkStruct_Main4 * field_C;
/* 0x010 */ u16 field_10;
/* 0x012 */ u16 field_12;
/* 0x014 */ u8 state;
/* 0x015 */ u8 stateAfterPrint;
/* 0x016 */ u8 textState;
/* 0x017 */ u8 field_17;
/* 0x018 */ u8 field_18;
/* 0x019 */ u8 field_19;
/* 0x01A */ u8 field_1A;
/* 0x01B */ u8 topListMenuWindowId;
/* 0x01C */ u8 topListMenuListMenuId;
/* 0x01D */ u8 tradeBoardSelectWindowId;
/* 0x01E */ u8 tradeBoardDetailsWindowId;
/* 0x01F */ u8 field_1F;
/* 0x020 */ u8 field_20;
/* 0x021 */ u8 spriteIds[40];
/* 0x049 */ u8 field_49;
/* 0x04A */ u8 tradeBoardListMenuId;
// For communication with potential link partners
/* 0x04C */ u16 playerSendBuffer[6];
/* 0x058 */ u8 activityRequestStrbufs[4][11];
/* 0x084 */ u16 partnerYesNoResponse;
/* 0x086 */ u16 recvActivityRequest[3]; // activity[, species, level]
/* 0x08C */ struct UnionObj unionObjs[8];
/* 0x0AC */ u8 trainerCardStrbufs[12][15];
/* 0x160 */ u8 field_174[48];
/* 0x190 */ u8 field_1A4[200];
};
union UnkUnion_Main
{
struct UnkStruct_Leader * leader;
struct UnkStruct_Group * group;
struct UnkStruct_URoom * uRoom;
struct RfuPlayerList * playerList;
struct RfuIncomingPlayerList * incomingChildList;
struct RfuPlayerList * spawnPlayer;
struct RfuIncomingPlayerList * incomingParentList;
u16 unknown; // Never read
u16 unreadPlayerId;
u8 state;
u8 stateAfterPrint;
u8 textState;
u8 filler[4];
u8 topListMenuWindowId;
u8 topListMenuId;
u8 tradeBoardMainWindowId;
u8 tradeBoardHeaderWindowId;
u8 unused1;
u8 searchTaskId;
u8 spriteIds[NUM_UNION_ROOM_SPRITES];
u8 unused2;
u8 tradeBoardListMenuId;
// For communication with potential link partners
u16 playerSendBuffer[6];
u8 activityRequestStrbufs[4][11];
u16 partnerYesNoResponse;
u16 recvActivityRequest[3]; // activity[, species, level]
struct UnionRoomObject objects[MAX_UNION_ROOM_LEADERS];
u8 trainerCardStrBuffer[12][15];
u8 trainerCardColorStrBuffer[48];
u8 trainerCardMsgStrBuffer[200];
};
struct UnionRoomTrade
{
u16 field_0;
u16 state;
u16 type;
u32 playerPersonality;
u8 field_8;
u8 field_9;
u8 offerPlayerId;
u16 playerSpecies;
u16 playerLevel;
u16 species;
u16 level;
u16 field_12;
u32 personality;
};
extern struct GFtgtGnameSub gPartnerTgtGnameSub;
extern struct RfuGameCompatibilityData gRfuPartnerCompatibilityData;
extern u16 gUnionRoomOfferedSpecies;
extern u8 gUnionRoomRequestedMonType;
void StartUnionRoomBattle(u16 battleFlags);
u8 UnionRoom_CreateTask_CallCB2ReturnFromLinkTrade(void);
u8 CreateTask_CreateTradeMenu(void);
#endif //GUARD_UNION_ROOM_H
+16
View File
@@ -0,0 +1,16 @@
#ifndef GUARD_UNION_ROOM_PLAYER_AVATAR_H
#define GUARD_UNION_ROOM_PLAYER_AVATAR_H
#include "union_room.h"
u8 InitUnionRoomPlayerObjects(struct UnionRoomObject * players);
void DestroyUnionRoomPlayerObjects(void);
void CreateUnionRoomPlayerSprites(u8 *spriteIds, s32 leaderId);
void DestroyUnionRoomPlayerSprites(u8 *spriteIds);
void MakeGroupAssemblyAreasPassable(void);
void ScheduleUnionRoomPlayerRefresh(struct WirelessLink_URoom *uroom);
void HandleUnionRoomPlayerRefresh(struct WirelessLink_URoom *uroom);
bool32 TryInteractWithUnionRoomMember(struct RfuPlayerList *list, s16 *memberIdPtr, s16 *leaderIdPtr, u8 *spriteIds);
void UpdateUnionRoomMemberFacing(u32 memberId, u32 leaderId, struct RfuPlayerList *list);
#endif //GUARD_UNION_ROOM_PLAYER_AVATAR_H
+2 -2
View File
@@ -249,7 +249,7 @@ SECTIONS {
src/trainer_fan_club.o(.text);
src/quest_log_events.o(.text);
src/union_room.o(.text);
src/rfu_union_tool.o(.text);
src/union_room_player_avatar.o(.text);
src/union_room_battle.o(.text);
src/pokemon_special_anim.o(.text);
src/pokemon_special_anim_scene.o(.text);
@@ -542,7 +542,7 @@ SECTIONS {
src/trainer_fan_club.o(.rodata);
src/quest_log_events.o(.rodata);
src/union_room.o(.rodata);
src/rfu_union_tool.o(.rodata);
src/union_room_player_avatar.o(.rodata);
src/union_room_battle.o(.rodata);
src/union_room_message.o(.rodata);
src/pokemon_special_anim.o(.rodata);
-9
View File
@@ -17,7 +17,6 @@
#include "constants/moves.h"
#include "constants/songs.h"
// Defines
#define TAG_PARTICLES_POKEBALL 55020
#define TAG_PARTICLES_GREATBALL 55021
#define TAG_PARTICLES_SAFARIBALL 55022
@@ -31,15 +30,10 @@
#define TAG_PARTICLES_LUXURYBALL 55030
#define TAG_PARTICLES_PREMIERBALL 55031
#define TAG_HEALTHBOX_PALS_1 55049
#define TAG_HEALTHBOX_PALS_2 55050
// RAM
u32 gMonShrinkDuration;
u16 gMonShrinkDelta;
u16 gMonShrinkDistance;
// Function Declarations
static void AnimTask_UnusedLevelUpHealthBox_Step(u8);
static void AnimTask_FlashHealthboxOnLevelUp_Step(u8);
static void AnimTask_ThrowBall_WaitAnimObjComplete(u8);
@@ -94,7 +88,6 @@ static void TimerBallOpenParticleAnimation(u8);
static void PremierBallOpenParticleAnimation(u8);
static void SpriteCB_SafariBaitOrRock_Init(struct Sprite *);
// Data
struct CaptureStar
{
s8 xOffset;
@@ -408,8 +401,6 @@ const struct SpriteTemplate gSafariRockTemplate =
.callback = SpriteCB_SafariBaitOrRock_Init,
};
// Functions
// Unused
void AnimTask_LevelUpHealthBox(u8 taskId)
{
+6 -6
View File
@@ -713,10 +713,10 @@ void DrawMainBattleBackground(void)
void LoadBattleTextboxAndBackground(void)
{
LZDecompressVram(gBattleTextboxTiles, (void *)BG_CHAR_ADDR(0));
CopyToBgTilemapBuffer(0, gBattleTextboxTilemap, 0, 0x000);
LZDecompressVram(gBattleInterface_Textbox_Gfx, (void *)BG_CHAR_ADDR(0));
CopyToBgTilemapBuffer(0, gBattleInterface_Textbox_Tilemap, 0, 0x000);
CopyBgTilemapBufferToVram(0);
LoadCompressedPalette(gBattleTextboxPalette, 0x00, 0x40);
LoadCompressedPalette(gBattleInterface_Textbox_Pal, 0x00, 0x40);
LoadBattleMenuWindowGfx();
DrawMainBattleBackground();
}
@@ -1076,14 +1076,14 @@ bool8 LoadChosenBattleElement(u8 caseId)
switch (caseId)
{
case 0:
LZDecompressVram(gBattleTextboxTiles, (void *)BG_CHAR_ADDR(0));
LZDecompressVram(gBattleInterface_Textbox_Gfx, (void *)BG_CHAR_ADDR(0));
break;
case 1:
CopyToBgTilemapBuffer(0, gBattleTextboxTilemap, 0, 0x000);
CopyToBgTilemapBuffer(0, gBattleInterface_Textbox_Tilemap, 0, 0x000);
CopyBgTilemapBufferToVram(0);
break;
case 2:
LoadCompressedPalette(gBattleTextboxPalette, 0x00, 0x40);
LoadCompressedPalette(gBattleInterface_Textbox_Pal, 0x00, 0x40);
break;
case 3:
battleScene = GetBattleTerrainOverride();
+1 -1
View File
@@ -519,7 +519,7 @@ void TryReceiveLinkBattleData(void)
if (gReceivedRemoteLinkPlayers != 0 && (gBattleTypeFlags & BATTLE_TYPE_LINK_IN_BATTLE) && (gLinkPlayers[0].linkType == 0x2211))
{
LinkRfu_DestroyIdleTask();
DestroyTask_RfuIdle();
for (i = 0; i < GetLinkPlayerCount(); i++)
{
if (GetBlockReceivedStatus() & gBitTable[i])
+2 -2
View File
@@ -98,11 +98,11 @@ static const struct CompressedSpriteSheet sSpriteSheets_HealthBar[MAX_BATTLERS_C
static const struct SpritePalette sSpritePalettes_HealthBoxHealthBar[2] =
{
{
.data = gBattleInterface_BallStatusBarPal,
.data = gBattleInterface_Healthbox_Pal,
.tag = TAG_HEALTHBOX_PAL,
},
{
.data = gBattleInterface_BallDisplayPal,
.data = gBattleInterface_Healthbar_Pal,
.tag = TAG_HEALTHBAR_PAL,
},
};
+751 -708
View File
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -1773,7 +1773,7 @@ void CB2_InitEndLinkBattle(void)
gBattle_BG3_X = 0;
gBattle_BG3_Y = 0;
InitBattleBgsVideo();
LoadCompressedPalette(gBattleTextboxPalette, 0, 64);
LoadCompressedPalette(gBattleInterface_Textbox_Pal, 0, 64);
LoadBattleMenuWindowGfx();
ResetSpriteData();
ResetTasks();
+3 -3
View File
@@ -969,9 +969,9 @@ static u32 QuitBerryCrush(MainCallback callback)
#define ERROR_EXIT(exitCallback) \
{ \
SetMainCallback2(exitCallback); \
Rfu.linkman_param[0] = 0; \
Rfu.linkman_param[1] = 0; \
Rfu.errorState = 1; \
gRfu.errorParams[0] = 0; \
gRfu.errorParams[1] = 0; \
gRfu.errorState = 1; \
}
+8 -8
View File
@@ -684,13 +684,13 @@ static void SetUpListMenuTemplate(void)
static void GetBerryNameAndIndexForMenu(u8 * dest, u16 itemId)
{
StringCopy(gStringVar4, gText_FontSize0);
StringCopy(gStringVar4, gText_Font0);
StringAppend(gStringVar4, gText_NumberClear01);
ConvertIntToDecimalStringN(gStringVar1, itemId - FIRST_BERRY_INDEX + 1, STR_CONV_MODE_LEADING_ZEROS, 2);
StringAppend(gStringVar4, gStringVar1);
CopyItemName(itemId, gStringVar1);
StringAppend(gStringVar4, sText_Space);
StringAppend(gStringVar4, gText_FontSize2);
StringAppend(gStringVar4, gText_Font2);
StringAppend(gStringVar4, gStringVar1);
StringCopy(dest, gStringVar4);
}
@@ -1265,7 +1265,7 @@ static void Task_ContextMenu_FromPokemonPC(u8 taskId)
static void Task_ContextMenu_Sell(u8 taskId)
{
s16 * data = gTasks[taskId].data;
if (itemid_get_market_price(gSpecialVar_ItemId) == 0)
if (ItemId_GetPrice(gSpecialVar_ItemId) == 0)
{
CopyItemName(gSpecialVar_ItemId, gStringVar1);
StringExpandPlaceholders(gStringVar4, gText_OhNoICantBuyThat);
@@ -1293,7 +1293,7 @@ static void Task_ContextMenu_Sell(u8 taskId)
static void Task_AskSellMultiple(u8 taskId)
{
s16 * data = gTasks[taskId].data;
ConvertIntToDecimalStringN(gStringVar3, itemid_get_market_price(BagGetItemIdByPocketPosition(POCKET_BERRY_POUCH, data[1])) / 2 * data[8], STR_CONV_MODE_LEFT_ALIGN, 6);
ConvertIntToDecimalStringN(gStringVar3, ItemId_GetPrice(BagGetItemIdByPocketPosition(POCKET_BERRY_POUCH, data[1])) / 2 * data[8], STR_CONV_MODE_LEFT_ALIGN, 6);
StringExpandPlaceholders(gStringVar4, gText_ICanPayThisMuch_WouldThatBeOkay);
DisplayItemMessageInBerryPouch(taskId, GetDialogBoxFontId(), gStringVar4, Task_SellMultiple_CreateYesNoMenu);
}
@@ -1323,7 +1323,7 @@ static void Task_Sell_PrintSelectMultipleUI(u8 taskId)
ConvertIntToDecimalStringN(gStringVar1, 1, STR_CONV_MODE_LEADING_ZEROS, 2);
StringExpandPlaceholders(gStringVar4, gText_TimesStrVar1);
BerryPouchPrint(windowId, FONT_0, gStringVar4, 4, 10, 1, 0, 0xFF, 1);
SellMultiple_UpdateSellPriceDisplay(itemid_get_market_price(BagGetItemIdByPocketPosition(POCKET_BERRY_POUCH, data[1])) / 2 * data[8]);
SellMultiple_UpdateSellPriceDisplay(ItemId_GetPrice(BagGetItemIdByPocketPosition(POCKET_BERRY_POUCH, data[1])) / 2 * data[8]);
PrintMoneyInWin2();
CreateScrollIndicatorArrows_SellQuantity();
gTasks[taskId].func = Task_Sell_SelectMultiple;
@@ -1340,7 +1340,7 @@ static void Task_Sell_SelectMultiple(u8 taskId)
if (AdjustQuantityAccordingToDPadInput(&data[8], data[2]) == TRUE)
{
PrintxQuantityOnWindow(1, data[8], 2);
SellMultiple_UpdateSellPriceDisplay(itemid_get_market_price(BagGetItemIdByPocketPosition(POCKET_BERRY_POUCH, data[1])) / 2 * data[8]);
SellMultiple_UpdateSellPriceDisplay(ItemId_GetPrice(BagGetItemIdByPocketPosition(POCKET_BERRY_POUCH, data[1])) / 2 * data[8]);
}
else if (JOY_NEW(A_BUTTON))
{
@@ -1373,7 +1373,7 @@ static void Task_SellYes(u8 taskId)
PutWindowTilemap(0);
ScheduleBgCopyTilemapToVram(0);
CopyItemName(gSpecialVar_ItemId, gStringVar1);
ConvertIntToDecimalStringN(gStringVar3, itemid_get_market_price(BagGetItemIdByPocketPosition(POCKET_BERRY_POUCH, data[1])) / 2 * data[8], STR_CONV_MODE_LEFT_ALIGN, 6);
ConvertIntToDecimalStringN(gStringVar3, ItemId_GetPrice(BagGetItemIdByPocketPosition(POCKET_BERRY_POUCH, data[1])) / 2 * data[8], STR_CONV_MODE_LEFT_ALIGN, 6);
StringExpandPlaceholders(gStringVar4, gText_TurnedOverItemsWorthYen);
DisplayItemMessageInBerryPouch(taskId, FONT_2, gStringVar4, Task_SellBerries_PlaySfxAndRemoveBerries);
}
@@ -1383,7 +1383,7 @@ static void Task_SellBerries_PlaySfxAndRemoveBerries(u8 taskId)
s16 * data = gTasks[taskId].data;
PlaySE(SE_SHOP);
RemoveBagItem(gSpecialVar_ItemId, data[8]);
AddMoney(&gSaveBlock1Ptr->money, itemid_get_market_price(gSpecialVar_ItemId) / 2 * data[8]);
AddMoney(&gSaveBlock1Ptr->money, ItemId_GetPrice(gSpecialVar_ItemId) / 2 * data[8]);
RecordItemPurchase(gSpecialVar_ItemId, data[8], 2);
DestroyListMenuTask(data[0], &sStaticCnt.listMenuScrollOffset, &sStaticCnt.listMenuSelectedRow);
SortAndCountBerries();
+2 -2
View File
@@ -897,7 +897,7 @@ static void Task_StartWiredTrade(u8 taskId)
case 3:
if (!gReceivedRemoteLinkPlayers)
{
SetMainCallback2(CB2_ReturnFromLinkTrade);
SetMainCallback2(CB2_StartCreateTradeMenu);
DestroyTask(taskId);
}
break;
@@ -929,7 +929,7 @@ static void Task_StartWirelessTrade(u8 taskId)
case 3:
if (IsLinkTaskFinished())
{
UnionRoom_CreateTask_CallCB2ReturnFromLinkTrade();
CreateTask_CreateTradeMenu();
DestroyTask(taskId);
}
break;
+375 -375
View File
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -20,7 +20,7 @@ const struct Item gItems[] = {
.description = gItemDescription_{{ item.itemId }},
## endif
.importance = {{ item.importance }},
.exitsBagOnUse = {{ item.exitsBagOnUse }},
.registrability = {{ item.registrability }},
.pocket = {{ item.pocket }},
.type = {{ item.type }},
.fieldUseFunc = {{ item.fieldUseFunc }},

Some files were not shown because too many files have changed in this diff Show More