mirror of
https://github.com/HarbourMasters/Shipwright.git
synced 2024-11-16 14:35:06 -05:00
Exposed static table to change skulltokens
This static table is normally only used within z_player.c, but is needed to switch the itemId to something Item_Give() can use and to set the correct TextId.
This commit is contained in:
parent
0f1f8c15f2
commit
4ccd4d5895
@ -5,6 +5,16 @@
|
|||||||
|
|
||||||
struct Player;
|
struct Player;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
/* 0x00 */ u8 itemId;
|
||||||
|
/* 0x01 */ u8 field; // various bit-packed data
|
||||||
|
/* 0x02 */ s8 gi; // defines the draw id and chest opening animation
|
||||||
|
/* 0x03 */ u8 textId;
|
||||||
|
/* 0x04 */ u16 objectId;
|
||||||
|
} GetItemEntry; // size = 0x06
|
||||||
|
|
||||||
|
extern GetItemEntry sGetItemTable[160];
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
/* 0 */ PLAYER_SWORD_NONE,
|
/* 0 */ PLAYER_SWORD_NONE,
|
||||||
/* 1 */ PLAYER_SWORD_KOKIRI,
|
/* 1 */ PLAYER_SWORD_KOKIRI,
|
||||||
|
@ -93,16 +93,18 @@ void func_80AFB768(EnSi* this, GlobalContext* globalCtx) {
|
|||||||
|
|
||||||
if (this->collider.base.ocFlags2 & OC2_HIT_PLAYER) {
|
if (this->collider.base.ocFlags2 & OC2_HIT_PLAYER) {
|
||||||
this->collider.base.ocFlags2 &= ~OC2_HIT_PLAYER;
|
this->collider.base.ocFlags2 &= ~OC2_HIT_PLAYER;
|
||||||
s32 getItemId = ITEM_SKULL_TOKEN;
|
s32 textId = 0xB4;
|
||||||
|
s32 itemGiveId = ITEM_SKULL_TOKEN;
|
||||||
if (gSaveContext.n64ddFlag) {
|
if (gSaveContext.n64ddFlag) {
|
||||||
getItemId = GetRandomizedItemId(GI_SKULL_TOKEN, this->actor.id, this->actor.params, globalCtx->sceneNum);
|
s32 getItemId = GetRandomizedItemId(GI_SKULL_TOKEN, this->actor.id, this->actor.params, globalCtx->sceneNum);
|
||||||
|
textId = sGetItemTable[getItemId - 1].textId;
|
||||||
|
itemGiveId = sGetItemTable[getItemId - 1].itemId;
|
||||||
}
|
}
|
||||||
//getItemId = ITEM_DINS_FIRE;
|
Item_Give(globalCtx, itemGiveId);
|
||||||
Item_Give(globalCtx, getItemId);
|
|
||||||
if (CVar_GetS32("gSkulltulaFreeze", 0) != 1) {
|
if (CVar_GetS32("gSkulltulaFreeze", 0) != 1) {
|
||||||
player->actor.freezeTimer = 20;
|
player->actor.freezeTimer = 20;
|
||||||
}
|
}
|
||||||
Message_StartTextbox(globalCtx, 0xB4, NULL);
|
Message_StartTextbox(globalCtx, textId, NULL);
|
||||||
Audio_PlayFanfare(NA_BGM_SMALL_ITEM_GET);
|
Audio_PlayFanfare(NA_BGM_SMALL_ITEM_GET);
|
||||||
this->actionFunc = func_80AFB950;
|
this->actionFunc = func_80AFB950;
|
||||||
} else {
|
} else {
|
||||||
@ -122,13 +124,15 @@ void func_80AFB89C(EnSi* this, GlobalContext* globalCtx) {
|
|||||||
this->actor.shape.rot.y += 0x400;
|
this->actor.shape.rot.y += 0x400;
|
||||||
|
|
||||||
if (!CHECK_FLAG_ALL(this->actor.flags, ACTOR_FLAG_13)) {
|
if (!CHECK_FLAG_ALL(this->actor.flags, ACTOR_FLAG_13)) {
|
||||||
s32 getItemId = ITEM_SKULL_TOKEN;
|
s32 textId = 0xB4;
|
||||||
|
s32 itemGiveId = ITEM_SKULL_TOKEN;
|
||||||
if (gSaveContext.n64ddFlag) {
|
if (gSaveContext.n64ddFlag) {
|
||||||
getItemId = GetRandomizedItemId(GI_SKULL_TOKEN, this->actor.id, this->actor.params, globalCtx->sceneNum);
|
s32 getItemId = GetRandomizedItemId(GI_SKULL_TOKEN, this->actor.id, this->actor.params, globalCtx->sceneNum);
|
||||||
|
textId = sGetItemTable[getItemId - 1].textId;
|
||||||
|
itemGiveId = sGetItemTable[getItemId - 1].itemId;
|
||||||
}
|
}
|
||||||
//getItemId = ITEM_DINS_FIRE;
|
Item_Give(globalCtx, itemGiveId);
|
||||||
Item_Give(globalCtx, getItemId);
|
Message_StartTextbox(globalCtx, textId, NULL);
|
||||||
Message_StartTextbox(globalCtx, 0xB4, NULL);
|
|
||||||
Audio_PlayFanfare(NA_BGM_SMALL_ITEM_GET);
|
Audio_PlayFanfare(NA_BGM_SMALL_ITEM_GET);
|
||||||
this->actionFunc = func_80AFB950;
|
this->actionFunc = func_80AFB950;
|
||||||
}
|
}
|
||||||
|
@ -616,7 +616,6 @@ void func_80B0D878(EnSw* this, GlobalContext* globalCtx) {
|
|||||||
temp_v0 = Actor_SpawnAsChild(&globalCtx->actorCtx, &this->actor, globalCtx, ACTOR_EN_SI,
|
temp_v0 = Actor_SpawnAsChild(&globalCtx->actorCtx, &this->actor, globalCtx, ACTOR_EN_SI,
|
||||||
this->actor.world.pos.x + x, this->actor.world.pos.y + y,
|
this->actor.world.pos.x + x, this->actor.world.pos.y + y,
|
||||||
this->actor.world.pos.z + z, 0, 0, 0, this->actor.params);
|
this->actor.world.pos.z + z, 0, 0, 0, this->actor.params);
|
||||||
|
|
||||||
if (temp_v0 != NULL) {
|
if (temp_v0 != NULL) {
|
||||||
temp_v0->parent = NULL;
|
temp_v0->parent = NULL;
|
||||||
}
|
}
|
||||||
|
@ -6,6 +6,7 @@
|
|||||||
|
|
||||||
#include "ultra64.h"
|
#include "ultra64.h"
|
||||||
#include "global.h"
|
#include "global.h"
|
||||||
|
#include "z64player.h"
|
||||||
|
|
||||||
#include "overlays/actors/ovl_Bg_Heavy_Block/z_bg_heavy_block.h"
|
#include "overlays/actors/ovl_Bg_Heavy_Block/z_bg_heavy_block.h"
|
||||||
#include "overlays/actors/ovl_Door_Shutter/z_door_shutter.h"
|
#include "overlays/actors/ovl_Door_Shutter/z_door_shutter.h"
|
||||||
@ -21,14 +22,6 @@
|
|||||||
#include "objects/object_link_child/object_link_child.h"
|
#include "objects/object_link_child/object_link_child.h"
|
||||||
#include "textures/icon_item_24_static/icon_item_24_static.h"
|
#include "textures/icon_item_24_static/icon_item_24_static.h"
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
/* 0x00 */ u8 itemId;
|
|
||||||
/* 0x01 */ u8 field; // various bit-packed data
|
|
||||||
/* 0x02 */ s8 gi; // defines the draw id and chest opening animation
|
|
||||||
/* 0x03 */ u8 textId;
|
|
||||||
/* 0x04 */ u16 objectId;
|
|
||||||
} GetItemEntry; // size = 0x06
|
|
||||||
|
|
||||||
#define GET_ITEM(itemId, objectId, drawId, textId, field, chestAnim) \
|
#define GET_ITEM(itemId, objectId, drawId, textId, field, chestAnim) \
|
||||||
{ itemId, field, (chestAnim != CHEST_ANIM_SHORT ? 1 : -1) * (drawId + 1), textId, objectId }
|
{ itemId, field, (chestAnim != CHEST_ANIM_SHORT ? 1 : -1) * (drawId + 1), textId, objectId }
|
||||||
|
|
||||||
@ -496,7 +489,7 @@ static u16 D_8085361C[] = {
|
|||||||
NA_SE_VO_LI_FALL_L,
|
NA_SE_VO_LI_FALL_L,
|
||||||
};
|
};
|
||||||
|
|
||||||
static GetItemEntry sGetItemTable[] = {
|
GetItemEntry sGetItemTable[] = {
|
||||||
GET_ITEM(ITEM_BOMBS_5, OBJECT_GI_BOMB_1, GID_BOMB, 0x32, 0x59, CHEST_ANIM_SHORT),
|
GET_ITEM(ITEM_BOMBS_5, OBJECT_GI_BOMB_1, GID_BOMB, 0x32, 0x59, CHEST_ANIM_SHORT),
|
||||||
GET_ITEM(ITEM_NUTS_5, OBJECT_GI_NUTS, GID_NUTS, 0x34, 0x0C, CHEST_ANIM_SHORT),
|
GET_ITEM(ITEM_NUTS_5, OBJECT_GI_NUTS, GID_NUTS, 0x34, 0x0C, CHEST_ANIM_SHORT),
|
||||||
GET_ITEM(ITEM_BOMBCHU, OBJECT_GI_BOMB_2, GID_BOMBCHU, 0x33, 0x80, CHEST_ANIM_SHORT),
|
GET_ITEM(ITEM_BOMBCHU, OBJECT_GI_BOMB_2, GID_BOMBCHU, 0x33, 0x80, CHEST_ANIM_SHORT),
|
||||||
|
Loading…
Reference in New Issue
Block a user