Skip to content

Commit 1ee23d9

Browse files
committed
Merge branch 'Dev' into rc
# Conflicts: # version.py
2 parents b9b7908 + 03b7479 commit 1ee23d9

47 files changed

Lines changed: 42568 additions & 42131 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

ASM/build/asm_symbols.txt

Lines changed: 1369 additions & 1363 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

ASM/build/bundle.o

1.8 KB
Binary file not shown.

ASM/build/c_symbols.txt

Lines changed: 700 additions & 691 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

ASM/c/blue_warp.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
extern uint8_t PLAYER_ID;
1414
extern uint8_t PLAYER_NAME_ID;
1515
extern bool REWARDS_AS_ITEMS;
16+
extern uint8_t MW_SEND_OWN_ITEMS;
1617

1718
// Original function copied over
1819
int32_t DoorWarp1_PlayerInRange(z64_actor_t* actor, z64_game_t* game) {
@@ -39,6 +40,10 @@ int32_t DoorWarp1_PlayerInRange_Overwrite(z64_actor_t* actor, z64_game_t* game)
3940
override_t override = lookup_override_by_key(override_key);
4041
uint16_t resolved_item_id = resolve_upgrades(override);
4142
item_row_t* item_row = get_item_row(resolved_item_id);
43+
if (MW_SEND_OWN_ITEMS) {
44+
// Also send to multiworld plugin for informational purposes if requested
45+
push_outgoing_override(&override);
46+
}
4247
call_effect_function(item_row);
4348
PLAYER_NAME_ID = override.value.base.player;
4449
z64_DisplayTextbox(&z64_game, resolve_item_text_id(item_row, PLAYER_NAME_ID != PLAYER_ID), 0);

ASM/c/get_items.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ void item_overrides_init();
1313
void handle_pending_items();
1414
void push_delayed_item(uint8_t flag);
1515
void pop_pending_item();
16+
void push_outgoing_override(override_t* override);
1617
enum override_type {
1718
OVR_BASE_ITEM = 0,
1819
OVR_CHEST = 1,

ASM/c/item_draw_functions.c

Lines changed: 84 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
#include "z64.h"
44
#include "item_draw_table.h"
55
#include "sys_matrix.h"
6+
#include "rainbow.h"
67

78
typedef Gfx* (*append_setup_dl_fn)(Gfx* gfx, uint32_t dl_index);
89
typedef void (*append_setup_dl_26_to_opa_fn)(z64_gfx_t* gfx);
@@ -18,6 +19,7 @@ typedef Gfx* (*gen_double_tile_fn)(z64_gfx_t* gfx, int32_t tile1, uint32_t x1, u
1819
#define gen_double_tile ((gen_double_tile_fn)0x8007EB84)
1920

2021
extern z64_actor_t* curr_drawn_actor;
22+
extern Gfx sSetupDL[71][6];
2123

2224
void draw_gi_bombchu_and_masks(z64_game_t* game, uint32_t draw_id) {
2325
z64_gfx_t* gfx = game->common.gfx;
@@ -114,6 +116,13 @@ void draw_gi_silver_rupee_pouch(z64_game_t* game, uint32_t draw_id) {
114116
gSPDisplayList(gfx->poly_opa.p++, item_draw_table[draw_id].args[6].dlist); // gGiAdultWalletRupeeInnerColorDL
115117
gSPDisplayList(gfx->poly_opa.p++, item_draw_table[draw_id].args[7].dlist); // gGiWalletRupeeInnerDL
116118
}
119+
void draw_gi_various_xlu0(z64_game_t* game, uint32_t draw_id) {
120+
z64_gfx_t* gfx = game->common.gfx;
121+
122+
append_setup_dl_25_to_xlu(gfx);
123+
gSPMatrix(gfx->poly_xlu.p++, append_sys_matrix(gfx), G_MTX_MODELVIEW | G_MTX_LOAD | G_MTX_NOPUSH);
124+
gSPDisplayList(gfx->poly_xlu.p++, item_draw_table[draw_id].args[0].dlist);
125+
}
117126

118127
void draw_gi_various_xlu01(z64_game_t* game, uint32_t draw_id) {
119128
z64_gfx_t* gfx = game->common.gfx;
@@ -365,7 +374,7 @@ void draw_gi_blue_fire_candle(z64_game_t* game, uint32_t draw_id) {
365374
1, game->common.state_frames * 1, -(game->common.state_frames * 8), 16, 32));
366375
duplicate_sys_matrix();
367376
translate_sys_matrix(-8.0f, -2.0f, 0.0f, 1);
368-
update_sys_matrix(game->mf_11DA0);
377+
update_sys_matrix(game->billboard_mtx);
369378
gSPMatrix(gfx->poly_xlu.p++, append_sys_matrix(gfx), G_MTX_MODELVIEW | G_MTX_LOAD | G_MTX_NOPUSH);
370379
gSPDisplayList(gfx->poly_xlu.p++, item_draw_table[draw_id].args[1].dlist);
371380
pop_sys_matrix();
@@ -386,7 +395,7 @@ void draw_gi_fairy_lantern(z64_game_t* game, uint32_t draw_id) {
386395
0, 0, 0, 32, 32,
387396
1, game->common.state_frames, -(game->common.state_frames * 6), 32, 32));
388397
duplicate_sys_matrix();
389-
update_sys_matrix(game->mf_11DA0);
398+
update_sys_matrix(game->billboard_mtx);
390399
gSPMatrix(gfx->poly_xlu.p++, append_sys_matrix(gfx), G_MTX_MODELVIEW | G_MTX_LOAD | G_MTX_NOPUSH);
391400
gSPDisplayList(gfx->poly_xlu.p++, item_draw_table[draw_id].args[2].dlist);
392401
pop_sys_matrix();
@@ -401,7 +410,7 @@ void draw_gi_fairy(z64_game_t* game, uint32_t draw_id) {
401410
0, 0, 0, 32, 32,
402411
1, game->common.state_frames, -(game->common.state_frames * 6), 32, 32));
403412
duplicate_sys_matrix();
404-
update_sys_matrix(game->mf_11DA0);
413+
update_sys_matrix(game->billboard_mtx);
405414
gSPMatrix(gfx->poly_xlu.p++, append_sys_matrix(gfx), G_MTX_MODELVIEW | G_MTX_LOAD | G_MTX_NOPUSH);
406415
// Not sure how much of this is required but these are called from the bottle DL. Not including them causes it to draw weird
407416
gDPSetRenderMode(gfx->poly_xlu.p++, G_RM_PASS, G_RM_AA_ZB_XLU_SURF2);
@@ -428,7 +437,7 @@ void draw_gi_poe_bottles(z64_game_t* game, uint32_t draw_id) {
428437
0, 0, 0, 16, 32,
429438
1, game->common.state_frames * 1, -(game->common.state_frames * 6), 16, 32));
430439
duplicate_sys_matrix();
431-
update_sys_matrix(game->mf_11DA0);
440+
update_sys_matrix(game->billboard_mtx);
432441
gSPMatrix(gfx->poly_xlu.p++, append_sys_matrix(gfx), G_MTX_MODELVIEW | G_MTX_LOAD | G_MTX_NOPUSH);
433442
gSPDisplayList(gfx->poly_xlu.p++, item_draw_table[draw_id].args[3].dlist);
434443
gSPDisplayList(gfx->poly_xlu.p++, item_draw_table[draw_id].args[2].dlist);
@@ -721,13 +730,13 @@ void draw_gi_magic_meter(z64_game_t* game, uint32_t draw_id) {
721730
z64_gfx_t *gfx = game->common.gfx;
722731

723732
// Magic
724-
colorRGBA8_t prim_color = item_draw_table[draw_id].args[5].color;
733+
colorRGBA8_t prim_color = item_draw_table[draw_id].args[4].color;
725734
if (CFG_CORRECT_MODEL_COLORS) {
726735
prim_color.r = CFG_MAGIC_COLOR.r;
727736
prim_color.g = CFG_MAGIC_COLOR.g;
728737
prim_color.b = CFG_MAGIC_COLOR.b;
729738
}
730-
colorRGBA8_t env_color = item_draw_table[draw_id].args[6].color;
739+
colorRGBA8_t env_color = item_draw_table[draw_id].args[5].color;
731740

732741
uint8_t alpha = 0x80;
733742
if (curr_drawn_actor != NULL && curr_drawn_actor->actor_id == 21) {// En_Item00
@@ -736,28 +745,87 @@ void draw_gi_magic_meter(z64_game_t* game, uint32_t draw_id) {
736745
}
737746
}
738747

739-
// Writing
748+
// Rainbow smoke effect
749+
colorRGBA8_t rainbow_color;
750+
rainbow_color.a = 0xFF;
751+
rainbow_color.color = get_rainbow_color(game->gameplay_frames, 10);
752+
z64_xyzf_t translation = { .x = 0.0, .y = -35.0f, .z = 0.0f };
753+
z64_xyzf_t scale = { .x = .0125f, .y = .0075f, .z = .01f };
754+
draw_gi_flame(&gfx->poly_xlu, game, rainbow_color, rainbow_color, translation, scale);
755+
756+
// Parchment
740757
append_setup_dl_25_to_xlu(gfx);
741758
gSPMatrix(gfx->poly_xlu.p++, append_sys_matrix(gfx), G_MTX_MODELVIEW | G_MTX_LOAD | G_MTX_NOPUSH);
742-
gSPDisplayList(gfx->poly_xlu.p++, item_draw_table[draw_id].args[4].dlist);
743-
// Shine
759+
gSPDisplayList(gfx->poly_xlu.p++, item_draw_table[draw_id].args[2].dlist);
760+
761+
// Writing
744762
append_setup_dl_25_to_xlu(gfx);
745763
gSPMatrix(gfx->poly_xlu.p++, append_sys_matrix(gfx), G_MTX_MODELVIEW | G_MTX_LOAD | G_MTX_NOPUSH);
746-
gDPSetPrimColor(gfx->poly_xlu.p++, 0, 0x80, prim_color.r, prim_color.g, prim_color.b, alpha);
747-
gDPSetEnvColor(gfx->poly_xlu.p++, env_color.r, env_color.g, env_color.b, env_color.a);
748-
gSPDisplayList(gfx->poly_xlu.p++, item_draw_table[draw_id].args[2].dlist);
764+
gSPDisplayList(gfx->poly_xlu.p++, item_draw_table[draw_id].args[3].dlist);
765+
749766
// Jar
750767
append_setup_dl_25_to_xlu(gfx);
751768
gSPMatrix(gfx->poly_xlu.p++, append_sys_matrix(gfx), G_MTX_MODELVIEW | G_MTX_LOAD | G_MTX_NOPUSH);
752769
gDPSetPrimColor(gfx->poly_xlu.p++, 0, 0x80, prim_color.r, prim_color.g, prim_color.b, alpha);
753770
gDPSetEnvColor(gfx->poly_xlu.p++, env_color.r, env_color.g, env_color.b, env_color.a);
754771
gSPDisplayList(gfx->poly_xlu.p++, item_draw_table[draw_id].args[0].dlist);
772+
755773
// Label
756774
append_setup_dl_25_to_xlu(gfx);
757775
gSPMatrix(gfx->poly_xlu.p++, append_sys_matrix(gfx), G_MTX_MODELVIEW | G_MTX_LOAD | G_MTX_NOPUSH);
758776
gSPDisplayList(gfx->poly_xlu.p++, item_draw_table[draw_id].args[1].dlist);
759-
// Parchment
760-
append_setup_dl_25_to_opa(gfx);
761-
gSPMatrix(gfx->poly_opa.p++, append_sys_matrix(gfx), G_MTX_MODELVIEW | G_MTX_LOAD | G_MTX_NOPUSH);
762-
gSPDisplayList(gfx->poly_opa.p++, item_draw_table[draw_id].args[3].dlist);
777+
}
778+
779+
void draw_gi_flame(z64_disp_buf_t* dl, z64_game_t *game, colorRGBA8_t prim, colorRGBA8_t env, z64_xyzf_t translation, z64_xyzf_t scale) {
780+
z64_gfx_t *gfx = game->common.gfx;
781+
static const uint32_t kFlameDlist = 0x52a10; // Offset of gEffFire1DL in gameplay_keep
782+
duplicate_sys_matrix(); // Push the matrix stack. Do this so we can apply the smoke before the rest of the model
783+
update_sys_matrix(game->billboard_mtx); // Set the rotation to use the billboard matrix
784+
translate_sys_matrix(translation.x, translation.y, translation.z, 1); // Translate by the amount specified
785+
scale_sys_matrix(scale.x, scale.y, scale.z, 1); // Scale by the amount specified
786+
gSPMatrix(dl->p++, append_sys_matrix(gfx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); // Apply the matrix
787+
788+
// Draw the flame effect
789+
gSPDisplayList(dl->p++, sSetupDL[25]);
790+
gDPSetEnvColor(dl->p++, env.r, env.g, env.b, 0);
791+
gDPSetPrimColor(dl->p++, 0x0, 0x80, prim.r, prim.g, prim.b, 255);
792+
793+
gSPSegment(dl->p++, 0x08,
794+
gen_double_tile(gfx, G_TX_RENDERTILE, 0, 0, 0x20, 0x40, 1, 0,
795+
(-game->gameplay_frames & 0x7F) << 2, 0x20, 0x80));
796+
797+
gSPDisplayList(dl->p++, 0x04000000 | kFlameDlist);
798+
pop_sys_matrix(); // Pop the matrix stack
799+
}
800+
801+
/* void draw_gi_opa_with_rainbow_flame(z64_game_t* game, uint32_t draw_id) {
802+
draw_gi_various_xlu01(game, draw_id);
803+
colorRGBA8_t rainbow_color;
804+
rainbow_color.a = 0xFF;
805+
rainbow_color.color = get_rainbow_color(game->gameplay_frames, 10);
806+
807+
z64_xyzf_t translation = { .x = 0, .y = -35.0f, .z = -10.0f };
808+
z64_xyzf_t scale = { .x = .0125f, .y = .0075f, .z = .01f };
809+
draw_gi_flame(game, rainbow_color, rainbow_color, translation, scale);
810+
}
811+
*/
812+
813+
void draw_gi_xlu_with_flame(z64_game_t* game, uint32_t draw_id) {
814+
z64_gfx_t *gfx = game->common.gfx;
815+
816+
z64_xyzf_t translation = { .x = 0, .y = -35.0f, .z = 0.0f };
817+
z64_xyzf_t scale = { .x = .0125f, .y = .0075f, .z = .01f };
818+
draw_gi_flame(&gfx->poly_xlu, game, item_draw_table[draw_id].args[1].color, item_draw_table[draw_id].args[2].color, translation, scale);
819+
820+
draw_gi_various_xlu0(game, draw_id);
821+
}
822+
823+
void draw_gi_deku_nut_with_flame(z64_game_t* game, uint32_t draw_id) {
824+
z64_gfx_t *gfx = game->common.gfx;
825+
826+
z64_xyzf_t translation = { .x = 0, .y = -35.0f, .z = -10.0f };
827+
z64_xyzf_t scale = { .x = .0125f, .y = .0075f, .z = .01f };
828+
draw_gi_flame(&gfx->poly_xlu, game, item_draw_table[draw_id].args[1].color, item_draw_table[draw_id].args[2].color, translation, scale);
829+
830+
draw_gi_deku_nut(game, draw_id);
763831
}

ASM/c/item_draw_functions.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,5 +52,8 @@ void draw_gi_nothing(z64_game_t* game, uint32_t draw_id);
5252
void draw_gi_medallions(z64_game_t* game, uint32_t draw_id);
5353
void draw_gi_stones(z64_game_t* game, uint32_t draw_id);
5454
void draw_gi_magic_meter(z64_game_t* game, uint32_t draw_id);
55+
void draw_gi_flame(z64_disp_buf_t* dl, z64_game_t *game, colorRGBA8_t prim, colorRGBA8_t env, z64_xyzf_t translation, z64_xyzf_t scale);
56+
void draw_gi_xlu_with_flame(z64_game_t *game, uint32_t draw_id);
57+
void draw_gi_deku_nut_with_flame(z64_game_t* game, uint32_t draw_id);
5558

5659
#endif

ASM/c/item_draw_table.c

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,8 @@ item_draw_table_entry_t item_draw_table[] = {
4242
[0x1A] = { draw_gi_various_opa0, { 0x060004D0 } }, // Deku Stick
4343
[0x1B] = { draw_gi_various_opa0, { 0x060003C0 } }, // Map
4444
[0x1C] = { draw_gi_various_opa0, { 0x06000A50 } }, // Deku Shield
45-
[0x1D] = { draw_gi_various_opa0, { 0x06000580 } }, // Small Magic Jar
46-
[0x1E] = { draw_gi_various_opa0, { 0x06000EE0 } }, // Large Magic Jar
45+
[0x1D] = { draw_gi_various_opa0, { 0x06000580, 0xe0d4ffFF, 0xd4ffe2FF } }, // Small Magic Jar
46+
[0x1E] = { draw_gi_various_opa0, { 0x06000EE0, 0xe0d4ffFF, 0xd4ffe2FF } }, // Large Magic Jar
4747
[0x1F] = { draw_gi_various_opa0, { 0x060009A0 } }, // Bomb
4848
[0x20] = { draw_gi_various_opa0, { 0x06000B70 } }, // Stone of Agony
4949
[0x21] = { draw_gi_wallets, { 0x06001850, 0x06001750, 0x06001790, 0x060019A0, 0x060017B0, 0x06001A28, 0x060017D0, 0x06001AD8 } }, // Adult's Wallet
@@ -174,8 +174,11 @@ item_draw_table_entry_t item_draw_table[] = {
174174
[0x9C] = { draw_gi_stones, { 0x06000b00, 0x060012f0, 0x32ffffff, 0x320096ff } }, // Zora Sapphire
175175
[0x9D] = { draw_gi_fairy, { 0x06000EF0 } }, // Fairy (not in a bottle but uses the fairy from the bottle)
176176
[0x9E] = { draw_gi_nothing, {} },
177-
[0x9F] = { draw_gi_magic_meter, { 0x06000000, 0x060007B0, 0x06000FD8, 0x060009F8, 0x06001438, 0x286428FF, 0x000000FF } }, // Magic Meter Scroll
178-
};
177+
[0x9F] = { draw_gi_magic_meter, { 0x06000000, 0x060007B0, 0x060009F8, 0x06000FD8, 0x286428FF, 0x000000FF } }, // Magic Meter Scroll
178+
[0xA0] = { draw_gi_xlu_with_flame, { 0x060004D0, 0xC0C0C0FF, 0xC0C0C0FF } }, // Deku Stick Upgrade w/ Smoke Effect
179+
[0xA1] = { draw_gi_deku_nut_with_flame, { 0x06000E90, 0xC0C0C0FF, 0xC0C0C0FF } }, // Deku Nut Upgrade w/ Smoke Effect
180+
[0xA2] = { draw_gi_magic_meter, { 0x06000000, 0x06000CC0, 0x06000F08, 0x060014E8, 0x286428FF, 0x000000FF } }, // Magic Meter Scroll 2
181+
};
179182

180183
void base_draw_gi_model(z64_game_t* game, uint32_t draw_id) {
181184
item_draw_table[draw_id].draw_func(game, draw_id);

ASM/c/item_table.c

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -149,10 +149,10 @@ item_row_t item_table[GI_RANDO_MAX] = {
149149
[GI_RUPEE_RED_LOSE] = ITEM_ROW(0x4D, BROWN_CHEST, 0x86, -1, 0x00F6, 0x017F, 0x6F, no_upgrade, no_effect, -1, -1, NULL), // Red Rupee (Chest Game)
150150
[GI_RUPEE_PURPLE_LOSE] = ITEM_ROW(0x4D, BROWN_CHEST, 0x87, -1, 0x00F7, 0x017F, 0x71, no_upgrade, no_effect, -1, -1, NULL), // Purple Rupee (Chest Game)
151151
[GI_HEART_PIECE_WIN] = ITEM_ROW(0x53, HEART_CHEST_SMALL, 0x7A, -1, 0x00FA, 0x00BD, 0x14, health_upgrade_cap, full_heal, -1, -1, NULL), // Piece of Heart (Chest Game)
152-
[GI_DEKU_STICK_UPGRADE_20] = ITEM_ROW(0x53, BROWN_CHEST, 0x98, -1, 0x0090, 0x00C7, 0x1B, no_upgrade, no_effect, -1, -1, NULL), // Deku Stick Upgrade (20)
153-
[GI_DEKU_STICK_UPGRADE_30] = ITEM_ROW(0x53, BROWN_CHEST, 0x99, -1, 0x0091, 0x00C7, 0x1B, no_upgrade, no_effect, -1, -1, NULL), // Deku Stick Upgrade (30)
154-
[GI_DEKU_NUT_UPGRADE_30] = ITEM_ROW(0x53, BROWN_CHEST, 0x9A, -1, 0x00A7, 0x00BB, 0x12, no_upgrade, no_effect, -1, -1, NULL), // Deku Nut Upgrade (30)
155-
[GI_DEKU_NUT_UPGRADE_40] = ITEM_ROW(0x53, BROWN_CHEST, 0x9B, -1, 0x00A8, 0x00BB, 0x12, no_upgrade, no_effect, -1, -1, NULL), // Deku Nut Upgrade (40)
152+
[GI_DEKU_STICK_UPGRADE_20] = ITEM_ROW(0x53, BROWN_CHEST, 0x98, -1, 0x0090, 0x00C7, 0xA1, no_upgrade, no_effect, -1, -1, NULL), // Deku Stick Upgrade (20)
153+
[GI_DEKU_STICK_UPGRADE_30] = ITEM_ROW(0x53, BROWN_CHEST, 0x99, -1, 0x0091, 0x00C7, 0xA1, no_upgrade, no_effect, -1, -1, NULL), // Deku Stick Upgrade (30)
154+
[GI_DEKU_NUT_UPGRADE_30] = ITEM_ROW(0x53, BROWN_CHEST, 0x9A, -1, 0x00A7, 0x00BB, 0xA2, no_upgrade, no_effect, -1, -1, NULL), // Deku Nut Upgrade (30)
155+
[GI_DEKU_NUT_UPGRADE_40] = ITEM_ROW(0x53, BROWN_CHEST, 0x9B, -1, 0x00A8, 0x00BB, 0xA2, no_upgrade, no_effect, -1, -1, NULL), // Deku Nut Upgrade (40)
156156
[GI_BULLET_BAG_50] = ITEM_ROW(0x53, GILDED_CHEST, 0x49, -1, 0x006C, 0x017B, 0x73, no_upgrade, no_effect, -1, -1, NULL), // Bullet Bag (50)
157157
[GI_ICE_TRAP] = ITEM_ROW(0x53, GILDED_CHEST, 0x41, -1, 0x9002, 0x0000, 0x00, no_upgrade, ice_trap_effect, -1, -1, NULL), // Ice Trap
158158

@@ -167,8 +167,8 @@ item_row_t item_table[GI_RANDO_MAX] = {
167167
[GI_PROGRESSIVE_SLINGSHOT] = ITEM_ROW( -1, GILDED_CHEST, -1, -1, -1, 0x00E7, 0x33, slingshot_upgrade, no_effect, -1, -1, NULL), // Progressive Slingshot
168168
[GI_PROGRESSIVE_WALLET] = ITEM_ROW( -1, GILDED_CHEST, -1, -1, -1, 0x00D1, 0x22, wallet_upgrade, no_effect, -1, -1, NULL), // Progressive Wallet
169169
[GI_PROGRESSIVE_SCALE] = ITEM_ROW( -1, GILDED_CHEST, -1, -1, -1, 0x00DB, 0x2A, scale_upgrade, no_effect, -1, -1, NULL), // Progressive Scale
170-
[GI_PROGRESSIVE_NUT_CAPACITY] = ITEM_ROW( -1, BROWN_CHEST, -1, -1, -1, 0x00BB, 0x12, nut_upgrade, no_effect, -1, -1, NULL), // Progressive Nut Capacity
171-
[GI_PROGRESSIVE_STICK_CAPACITY] = ITEM_ROW( -1, BROWN_CHEST, -1, -1, -1, 0x00C7, 0x1B, stick_upgrade, no_effect, -1, -1, NULL), // Progressive Stick Capacity
170+
[GI_PROGRESSIVE_NUT_CAPACITY] = ITEM_ROW( -1, BROWN_CHEST, -1, -1, -1, 0x00BB, 0xA2, nut_upgrade, no_effect, -1, -1, NULL), // Progressive Nut Capacity
171+
[GI_PROGRESSIVE_STICK_CAPACITY] = ITEM_ROW( -1, BROWN_CHEST, -1, -1, -1, 0x00C7, 0xA1, stick_upgrade, no_effect, -1, -1, NULL), // Progressive Stick Capacity
172172
[GI_PROGRESSIVE_BOMBCHUS] = ITEM_ROW( -1, GILDED_CHEST, -1, -1, -1, 0x00D9, 0x28, bombchu_upgrade, no_effect, -1, -1, NULL), // Progressive Bombchus
173173
[GI_PROGRESSIVE_MAGIC_METER] = ITEM_ROW( -1, GILDED_CHEST, -1, -1, -1, 0x00CD, 0x1E, magic_upgrade, no_effect, -1, -1, NULL), // Progressive Magic Meter
174174
[GI_PROGRESSIVE_OCARINA] = ITEM_ROW( -1, GILDED_CHEST, -1, -1, -1, 0x010E, 0x46, ocarina_upgrade, no_effect, -1, -1, NULL), // Progressive Ocarina
@@ -224,7 +224,7 @@ item_row_t item_table[GI_RANDO_MAX] = {
224224

225225
[GI_DOUBLE_DEFENSE] = ITEM_ROW(0x53, GILDED_CHEST, 0x41, -1, 0x00E9, 0x0194, 0x13, no_upgrade, give_defense, -1, -1, NULL), // Double Defense
226226
[GI_MAGIC_METER] = ITEM_ROW(0x53, GILDED_CHEST, 0x41, -1, 0x00E4, 0x01B4, 0xA0, no_upgrade, give_magic, -1, -1, NULL), // Magic Meter
227-
[GI_DOUBLE_MAGIC] = ITEM_ROW(0x53, GILDED_CHEST, 0x41, -1, 0x00E8, 0x01B4, 0xA0, no_upgrade, give_double_magic, -1, -1, NULL), // Double Magic
227+
[GI_DOUBLE_MAGIC] = ITEM_ROW(0x53, GILDED_CHEST, 0x41, -1, 0x00E8, 0x01B5, 0xA3, no_upgrade, give_double_magic, -1, -1, NULL), // Double Magic
228228

229229
[GI_MINUET_OF_FOREST] = ITEM_ROW(0x53, GILDED_CHEST, 0x41, -1, 0x9091, 0x0196, 0x78, no_upgrade, give_quest_item, 6, -1, NULL), // Minuet of Forest
230230
[GI_BOLERO_OF_FIRE] = ITEM_ROW(0x53, GILDED_CHEST, 0x41, -1, 0x9092, 0x0196, 0x79, no_upgrade, give_quest_item, 7, -1, NULL), // Bolero of Fire

0 commit comments

Comments
 (0)