Added v1 ice traps and fixed some tokens

This commit is contained in:
aMannus 2022-07-18 23:55:44 +02:00
parent 3341c3d404
commit 3a11aa08bb
3 changed files with 36 additions and 8 deletions

View File

@ -3018,6 +3018,8 @@ RandomizerCheck Randomizer::GetCheckFromActor(s16 sceneNum, s16 actorId, s16 act
} else {
return RC_KAK_ANJU_AS_CHILD;
}
}
switch (actorParams) {
case -28640:
return RC_KAK_GS_TREE;
case 20482:

View File

@ -1735,6 +1735,20 @@ void Message_OpenText(GlobalContext* globalCtx, u16 textId) {
} else {
msgCtx->msgLength = font->msgLength = CopyGanonHintText(font->msgBuf, sizeof(font->msgBuf));
}
} else if (textId == 0xF8 && GET_PLAYER(globalCtx)->getItemId == GI_ICE_TRAP) {
switch (gSaveContext.language) {
case LANGUAGE_FRA:
strcpy(font->msgBuf, "\x08\x06\x50\x05\x43IDIOT\x0E\x20\x02");
break;
case LANGUAGE_GER:
strcpy(font->msgBuf, "\x08\x06\x15 Du bist ein\x05\x43 DUMMKOPF\x05\x40!\x0E\x20\x02");
break;
case LANGUAGE_ENG:
default:
strcpy(font->msgBuf, "\x08\x06\x30You are a\x05\x43 FOWL\x05\x40!\x0E\x20\x02");
break;
}
msgCtx->msgLength = font->msgLength = strlen(font->msgBuf);
} else {
msgCtx->msgLength = font->msgLength;
char* src = (uintptr_t)font->msgOffset;

View File

@ -98,11 +98,17 @@ void func_80AFB768(EnSi* this, GlobalContext* globalCtx) {
if (this->collider.base.ocFlags2 & OC2_HIT_PLAYER) {
this->collider.base.ocFlags2 &= ~OC2_HIT_PLAYER;
if (gSaveContext.n64ddFlag) {
getItemId = GetRandomizedItemId(GI_SKULL_TOKEN, this->actor.id, this->actor.params, globalCtx->sceneNum);
textId = sGetItemTable[getItemId - 1].textId;
giveItemId = sGetItemTable[getItemId - 1].itemId;
if (getItemId == GI_ICE_TRAP) {
GiveItemWithoutActor(globalCtx, getItemId);
textId = 0xF8;
} else {
textId = sGetItemTable[getItemId - 1].textId;
giveItemId = sGetItemTable[getItemId - 1].itemId;
}
}
if (getItemId != GI_ICE_TRAP) {
Item_Give(globalCtx, giveItemId);
}
Item_Give(globalCtx, giveItemId);
if (CVar_GetS32("gSkulltulaFreeze", 0) != 1 || giveItemId != ITEM_SKULL_TOKEN) {
player->actor.freezeTimer = 20;
}
@ -127,11 +133,17 @@ void func_80AFB89C(EnSi* this, GlobalContext* globalCtx) {
if (!CHECK_FLAG_ALL(this->actor.flags, ACTOR_FLAG_13)) {
if (gSaveContext.n64ddFlag) {
getItemId = GetRandomizedItemId(GI_SKULL_TOKEN, this->actor.id, this->actor.params, globalCtx->sceneNum);
giveItemId = sGetItemTable[getItemId - 1].itemId;
textId = sGetItemTable[getItemId - 1].textId;
if (getItemId == GI_ICE_TRAP) {
GiveItemWithoutActor(globalCtx, getItemId);
textId = 0xF8;
} else {
textId = sGetItemTable[getItemId - 1].textId;
giveItemId = sGetItemTable[getItemId - 1].itemId;
}
}
if (getItemId != GI_ICE_TRAP) {
Item_Give(globalCtx, giveItemId);
}
Item_Give(globalCtx, giveItemId);
Message_StartTextbox(globalCtx, textId, NULL);
Audio_PlayFanfare(NA_BGM_SMALL_ITEM_GET);
this->actionFunc = func_80AFB950;