Reindeer games additions (#33)

* Remove hat from darunia

* Update some stuffs

* Remove custom collectible (in favor of CustomItem)

* Roguelike

Co-authored-by: Caladius <Caladius@users.noreply.github.com>
Co-authored-by: Eblo <7004497+Eblo@users.noreply.github.com>

* Fix a bunch of stuff

* Persist roguelike data

* Experimental anchor tweaks

* Stop freeze from scrubs & fix pablo cvar

---------

Co-authored-by: Caladius <Caladius@users.noreply.github.com>
Co-authored-by: Eblo <7004497+Eblo@users.noreply.github.com>
This commit is contained in:
Garrett Cox
2025-12-06 10:45:43 -06:00
committed by GitHub
parent e3029a834b
commit f5af415098
116 changed files with 4375 additions and 474 deletions
+1 -1
View File
@@ -3353,7 +3353,7 @@ Actor* Actor_Spawn(ActorContext* actorCtx, PlayState* play, s16 actorId, f32 pos
objBankIndex = Object_GetIndex(&gPlayState->objectCtx, dbEntry->objectId);
if (objBankIndex < 0 && (!gMapLoading || CVarGetInteger(CVAR_ENHANCEMENT("RandomizedEnemies"), 0) ||
CVarGetInteger("gHoliday.Caladius.Blitz.Enabled", 0))) {
CVarGetInteger("gHoliday.Gameplay.Blitz.Enabled", 0))) {
objBankIndex = 0;
}
+8
View File
@@ -2,6 +2,7 @@
#include "vt.h"
#include "overlays/effects/ovl_Effect_Ss_HitMark/z_eff_ss_hitmark.h"
#include "soh/Enhancements/game-interactor/GameInteractor.h"
#include "soh/Enhancements/game-interactor/GameInteractor_Hooks.h"
#include <assert.h>
typedef s32 (*ColChkResetFunc)(PlayState*, Collider*);
@@ -3030,6 +3031,13 @@ void CollisionCheck_ApplyDamage(PlayState* play, CollisionCheckContext* colChkCt
if (CVarGetInteger(CVAR_ENHANCEMENT("IvanCoopModeEnabled"), 0)) {
collider->actor->colChkInfo.damage *= GET_PLAYER(play)->ivanDamageMultiplier;
}
if (!GameInteractor_Should(VB_APPLY_DAMAGE_TO_ACTOR, true, collider->actor,
collider->actor->colChkInfo.damageEffect, collider->actor->colChkInfo.damage,
info->acHitInfo->toucher.dmgFlags)) {
collider->actor->colChkInfo.damageEffect = 0;
collider->actor->colChkInfo.damage = 0;
}
}
/**
+3 -2
View File
@@ -399,9 +399,10 @@ DrawItemTableEntry sDrawItemTable[] = {
* Calls the corresponding draw function for the given draw ID
*/
void GetItem_Draw(PlayState* play, s16 drawId) {
if (drawId < 0 || drawId >= GID_MAXIMUM) {
// SoH [Enhancements] Prevent any UB here, GID_MAXIMUM useful for overriding GI draws
if (drawId < 0 || drawId >= GID_MAXIMUM)
return;
}
sDrawItemTable[drawId].drawFunc(play, drawId);
}
+2
View File
@@ -2716,6 +2716,8 @@ void Message_OpenText(PlayState* play, u16 textId) {
bool loadFromMessageTable = true;
GameInteractor_ExecuteOnOpenText(&textId, &loadFromMessageTable);
sDisplayNextMessageAsEnglish = false;
if (msgCtx->msgMode == MSGMODE_NONE) {
gSaveContext.unk_13EE = gSaveContext.unk_13EA;
}
+4 -7
View File
@@ -1873,11 +1873,9 @@ u8 Return_Item(u8 itemID, ModIndex modId, ItemID returnItem) {
* @return u8
*/
u8 Item_Give(PlayState* play, u8 item) {
// TODO: Add ShouldItemGive
// if (!GameInteractor_ShouldItemGive(item) || item == ITEM_SHIP) {
if (item == ITEM_SHIP) {
// SoH [Enhancements] Ignore ITEM_SHIP, used for CustomItem
if (item == ITEM_SHIP)
return ITEM_NONE;
}
// prevents getting sticks without the bag in case something got missed
if (IS_RANDO && (item == ITEM_STICK || item == ITEM_STICKS_5 || item == ITEM_STICKS_10) &&
@@ -2479,10 +2477,9 @@ u8 Item_CheckObtainability(u8 item) {
s16 slot = SLOT(item);
s32 temp;
// SOH [Enhancements] Added to enable custom item gives
if (item == ITEM_SHIP) {
// SoH [Enhancements] Ignore ITEM_SHIP, used for CustomItem
if (item == ITEM_SHIP)
return ITEM_NONE;
}
if (item >= ITEM_STICKS_5) {
slot = SLOT(sExtraItemBases[item - ITEM_STICKS_5]);
+5 -1
View File
@@ -1603,6 +1603,10 @@ void Play_Draw(PlayState* play) {
if ((HREG(80) != 10) || (HREG(88) != 0)) {
if (play->envCtx.sandstormState != SANDSTORM_OFF) {
Environment_DrawSandstorm(play, play->envCtx.sandstormState);
} else if (CVarGetInteger("gHoliday.Visual.SnowingWeatherActive", 0) == 1) {
Environment_DrawSandstorm(play, SANDSTORM_DISSIPATE);
} else if (CVarGetInteger("gHoliday.Visual.SnowingWeatherActive", 0) == 2) {
Environment_DrawSandstorm(play, SANDSTORM_ACTIVE);
}
}
@@ -1699,7 +1703,7 @@ time_t Play_GetRealTime() {
void Play_Main(GameState* thisx) {
PlayState* play = (PlayState*)thisx;
if (play->envCtx.unk_EE[2] == 0 && CVarGetInteger(CVAR_GENERAL("LetItSnow"), 0)) {
if (play->envCtx.unk_EE[2] == 0 && CVarGetInteger("gHoliday.Visual.SnowingWeather", 0)) {
play->envCtx.unk_EE[3] = 64;
Actor_Spawn(&gPlayState->actorCtx, gPlayState, ACTOR_OBJECT_KANKYO, 0, 0, 0, 0, 0, 0, 3, 0);
}
+1 -1
View File
@@ -1814,7 +1814,7 @@ void Player_PostLimbDrawGameplay(PlayState* play, s32 limbIndex, Gfx** dList, Ve
Matrix_MultVec3f(&sZeroVec, D_80160000);
}
if (CVarGetInteger(CVAR_GENERAL("LetItSnow"), 0) && !(this->stateFlags1 & PLAYER_STATE1_FIRST_PERSON) &&
if (CVarGetInteger("gHoliday.Visual.Hats", 0) && !(this->stateFlags1 & PLAYER_STATE1_FIRST_PERSON) &&
!(this->stateFlags2 & PLAYER_STATE2_CRAWLING)) {
if (limbIndex == PLAYER_LIMB_HEAD) {
OPEN_DISPS(play->state.gfxCtx);
@@ -1359,7 +1359,7 @@ void BossDodongo_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s
}
Collider_UpdateSpheres(limbIndex, &this->collider);
if (CVarGetInteger(CVAR_GENERAL("LetItSnow"), 0)) {
if (CVarGetInteger("gHoliday.Visual.Hats", 0)) {
if (limbIndex == 7) {
OPEN_DISPS(play->state.gfxCtx);
Matrix_Push();
@@ -2650,7 +2650,7 @@ void BossGanon2_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s*
}
}
if (CVarGetInteger("gLetItSnow", 0)) {
if (CVarGetInteger("gHoliday.Visual.Hats", 0)) {
if (limbIndex == 16) {
Matrix_Push();
Matrix_RotateZYX(5977, 4649, 18154, MTXMODE_APPLY);
@@ -2782,7 +2782,7 @@ void BossGanon2_PostLimbDraw2(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s
Matrix_MultVec3f(&D_80907164, &this->unk_1B8);
}
if (CVarGetInteger(CVAR_GENERAL("LetItSnow"), 0)) {
if (CVarGetInteger("gHoliday.Visual.Hats", 0)) {
if (limbIndex == 11) {
OPEN_DISPS(play->state.gfxCtx);
Matrix_Push();
@@ -1436,7 +1436,7 @@ void BossGanondrof_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec
Matrix_MultVec3f(&zeroVec, &this->bodyPartsPos[limbIndex - 1]);
}
if (CVarGetInteger(CVAR_GENERAL("LetItSnow"), 0) && this->deathState == NOT_DEAD) {
if (CVarGetInteger("gHoliday.Visual.Hats", 0) && this->deathState == NOT_DEAD) {
if (limbIndex == 15) {
OPEN_DISPS(play->state.gfxCtx);
Matrix_Push();
+1 -1
View File
@@ -956,7 +956,7 @@ void EnAm_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot,
EnAm_TransformSwordHitbox(&this->dyna.actor, play);
}
if (CVarGetInteger(CVAR_GENERAL("LetItSnow"), 0)) {
if (CVarGetInteger("gHoliday.Visual.Hats", 0)) {
if (limbIndex == 4) {
OPEN_DISPS(play->state.gfxCtx);
Matrix_Push();
@@ -320,7 +320,7 @@ void EnAni_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot,
Matrix_MultVec3f(&sMultVec, &this->actor.focus.pos);
}
if (CVarGetInteger(CVAR_GENERAL("LetItSnow"), 0)) {
if (CVarGetInteger("gHoliday.Visual.Hats", 0)) {
if (limbIndex == 15) {
OPEN_DISPS(play->state.gfxCtx);
Matrix_Push();
+1 -1
View File
@@ -1274,7 +1274,7 @@ void EnBb_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot,
BodyBreak_SetInfo(&this->bodyBreak, limbIndex, 4, 15, 15, dList, BODYBREAK_OBJECT_DEFAULT);
if (CVarGetInteger(CVAR_GENERAL("LetItSnow"), 0)) {
if (CVarGetInteger("gHoliday.Visual.Hats", 0)) {
if (limbIndex == 15) {
OPEN_DISPS(play->state.gfxCtx);
Matrix_Push();
@@ -528,7 +528,7 @@ void EnBomChu_Draw(Actor* thisx, PlayState* play) {
gSPMatrix(POLY_OPA_DISP++, MATRIX_NEWMTX(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList(POLY_OPA_DISP++, gBombchuDL);
if (CVarGetInteger(CVAR_GENERAL("LetItSnow"), 0)) {
if (CVarGetInteger("gHoliday.Visual.Hats", 0)) {
Matrix_Push();
Matrix_RotateZYX(0, -3100, 17047, MTXMODE_APPLY);
Matrix_Translate(445.946f, -27.027f, 608.108f, MTXMODE_APPLY);
@@ -674,7 +674,7 @@ void EnBox_UpdateSizeAndTexture(EnBox* this, PlayState* play) {
}
}
if (CVarGetInteger(CVAR_GENERAL("LetItSnow"), 0) && hasChristmasChestTexturesAvailable &&
if (CVarGetInteger("gHoliday.Visual.PresentChests", 0) && hasChristmasChestTexturesAvailable &&
hasCreatedRandoChestTextures && !hasCustomChestDLs) {
if (this->dyna.actor.scale.x == 0.01f) {
this->boxBodyDL = gChristmasRedTreasureChestChestFrontDL;
+1 -1
View File
@@ -524,7 +524,7 @@ void EnCs_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot,
Matrix_Get(&this->spookyMaskMtx);
}
if (CVarGetInteger(CVAR_GENERAL("LetItSnow"), 0)) {
if (CVarGetInteger("gHoliday.Visual.Hats", 0)) {
if (limbIndex == 15) {
OPEN_DISPS(play->state.gfxCtx);
Matrix_Push();
@@ -539,7 +539,7 @@ void EnDaikuKakariko_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, V
gSPDisplayList(POLY_OPA_DISP++, carpenterHeadDLists[this->actor.params & 3]);
}
if (CVarGetInteger(CVAR_GENERAL("LetItSnow"), 0)) {
if (CVarGetInteger("gHoliday.Visual.Hats", 0)) {
if (limbIndex == 15) {
Matrix_Push();
switch (this->actor.params) {
@@ -1278,7 +1278,7 @@ void EnDekubaba_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s*
Collider_UpdateSpheres(limbIndex, &this->collider);
}
if (CVarGetInteger(CVAR_GENERAL("LetItSnow"), 0)) {
if (CVarGetInteger("gHoliday.Visual.Hats", 0)) {
if (limbIndex == 4) {
OPEN_DISPS(play->state.gfxCtx);
Matrix_Push();
@@ -494,7 +494,7 @@ void EnDns_Update(Actor* thisx, PlayState* play) {
void EnDns_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, void* thisx) {
EnDns* this = (EnDns*)thisx;
if (CVarGetInteger(CVAR_GENERAL("LetItSnow"), 0)) {
if (CVarGetInteger("gHoliday.Visual.Hats", 0)) {
if (limbIndex == 17) {
OPEN_DISPS(play->state.gfxCtx);
Matrix_Push();
@@ -916,7 +916,7 @@ void EnDodongo_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s*
}
}
if (CVarGetInteger(CVAR_GENERAL("LetItSnow"), 0)) {
if (CVarGetInteger("gHoliday.Visual.Hats", 0)) {
if (limbIndex == 7) {
OPEN_DISPS(play->state.gfxCtx);
Matrix_Push();
@@ -497,7 +497,7 @@ s32 EnDog_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* p
}
void EnDog_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, void* thisx) {
if (CVarGetInteger(CVAR_GENERAL("LetItSnow"), 0)) {
if (CVarGetInteger("gHoliday.Visual.Hats", 0)) {
if (limbIndex == 4) {
OPEN_DISPS(play->state.gfxCtx);
Matrix_Push();
+1 -1
View File
@@ -291,7 +291,7 @@ void EnDs_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot,
Matrix_MultVec3f(&sMultVec, &this->actor.focus.pos);
}
if (CVarGetInteger(CVAR_GENERAL("LetItSnow"), 0)) {
if (CVarGetInteger("gHoliday.Visual.Hats", 0)) {
if (limbIndex == 5) {
OPEN_DISPS(play->state.gfxCtx);
Matrix_Push();
@@ -656,20 +656,6 @@ void EnDu_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot,
if (limbIndex == 16) {
Matrix_MultVec3f(&D_809FF40C, &this->actor.focus.pos);
}
if (CVarGetInteger(CVAR_GENERAL("LetItSnow"), 0)) {
if (limbIndex == 17) {
OPEN_DISPS(play->state.gfxCtx);
Matrix_Push();
Matrix_RotateZYX(13062, -1329, -15499, MTXMODE_APPLY);
Matrix_Translate(945.946f, -297.297f, 608.108f, MTXMODE_APPLY);
Matrix_Scale(1.217f, 1.217f, 1.217f, MTXMODE_APPLY);
gSPMatrix(POLY_OPA_DISP++, MATRIX_NEWMTX(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList(POLY_OPA_DISP++, gSantaHatGenericDL);
Matrix_Pop();
CLOSE_DISPS(play->state.gfxCtx);
}
}
}
void EnDu_Draw(Actor* thisx, PlayState* play) {
@@ -1501,7 +1501,7 @@ s32 EnElf_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* p
s32 EnElf_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, void* thisx) {
EnElf* this = (EnElf*)thisx;
if (CVarGetInteger(CVAR_GENERAL("LetItSnow"), 0)) {
if (CVarGetInteger("gHoliday.Visual.Hats", 0)) {
if (limbIndex == 2) {
OPEN_DISPS(play->state.gfxCtx);
Matrix_Push();
+1 -1
View File
@@ -296,7 +296,7 @@ void EnFu_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot,
Matrix_MultVec3f(&sMtxSrc, &this->actor.focus.pos);
}
if (CVarGetInteger(CVAR_GENERAL("LetItSnow"), 0)) {
if (CVarGetInteger("gHoliday.Visual.Hats", 0)) {
if (limbIndex == 14) {
OPEN_DISPS(play->state.gfxCtx);
Matrix_Push();
@@ -428,7 +428,7 @@ s32 EnHeishi_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f
s32 EnHeishi4_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, void* thisx) {
EnHeishi4* this = (EnHeishi4*)thisx;
if (CVarGetInteger(CVAR_GENERAL("LetItSnow"), 0)) {
if (CVarGetInteger("gHoliday.Visual.Hats", 0)) {
if (limbIndex == 16) {
OPEN_DISPS(play->state.gfxCtx);
Matrix_Push();
@@ -170,7 +170,7 @@ void EnHs2_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot,
Matrix_MultVec3f(&D_80A6F4CC, &this->actor.focus.pos);
}
if (CVarGetInteger(CVAR_GENERAL("LetItSnow"), 0)) {
if (CVarGetInteger("gHoliday.Visual.Hats", 0)) {
if (limbIndex == 9) {
OPEN_DISPS(play->state.gfxCtx);
Matrix_Push();
+1 -1
View File
@@ -1206,7 +1206,7 @@ void EnHy_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot,
Matrix_MultVec3f(&sp3C, &this->actor.focus.pos);
}
if (CVarGetInteger(CVAR_GENERAL("LetItSnow"), 0)) {
if (CVarGetInteger("gHoliday.Visual.Hats", 0)) {
if (limbIndex == 15) {
Matrix_Push();
switch (this->actor.params) {
+3 -3
View File
@@ -955,7 +955,7 @@ void EnIk_PostLimbDraw3(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot,
break;
}
if (CVarGetInteger(CVAR_GENERAL("LetItSnow"), 0)) {
if (CVarGetInteger("gHoliday.Visual.Hats", 0)) {
if (limbIndex == 11) {
Matrix_Push();
Matrix_RotateZYX(0, 0, -15056, MTXMODE_APPLY);
@@ -1249,7 +1249,7 @@ void EnIk_PostLimbDraw2(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot,
} break;
}
if (CVarGetInteger(CVAR_GENERAL("LetItSnow"), 0)) {
if (CVarGetInteger("gHoliday.Visual.Hats", 0)) {
if (limbIndex == 11) {
Matrix_Push();
Matrix_RotateZYX(0, 0, -15056, MTXMODE_APPLY);
@@ -1408,7 +1408,7 @@ void EnIk_PostLimbDraw1(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot,
break;
}
if (CVarGetInteger(CVAR_GENERAL("LetItSnow"), 0)) {
if (CVarGetInteger("gHoliday.Visual.Hats", 0)) {
if (limbIndex == 11) {
Matrix_Push();
Matrix_RotateZYX(0, 0, -15056, MTXMODE_APPLY);
+1 -1
View File
@@ -993,7 +993,7 @@ void EnIn_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot,
gSPDisplayList(POLY_OPA_DISP++, gIngoChildEraPitchForkDL);
}
if (CVarGetInteger(CVAR_GENERAL("LetItSnow"), 0)) {
if (CVarGetInteger("gHoliday.Visual.Hats", 0)) {
if (limbIndex == 16) {
Matrix_Push();
Matrix_RotateZYX(-8192, -222, -11513, MTXMODE_APPLY);
@@ -8,6 +8,7 @@
#include "overlays/effects/ovl_Effect_Ss_Kakera/z_eff_ss_kakera.h"
#include "objects/gameplay_field_keep/gameplay_field_keep.h"
#include "soh/OTRGlobals.h"
#include "soh/Enhancements/game-interactor/GameInteractor_Hooks.h"
#include "vt.h"
@@ -251,7 +252,7 @@ void EnIshi_SpawnDustLarge(EnIshi* this, PlayState* play) {
void EnIshi_DropCollectible(EnIshi* this, PlayState* play) {
s16 dropParams;
if ((this->actor.params & 1) == ROCK_SMALL) {
if (GameInteractor_Should(VB_ROCK_DROP_ITEM, (this->actor.params & 1) == ROCK_SMALL, this)) {
dropParams = (this->actor.params >> 8) & 0xF;
if (dropParams >= 0xD) {
+1 -1
View File
@@ -313,7 +313,7 @@ void EnJj_Update(Actor* thisx, PlayState* play) {
s32 EnJj_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, void* thisx) {
EnJj* this = (EnJj*)thisx;
if (CVarGetInteger(CVAR_GENERAL("LetItSnow"), 0)) {
if (CVarGetInteger("gHoliday.Visual.Hats", 0)) {
if (limbIndex == 13) {
OPEN_DISPS(play->state.gfxCtx);
Matrix_Push();
@@ -469,7 +469,7 @@ void EnMa1_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot,
Matrix_MultVec3f(&vec, &this->actor.focus.pos);
}
if (CVarGetInteger(CVAR_GENERAL("LetItSnow"), 0)) {
if (CVarGetInteger("gHoliday.Visual.Hats", 0)) {
if (limbIndex == 15) {
OPEN_DISPS(play->state.gfxCtx);
Matrix_Push();
@@ -1137,7 +1137,7 @@ s32 EnNiw_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* p
s32 EnNiw_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, void* thisx) {
EnNiw* this = (EnNiw*)thisx;
if (CVarGetInteger(CVAR_GENERAL("LetItSnow"), 0)) {
if (CVarGetInteger("gHoliday.Visual.Hats", 0)) {
if (limbIndex == 15) {
OPEN_DISPS(play->state.gfxCtx);
Matrix_Push();
@@ -251,7 +251,7 @@ static Vec3f sConstVec3f = { 0.2f, 0.2f, 0.2f };
s32 EnNiwGirl_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, void* thisx) {
EnNiwGirl* this = (EnNiwGirl*)thisx;
if (CVarGetInteger(CVAR_GENERAL("LetItSnow"), 0)) {
if (CVarGetInteger("gHoliday.Visual.Hats", 0)) {
if (limbIndex == 4) {
OPEN_DISPS(play->state.gfxCtx);
Matrix_Push();
@@ -590,7 +590,7 @@ s32 EnNiwLady_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3
s32 EnNiwLady_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, void* thisx) {
EnNiwLady* this = (EnNiwLady*)thisx;
if (CVarGetInteger(CVAR_GENERAL("LetItSnow"), 0)) {
if (CVarGetInteger("gHoliday.Visual.Hats", 0)) {
if (limbIndex == 15) {
OPEN_DISPS(play->state.gfxCtx);
Matrix_Push();
@@ -48,7 +48,7 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEMTYPE_UNK0,
{ 0xFFCFFFFF, 0x02, 0x08 },
{ 0xFFCFFFFF, 0x00, 0x08 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_WOOD,
BUMP_ON,
@@ -73,12 +73,10 @@ void EnNutsball_Init(Actor* thisx, PlayState* play) {
EnNutsball* this = (EnNutsball*)thisx;
s32 pad;
this->collider.info.toucher.effect = 2;
ActorShape_Init(&this->actor.shape, 400.0f, ActorShadow_DrawCircle, 13.0f);
Collider_InitCylinder(play, &this->collider);
Collider_SetCylinder(play, &this->collider, &this->actor, &sCylinderInit);
if (CVarGetInteger(CVAR_ENHANCEMENT("RandomizedEnemies"), 0) || CVarGetInteger("gLetItSnow", 0)) {
if (CVarGetInteger(CVAR_ENHANCEMENT("RandomizedEnemies"), 0) || CVarGetInteger(CVAR_GENERAL("LetItSnow"), 0)) {
this->objBankIndex = 0;
} else {
this->objBankIndex = Object_GetIndex(&play->objectCtx, sObjectIDs[this->actor.params]);
@@ -2429,7 +2429,7 @@ void EnOssan_DrawStickDirectionPrompts(PlayState* play, EnOssan* this) {
s32 EnOssan_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, void* thisx) {
EnOssan* this = (EnOssan*)thisx;
if (CVarGetInteger(CVAR_GENERAL("LetItSnow"), 0)) {
if (CVarGetInteger("gHoliday.Visual.Hats", 0)) {
if (limbIndex == 8) {
switch (this->actor.params) {
case 4: {
@@ -2529,7 +2529,7 @@ s32 EnOssan_OverrideLimbDrawKokiriShopkeeper(PlayState* play, s32 limbIndex, Gfx
gSPSegment(POLY_OPA_DISP++, 0x0A, SEGMENTED_TO_VIRTUAL(sKokiriShopkeeperEyeTextures[this->eyeTextureIdx]));
}
if (limbIndex == 15 && CVarGetInteger(CVAR_GENERAL("LetItSnow"), 0)) {
if (limbIndex == 15 && CVarGetInteger("gHoliday.Visual.Hats", 0)) {
Matrix_Push();
Matrix_RotateZYX(14169, -2215, 0, MTXMODE_APPLY);
Matrix_Translate(1810.811f, -351.351f, -94.595f, MTXMODE_APPLY);
@@ -433,7 +433,7 @@ void EnPoRelay_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s*
CLOSE_DISPS(play->state.gfxCtx);
}
if (limbIndex == 16 && CVarGetInteger(CVAR_GENERAL("LetItSnow"), 0)) {
if (limbIndex == 16 && CVarGetInteger("gHoliday.Visual.Hats", 0)) {
OPEN_DISPS(play->state.gfxCtx);
Matrix_Push();
Matrix_RotateZYX(10627, 3321, -13727, MTXMODE_APPLY);
@@ -308,7 +308,7 @@ void EnShopnuts_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s*
CLOSE_DISPS(play->state.gfxCtx);
}
if (limbIndex == 17 && CVarGetInteger(CVAR_GENERAL("LetItSnow"), 0)) {
if (limbIndex == 17 && CVarGetInteger("gHoliday.Visual.Hats", 0)) {
OPEN_DISPS(play->state.gfxCtx);
Matrix_Push();
Matrix_RotateZYX(0, 0, 17490, MTXMODE_APPLY);
@@ -556,7 +556,7 @@ void EnSkb_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot,
BodyBreak_SetInfo(&this->bodyBreak, limbIndex, 0, 18, 18, dList, BODYBREAK_OBJECT_DEFAULT);
}
if (limbIndex == 11 && CVarGetInteger(CVAR_GENERAL("LetItSnow"), 0)) {
if (limbIndex == 11 && CVarGetInteger("gHoliday.Visual.Hats", 0)) {
OPEN_DISPS(play->state.gfxCtx);
Matrix_Push();
Matrix_RotateZYX(0, 0, -2215, MTXMODE_APPLY);
@@ -400,7 +400,7 @@ void EnSth_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot,
}
}
if (limbIndex == 15 && CVarGetInteger(CVAR_GENERAL("LetItSnow"), 0)) {
if (limbIndex == 15 && CVarGetInteger("gHoliday.Visual.Hats", 0)) {
OPEN_DISPS(play->state.gfxCtx);
Matrix_Push();
Matrix_RotateZYX(-4207, -665, -4650, MTXMODE_APPLY);
@@ -525,7 +525,7 @@ s32 EnSyatekiMan_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, V
s32 EnSyatekiMan_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, void* thisx) {
EnSyatekiMan* this = (EnSyatekiMan*)thisx;
if (limbIndex == 8 && CVarGetInteger(CVAR_GENERAL("LetItSnow"), 0)) {
if (limbIndex == 8 && CVarGetInteger("gHoliday.Visual.Hats", 0)) {
OPEN_DISPS(play->state.gfxCtx);
Matrix_Push();
Matrix_RotateZYX(2214, 3985, -7750, MTXMODE_APPLY);
+1 -1
View File
@@ -1217,7 +1217,7 @@ void EnTa_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot,
Matrix_MultVec3f(&D_80B16E7C, &this->actor.focus.pos);
}
if (limbIndex == 15 && CVarGetInteger(CVAR_GENERAL("LetItSnow"), 0)) {
if (limbIndex == 15 && CVarGetInteger("gHoliday.Visual.Hats", 0)) {
OPEN_DISPS(play->state.gfxCtx);
Matrix_Push();
Matrix_RotateZYX(11955, -1993, 221, MTXMODE_APPLY);
@@ -1958,7 +1958,7 @@ void EnTest_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot
}
}
if (limbIndex == 11 && CVarGetInteger(CVAR_GENERAL("LetItSnow"), 0)) {
if (limbIndex == 11 && CVarGetInteger("gHoliday.Visual.Hats", 0)) {
OPEN_DISPS(play->state.gfxCtx);
Matrix_Push();
Matrix_RotateZYX(-10849, 0, -5314, MTXMODE_APPLY);
+2 -2
View File
@@ -168,7 +168,7 @@ void EnTg_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot,
if (limbIndex == 9) {
// Place the target point at the guy's head instead of the center of the actor
Matrix_MultVec3f(&targetOffset, &this->actor.focus.pos);
if (CVAR_GENERAL("LetItSnow")) {
if (CVarGetInteger("gHoliday.Visual.Hats", 0)) {
OPEN_DISPS(play->state.gfxCtx);
Matrix_Push();
Matrix_RotateZYX(-3100, 1992, 2435, MTXMODE_APPLY);
@@ -180,7 +180,7 @@ void EnTg_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot,
Matrix_Pop();
CLOSE_DISPS(play->state.gfxCtx);
}
} else if (limbIndex == 20 && CVarGetInteger(CVAR_GENERAL("LetItSnow"), 0)) {
} else if (limbIndex == 20 && CVarGetInteger("gHoliday.Visual.Hats", 0)) {
OPEN_DISPS(play->state.gfxCtx);
Matrix_Push();
Matrix_RotateZYX(-2657, -1550, 1549, MTXMODE_APPLY);
+1 -1
View File
@@ -730,7 +730,7 @@ void EnTk_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot,
func_80B1D200(play);
}
if (limbIndex == 16 && CVarGetInteger(CVAR_GENERAL("LetItSnow"), 0)) {
if (limbIndex == 16 && CVarGetInteger("gHoliday.Visual.Hats", 0)) {
OPEN_DISPS(play->state.gfxCtx);
Matrix_Push();
Matrix_RotateZYX(10627, 3321, -13727, MTXMODE_APPLY);
@@ -423,7 +423,7 @@ void EnToryo_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* ro
break;
}
if (limbIndex == 15 && CVarGetInteger(CVAR_GENERAL("LetItSnow"), 0)) {
if (limbIndex == 15 && CVarGetInteger("gHoliday.Visual.Hats", 0)) {
OPEN_DISPS(play->state.gfxCtx);
Matrix_Push();
Matrix_RotateZYX(-23691, 664, -2879, MTXMODE_APPLY);
+1 -1
View File
@@ -523,7 +523,7 @@ void EnVm_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot,
&this->colliderQuad2.dim.quad[3]);
}
if (limbIndex == 6 && CVarGetInteger(CVAR_GENERAL("LetItSnow"), 0)) {
if (limbIndex == 6 && CVarGetInteger("gHoliday.Visual.Hats", 0)) {
OPEN_DISPS(play->state.gfxCtx);
Matrix_Push();
Matrix_RotateZYX(19704, -1329, 11734, MTXMODE_APPLY);
+1 -1
View File
@@ -1430,7 +1430,7 @@ void EnWf_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot,
}
}
if (limbIndex == 17 && CVarGetInteger(CVAR_GENERAL("LetItSnow"), 0)) {
if (limbIndex == 17 && CVarGetInteger("gHoliday.Visual.Hats", 0)) {
OPEN_DISPS(play->state.gfxCtx);
Matrix_Push();
Matrix_RotateZYX(0, 0, -18377, MTXMODE_APPLY);
@@ -460,24 +460,22 @@ void EnWood02_Draw(Actor* thisx, PlayState* play) {
if ((type == WOOD_TREE_OVAL_GREEN_SPAWNER) || (type == WOOD_TREE_OVAL_GREEN_SPAWNED) ||
(type == WOOD_TREE_OVAL_GREEN) || (type == WOOD_LEAF_GREEN)) {
// red = 50;
// green = 170;
// blue = 70;
red = 255;
green = 255;
blue = 255;
red = 50;
green = 170;
blue = 70;
} else if ((type == WOOD_TREE_OVAL_YELLOW_SPAWNER) || (type == WOOD_TREE_OVAL_YELLOW_SPAWNED) ||
(type == WOOD_LEAF_YELLOW)) {
// red = 180;
// green = 155;
// blue = 0;
red = 255;
green = 255;
blue = 255;
red = 180;
green = 155;
blue = 0;
} else {
red = green = blue = 255;
}
if (CVarGetInteger("gHoliday.Visual.SnowingWeather", 0)) {
red = green = blue = 255;
}
Gfx_SetupDL_25Xlu(gfxCtx);
if (GameInteractor_Should(VB_TREE_SETUP_DRAW,
(this->actor.params == WOOD_LEAF_GREEN) || (this->actor.params == WOOD_LEAF_YELLOW),
@@ -7135,9 +7135,13 @@ void func_8083DFE0(Player* this, f32* arg1, s16* arg2) {
if (this->meleeWeaponState == 0) {
float maxSpeed = R_RUN_SPEED_LIMIT / 100.0f;
if (CVarGetInteger(CVAR_ENHANCEMENT("MMBunnyHood"), BUNNY_HOOD_VANILLA) == BUNNY_HOOD_FAST_AND_JUMP &&
this->currentMask == PLAYER_MASK_BUNNY) {
maxSpeed *= 1.5f;
if (this->currentMask == PLAYER_MASK_BUNNY) {
if (IS_ROGUELIKE) {
maxSpeed *= 1.0f + (((f32)gSaveContext.ship.quest.data.rogueLike.stats[RL_SPEED]) / 10.0f) * 1.5f;
} else if (CVarGetInteger(CVAR_ENHANCEMENT("MMBunnyHood"), BUNNY_HOOD_VANILLA) ==
BUNNY_HOOD_FAST_AND_JUMP) {
maxSpeed *= 1.5f;
}
}
if (CVarGetInteger(CVAR_SETTING("WalkModifier.Enabled"), 0) &&
@@ -8886,9 +8890,13 @@ void Player_Action_80842180(Player* this, PlayState* play) {
if (!func_8083C484(this, &sp2C, &sp2A)) {
if (CVarGetInteger(CVAR_ENHANCEMENT("MMBunnyHood"), BUNNY_HOOD_VANILLA) != BUNNY_HOOD_VANILLA &&
this->currentMask == PLAYER_MASK_BUNNY) {
sp2C *= 1.5f;
if (this->currentMask == PLAYER_MASK_BUNNY) {
if (IS_ROGUELIKE) {
sp2C *= 1.0f + (((f32)gSaveContext.ship.quest.data.rogueLike.stats[RL_SPEED]) / 10.0f) * 1.5f;
} else if (CVarGetInteger(CVAR_ENHANCEMENT("MMBunnyHood"), BUNNY_HOOD_VANILLA) ==
BUNNY_HOOD_FAST_AND_JUMP) {
sp2C *= 1.5f;
}
}
if (CVarGetInteger(CVAR_SETTING("WalkModifier.Enabled"), 0)) {
@@ -12835,9 +12843,14 @@ s16 func_8084ABD8(PlayState* play, Player* this, s32 arg2, s16 arg3) {
if (CVarGetInteger(CVAR_SETTING("MoveInFirstPerson"), 0)) {
f32 movementSpeed = LINK_IS_ADULT ? 9.0f : 8.25f;
if (CVarGetInteger(CVAR_ENHANCEMENT("MMBunnyHood"), BUNNY_HOOD_VANILLA) != BUNNY_HOOD_VANILLA &&
this->currentMask == PLAYER_MASK_BUNNY) {
movementSpeed *= 1.5f;
if (this->currentMask == PLAYER_MASK_BUNNY) {
if (IS_ROGUELIKE) {
movementSpeed *= 1.0f + (((f32)gSaveContext.ship.quest.data.rogueLike.stats[RL_SPEED]) / 10.0f) * 1.5f;
} else if (CVarGetInteger(CVAR_ENHANCEMENT("MMBunnyHood"), BUNNY_HOOD_VANILLA) ==
BUNNY_HOOD_FAST_AND_JUMP) {
movementSpeed *= 1.5f;
}
}
f32 relX = (sControlInput->rel.stick_x / 10 * -invertXAxisMulti);
@@ -704,7 +704,7 @@ static void DrawMoreInfo(FileChooseContext* this, s16 fileIndex, u8 alpha) {
}
#define MIN_QUEST (ResourceMgr_GameHasOriginal() ? QUEST_NORMAL : QUEST_MASTER)
#define MAX_QUEST QUEST_ARCHIPELAGO
#define MAX_QUEST QUEST_ROGUELIKE
void Sram_InitDebugSave(void);
void Sram_InitBossRushSave();
@@ -2745,6 +2745,17 @@ void FileChoose_DrawWindowContents(GameState* thisx) {
ResourceMgr_GameHasOriginal() ? gTitleZeldaShieldLogoTex : gTitleZeldaShieldLogoMQTex, 160, 160);
FileChoose_DrawImageRGBA32(this->state.gfxCtx, 182, 180, gTitleArchipelagoSubtitleTex, 128, 32);
break;
case QUEST_ROGUELIKE:
gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, 255, 255, 255, this->logoAlpha);
FileChoose_DrawTextureI8(this->state.gfxCtx, gTitleTheLegendOfTextTex, 72, 8, 156, 108, 72, 8, 1024,
1024);
FileChoose_DrawTextureI8(this->state.gfxCtx, gTitleOcarinaOfTimeTMTextTex, 96, 8, 154, 163, 96, 8, 1024,
1024);
FileChoose_DrawImageRGBA32(
this->state.gfxCtx, 160, 135,
ResourceMgr_GameHasOriginal() ? gTitleZeldaShieldLogoTex : gTitleZeldaShieldLogoMQTex, 160, 160);
FileChoose_DrawImageRGBA32(this->state.gfxCtx, 182, 180, gTitleRogueLikeSubtitleTex, 128, 32);
break;
}
} else if (this->configMode == CM_BOSS_RUSH_MENU) {
FileChoose_DrawBossRushMenuWindowContents(this);