mirror of
https://github.com/HarbourMasters/Shipwright.git
synced 2024-11-23 01:42:19 -05:00
Implement custom draw for souls;
change souls from tokens to blue fire
This commit is contained in:
parent
9b49d73814
commit
279af81ead
@ -10,7 +10,7 @@
|
||||
#include "objects/object_gi_key/object_gi_key.h"
|
||||
#include "objects/object_gi_bosskey/object_gi_bosskey.h"
|
||||
#include "objects/object_gi_hearts/object_gi_hearts.h"
|
||||
#include "objects/object_gi_sutaru/object_gi_sutaru.h"
|
||||
#include "objects/object_gi_fire/object_gi_fire.h"
|
||||
#include "objects/gameplay_field_keep/gameplay_field_keep.h"
|
||||
#include "soh_assets.h"
|
||||
|
||||
@ -258,28 +258,42 @@ extern "C" void Randomizer_DrawTriforcePieceGI(PlayState* play, GetItemEntry get
|
||||
CLOSE_DISPS(play->state.gfxCtx);
|
||||
}
|
||||
// TODO get custom model for boss souls
|
||||
// extern "C" void Randomizer_DrawBossSoul(PlayState* play, GetItemEntry getItemEntry) {
|
||||
// OPEN_DISPS(play->state.gfxCtx);
|
||||
|
||||
// Gfx_SetupDL_25Opa(play->state.gfxCtx);
|
||||
|
||||
extern "C" void Randomizer_DrawBossSoul(PlayState* play, GetItemEntry* getItemEntry) {
|
||||
s16 slot = getItemEntry->getItemId - RG_GOHMA_SOUL;
|
||||
s16 colors[9][3] = {
|
||||
{ 0, 255, 0 }, // Deku Tree
|
||||
{ 255, 0, 100 }, // Dodongo's Cavern
|
||||
{ 50, 255, 255}, // Jabu
|
||||
{ 4, 195, 46 }, // Forest Temple
|
||||
{ 237, 95, 95 }, // Fire Temple
|
||||
{ 85, 180, 223 }, // Water Temple
|
||||
{ 222, 158, 47 }, // Spirit Temple
|
||||
{ 126, 16, 177 }, // Shadow Temple
|
||||
{ 80, 80, 80 }, // Ganon's Castle
|
||||
|
||||
};
|
||||
OPEN_DISPS(play->state.gfxCtx);
|
||||
|
||||
// gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx, (char*)__FILE__, __LINE__),
|
||||
// G_MTX_MODELVIEW | G_MTX_LOAD);
|
||||
// gDPSetGrayscaleColor(POLY_OPA_DISP++, 255, 0, 0, 255);
|
||||
// gSPGrayscale(POLY_OPA_DISP++, true);
|
||||
|
||||
// gSPDisplayList(POLY_OPA_DISP++, (Gfx*)gGiSkulltulaTokenDL);
|
||||
Gfx_SetupDL_25Xlu(play->state.gfxCtx);
|
||||
gSPSegment(POLY_XLU_DISP++, 8, (uintptr_t)Gfx_TwoTexScroll(
|
||||
play->state.gfxCtx, 0, 0 * (play->state.frames * 0),
|
||||
0 * (play->state.frames * 0), 16, 32, 1, 1 * (play->state.frames * 1),
|
||||
-1 * (play->state.frames * 8), 16, 32
|
||||
));
|
||||
Matrix_Push();
|
||||
Matrix_Translate(0.0f, -50.0f, 0.0f, MTXMODE_APPLY);
|
||||
Matrix_Scale(3.0f, 3.0f, 3.0f, MTXMODE_APPLY);
|
||||
Matrix_ReplaceRotation(&play->billboardMtxF);
|
||||
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(play->state.gfxCtx, (char*)__FILE__, __LINE__),
|
||||
G_MTX_MODELVIEW | G_MTX_LOAD);
|
||||
gDPSetGrayscaleColor(POLY_XLU_DISP++, colors[slot][0], colors[slot][1], colors[slot][2], 255);
|
||||
gSPGrayscale(POLY_XLU_DISP++, true);
|
||||
gSPDisplayList(POLY_XLU_DISP++, (Gfx*)gGiBlueFireFlameDL);
|
||||
gSPGrayscale(POLY_XLU_DISP++, false);
|
||||
Matrix_Pop();
|
||||
|
||||
// Gfx_SetupDL_25Xlu(play->state.gfxCtx);
|
||||
// gSPSegment(POLY_XLU_DISP++, 8, Gfx_TwoTexScroll(
|
||||
// play->state.gfxCtx, 0, 0 * (play->state.frames * 0),
|
||||
// 1 * -(play->state.frames * 5), 32, 32, 1, 0 * (play->state.frames * 0),
|
||||
// 0 * (play->state.frames * 0), 32, 64
|
||||
// ));
|
||||
// gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(play->state.gfxCtx, (char*)__FILE__, __LINE__),
|
||||
// G_MTX_MODELVIEW | G_MTX_LOAD);
|
||||
// gSPDisplayList(POLY_OPA_DISP++, (Gfx*)gGiSkulltulaTokenFlameDL);
|
||||
CLOSE_DISPS(play->state.gfxCtx);
|
||||
|
||||
// CLOSE_DISPS(play->state.gfxCtx);
|
||||
|
||||
// }
|
||||
}
|
||||
|
@ -12,6 +12,7 @@ extern "C" {
|
||||
void Randomizer_DrawSmallKey(PlayState* play, GetItemEntry* getItemEntry);
|
||||
void Randomizer_DrawKeyRing(PlayState* play, GetItemEntry* getItemEntry);
|
||||
void Randomizer_DrawBossKey(PlayState* play, GetItemEntry* getItemEntry);
|
||||
void Randomizer_DrawBossSoul(PlayState* play, GetItemEntry* getItemEntry);
|
||||
void Randomizer_DrawDoubleDefense(PlayState* play, GetItemEntry* getItemEntry);
|
||||
void Randomizer_DrawTriforcePiece(PlayState* play, GetItemEntry getItemEntry);
|
||||
void Randomizer_DrawTriforcePieceGI(PlayState* play, GetItemEntry getItemEntry);
|
||||
|
@ -239,14 +239,23 @@ void Rando::StaticData::InitItemTable() {
|
||||
itemTable[RG_BUY_RED_POTION_50] = Item(RG_BUY_RED_POTION_50, Text{ "Buy Red Potion [50]", "Acheter: Potion Rouge [50]", "Rotes Elixier kaufen [50]" }, ITEMTYPE_SHOP, GI_POTION_RED, false, &Logic::noVariable, RHT_BOTTLE_WITH_RED_POTION, ITEM_POTION_RED, OBJECT_GI_LIQUID, GID_POTION_RED, 0x43, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_JUNK, MOD_NONE, false, 50);
|
||||
// Misc.
|
||||
itemTable[RG_GOHMA_SOUL] = Item(RG_GOHMA_SOUL, Text{ "Gohma's Soul", "", "" }, ITEMTYPE_ITEM, 0xE0, true, &Logic::CanSummonGohma, RHT_GOHMA_SOUL, RG_GOHMA_SOUL, OBJECT_GI_SUTARU, GID_SKULL_TOKEN, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER);
|
||||
itemTable[RG_GOHMA_SOUL].SetCustomDrawFunc(Randomizer_DrawBossSoul);
|
||||
itemTable[RG_KING_DODONGO_SOUL] = Item(RG_KING_DODONGO_SOUL, Text{ "King Dodongo's Soul", "", "" }, ITEMTYPE_ITEM, 0xE1, true, &Logic::CanSummonKingDodongo,RHT_KING_DODONGO_SOUL, RG_KING_DODONGO_SOUL, OBJECT_GI_SUTARU, GID_SKULL_TOKEN, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER);
|
||||
itemTable[RG_KING_DODONGO_SOUL].SetCustomDrawFunc(Randomizer_DrawBossSoul);
|
||||
itemTable[RG_BARINADE_SOUL] = Item(RG_BARINADE_SOUL, Text{ "Barinade's Soul", "", "" }, ITEMTYPE_ITEM, 0xE2, true, &Logic::CanSummonBarinade, RHT_BARINADE_SOUL, RG_BARINADE_SOUL, OBJECT_GI_SUTARU, GID_SKULL_TOKEN, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER);
|
||||
itemTable[RG_BARINADE_SOUL].SetCustomDrawFunc(Randomizer_DrawBossSoul);
|
||||
itemTable[RG_PHANTOM_GANON_SOUL] = Item(RG_PHANTOM_GANON_SOUL, Text{ "Phantom Ganon's Soul", "", "" }, ITEMTYPE_ITEM, 0xE3, true, &Logic::CanSummonPhantomGanon,RHT_PHANTOM_GANON_SOUL, RG_PHANTOM_GANON_SOUL, OBJECT_GI_SUTARU, GID_SKULL_TOKEN, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER);
|
||||
itemTable[RG_PHANTOM_GANON_SOUL].SetCustomDrawFunc(Randomizer_DrawBossSoul);
|
||||
itemTable[RG_VOLVAGIA_SOUL] = Item(RG_VOLVAGIA_SOUL, Text{ "Volvagia's Soul", "", "" }, ITEMTYPE_ITEM, 0xE4, true, &Logic::CanSummonVolvagia, RHT_VOLVAGIA_SOUL, RG_VOLVAGIA_SOUL, OBJECT_GI_SUTARU, GID_SKULL_TOKEN, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER);
|
||||
itemTable[RG_VOLVAGIA_SOUL].SetCustomDrawFunc(Randomizer_DrawBossSoul);
|
||||
itemTable[RG_MORPHA_SOUL] = Item(RG_MORPHA_SOUL, Text{ "Morpha's Soul", "", "" }, ITEMTYPE_ITEM, 0xE5, true, &Logic::CanSummonMorpha, RHT_MORPHA_SOUL, RG_MORPHA_SOUL, OBJECT_GI_SUTARU, GID_SKULL_TOKEN, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER);
|
||||
itemTable[RG_MORPHA_SOUL].SetCustomDrawFunc(Randomizer_DrawBossSoul);
|
||||
itemTable[RG_BONGO_BONGO_SOUL] = Item(RG_BONGO_BONGO_SOUL, Text{ "Bongo Bongo's Soul", "", "" }, ITEMTYPE_ITEM, 0xE6, true, &Logic::CanSummonBongoBongo, RHT_BONGO_BONGO_SOUL, RG_BONGO_BONGO_SOUL, OBJECT_GI_SUTARU, GID_SKULL_TOKEN, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER);
|
||||
itemTable[RG_BONGO_BONGO_SOUL].SetCustomDrawFunc(Randomizer_DrawBossSoul);
|
||||
itemTable[RG_TWINROVA_SOUL] = Item(RG_TWINROVA_SOUL, Text{ "Twinrova's Soul", "", "" }, ITEMTYPE_ITEM, 0xE7, true, &Logic::CanSummonTwinrova, RHT_TWINROVA_SOUL, RG_TWINROVA_SOUL, OBJECT_GI_SUTARU, GID_SKULL_TOKEN, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER);
|
||||
itemTable[RG_TWINROVA_SOUL].SetCustomDrawFunc(Randomizer_DrawBossSoul);
|
||||
itemTable[RG_GANON_SOUL] = Item(RG_GANON_SOUL, Text{ "Ganon's Soul", "", "" }, ITEMTYPE_ITEM, 0xE8, true, &Logic::CanSummonGanon, RHT_GANON_SOUL, RG_GANON_SOUL, OBJECT_GI_SUTARU, GID_SKULL_TOKEN, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER);
|
||||
itemTable[RG_GANON_SOUL].SetCustomDrawFunc(Randomizer_DrawBossSoul);
|
||||
|
||||
itemTable[RG_TRIFORCE] = Item(RG_TRIFORCE, Text{ "Triforce", "Triforce", "Triforce" }, ITEMTYPE_EVENT, RG_TRIFORCE, false, &Logic::noVariable, RHT_NONE);
|
||||
itemTable[RG_HINT] = Item(RG_HINT, Text{ "Hint", "Indice", "Hinweis" }, ITEMTYPE_EVENT, RG_HINT, false, &Logic::noVariable, RHT_NONE);
|
||||
|
Loading…
Reference in New Issue
Block a user