Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
46 commits
Select commit Hold shift + click to select a range
79eb748
Adding Splits, Collection Updates, Basic Save Feature.
Caladius Feb 11, 2024
4db8de6
New Time Splitter file/window, reverting GameplayStats back to unalte…
Caladius Feb 14, 2024
413cb1c
PRing for review
Caladius Feb 19, 2024
4e20f75
Better Item List Display for adding items.
Caladius Feb 21, 2024
33ecd9c
Fix Object issue on macOS Build. Remove old array from header.
Caladius Feb 22, 2024
89a297f
Reverting util files to original.
Caladius Feb 22, 2024
fe24ac6
Fix Great Fairy rewards not triggering Splits. Starting work on chang…
Caladius Feb 24, 2024
e822a24
Added in Boss Kill splits, needs a better image for the buttons but a…
Caladius Feb 29, 2024
7374025
Merge branch 'develop' into split_v1
Caladius Feb 29, 2024
a26bc78
Permanent ImageButtons for all items, Thank you Archez!
Caladius Feb 29, 2024
d02e42c
Merge branch 'split_v1' of https://github.com/Caladius/Shipwright int…
Caladius Feb 29, 2024
d1d3c56
Multiple Saved Lists, boss kills w/ images, drag and reorder lists.
Caladius Mar 2, 2024
37131d7
-
Caladius Mar 2, 2024
eebc78d
Updated Boss Kills to Enums instead of numbers, fixed some Tinting we…
Caladius Mar 2, 2024
1de7f0d
Last Split in the list becomes gameComplete status.
Caladius Mar 3, 2024
38b4bca
Clean up comments
Caladius Mar 3, 2024
10f7b0c
Fix Master Sword split
Caladius Mar 3, 2024
1dbacef
New Item Menu! Splits will only split in order. Fixed Bottle contents…
Caladius Mar 5, 2024
34e91a4
Forgot Magic like a peasant!
Caladius Mar 5, 2024
2257d28
Fix magic numbers tint.
Caladius Mar 5, 2024
dd1814c
fix header in z_param.
Caladius Mar 5, 2024
5e9d9fb
Scaling fix, Dungeon entrance splits added, collapsible headers for c…
Caladius Mar 6, 2024
45fc800
Entrance splits for unique cases. Placeholder for new gameComplete Ti…
Caladius Mar 7, 2024
d5bf73a
Merge branch 'develop' into split_v1
Caladius Mar 7, 2024
318e608
Fix Entrances
Caladius Mar 7, 2024
a50d79c
Hopefully fixing item tints
Caladius Mar 7, 2024
2b8690e
Code clean up, adding Entrance image for Entrance Splits, Text Wrappi…
Caladius Mar 8, 2024
82414a4
Add Checkbox to allow removing items from list directly.
Caladius Mar 9, 2024
86554c1
Bug Fixes: Entrances, Reordering splits with already split statuses, …
Caladius Mar 10, 2024
9d8103d
Update Enable Removals button to Edit Splits and fixed scenarios wher…
Caladius Mar 11, 2024
7a7b2fa
Split List preview in Manage List tab for quick reference. (Thanks aM…
Caladius Mar 12, 2024
c5f688b
cleanup
Caladius Mar 12, 2024
c351083
Fix Magic splits
Caladius Mar 13, 2024
c8aeabe
Fix Current Time not counting up
Caladius Mar 14, 2024
aece657
Fixed initialization of splitdata file; added Text to List Preview ar…
Caladius Mar 14, 2024
0787d3c
Added in Active Tracking for the currently active split.
Caladius Mar 15, 2024
e5cdce6
Set new item entries Best to 0 and updated code to reflect it. added …
Caladius Mar 15, 2024
b433be4
Added in JOTWAD Death Trigger.
Caladius Mar 15, 2024
e861a12
Fix Scaling
Caladius Apr 20, 2024
e029bf5
Merge remote-tracking branch 'origin/develop' into split_v1
Caladius Apr 22, 2024
f843da8
Pulled in @malkierian CVar updates and updated TimeSplit CVars to match.
Caladius Apr 22, 2024
4ca1d9f
Update to Develop
Caladius Oct 14, 2024
61cd361
Fix Includes and replace LUS with Ship
Caladius Oct 15, 2024
330ebd5
Full Overhaul, new Hooks, less Src manip.
Caladius Oct 17, 2024
1564540
Working popup
garrettjoecox Oct 18, 2024
48c8bef
Merge pull request #42 from garrettjoecox/split_v2
Caladius Oct 18, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
6 changes: 6 additions & 0 deletions soh/assets/soh_assets.h
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,12 @@ static const ALIGN_ASSET(2) char gArrowDownTex[] = dgArrowDown;
#define dgTriforcePiece "__OTR__textures/parameter_static/gTriforcePiece"
static const ALIGN_ASSET(2) char gTriforcePieceTex[] = dgTriforcePiece;

#define dgWTriforcePiece "__OTR__textures/parameter_static/gWTriforcePiece"
static const ALIGN_ASSET(2) char gWTriforcePieceTex[] = dgWTriforcePiece;

#define dgSplitEntrance "__OTR__textures/parameter_static/gSplitEntrance"
static const ALIGN_ASSET(2) char gSplitEntranceTex[] = dgSplitEntrance;

#define dgBossSoul "__OTR__textures/parameter_static/gBossSoul"
static const ALIGN_ASSET(2) char gBossSoulTex[] = dgBossSoul;

Expand Down
9 changes: 9 additions & 0 deletions soh/build.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
#include <libultraship/libultra.h>

const char gBuildVersion[] = "Sulu Bravo (8.0.5)";
const u16 gBuildVersionMajor = 8;
const u16 gBuildVersionMinor = 0;
const u16 gBuildVersionPatch = 5;
const char gBuildTeam[] = "github.com/harbourmasters";
const char gBuildDate[] = __DATE__ " " __TIME__;
const char gBuildMakeOption[] = "";
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,9 @@ DEFINE_HOOK(OnActorUpdate, (void* actor));
DEFINE_HOOK(OnActorKill, (void* actor));
DEFINE_HOOK(OnEnemyDefeat, (void* actor));
DEFINE_HOOK(OnBossDefeat, (void* actor));
DEFINE_HOOK(OnTimestamp, (u8 item));
DEFINE_HOOK(OnPlayerBonk, ());
DEFINE_HOOK(OnPlayerHealthChange, (int16_t amount));
DEFINE_HOOK(OnPlayDestroy, ());
DEFINE_HOOK(OnPlayDrawEnd, ());
DEFINE_HOOK(OnVanillaBehavior, (GIVanillaBehavior flag, bool* result, va_list originalArgs));
Expand Down
8 changes: 8 additions & 0 deletions soh/soh/Enhancements/game-interactor/GameInteractor_Hooks.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -107,10 +107,18 @@ void GameInteractor_ExecuteOnBossDefeat(void* actor) {
GameInteractor::Instance->ExecuteHooksForFilter<GameInteractor::OnBossDefeat>(actor);
}

void GameInteractor_ExecuteOnTimestamp (u8 item) {
GameInteractor::Instance->ExecuteHooks<GameInteractor::OnTimestamp>(item);
}

void GameInteractor_ExecuteOnPlayerBonk() {
GameInteractor::Instance->ExecuteHooks<GameInteractor::OnPlayerBonk>();
}

void GameInteractor_ExecuteOnPlayerHealthChange(int16_t amount) {
GameInteractor::Instance->ExecuteHooks<GameInteractor::OnPlayerHealthChange>(amount);
}

void GameInteractor_ExecuteOnPlayDestroy() {
GameInteractor::Instance->ExecuteHooks<GameInteractor::OnPlayDestroy>();
}
Expand Down
2 changes: 2 additions & 0 deletions soh/soh/Enhancements/game-interactor/GameInteractor_Hooks.h
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,9 @@ void GameInteractor_ExecuteOnActorUpdate(void* actor);
void GameInteractor_ExecuteOnActorKill(void* actor);
void GameInteractor_ExecuteOnEnemyDefeat(void* actor);
void GameInteractor_ExecuteOnBossDefeat(void* actor);
void GameInteractor_ExecuteOnTimestamp (u8 item);
void GameInteractor_ExecuteOnPlayerBonk();
void GameInteractor_ExecuteOnPlayerHealthChange(int16_t amount);
void GameInteractor_ExecuteOnOcarinaSongAction();
void GameInteractor_ExecuteOnShopSlotChangeHooks(uint8_t cursorIndex, int16_t price);
void GameInteractor_ExecuteOnPlayDestroy();
Expand Down
32 changes: 18 additions & 14 deletions soh/soh/Enhancements/gameplaystats.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@ extern "C" {
#include "soh/Enhancements/enhancementTypes.h"
#include "soh/OTRGlobals.h"

#include "soh/Enhancements/game-interactor/GameInteractor.h"

extern "C" {
#include <z64.h>
#include "variables.h"
Expand Down Expand Up @@ -241,7 +243,7 @@ const char* const countMappings[] = {
#define COLOR_LIGHT_BLUE ImVec4(0.00f, 0.88f, 1.00f, 1.00f)
#define COLOR_GREY ImVec4(0.78f, 0.78f, 0.78f, 1.00f)

char itemTimestampDisplayName[TIMESTAMP_MAX][21] = { "" };
char itemTimestampDisplayName[TIMESTAMP_MAX][23] = { "" };
ImVec4 itemTimestampDisplayColor[TIMESTAMP_MAX];

typedef struct {
Expand Down Expand Up @@ -770,19 +772,20 @@ void SetupDisplayNames() {
strcpy(itemTimestampDisplayName[ITEM_DOUBLE_DEFENSE], "Double Defense: ");

// Other events
strcpy(itemTimestampDisplayName[TIMESTAMP_DEFEAT_GOHMA], "Gohma Defeated: ");
strcpy(itemTimestampDisplayName[TIMESTAMP_DEFEAT_KING_DODONGO], "KD Defeated: ");
strcpy(itemTimestampDisplayName[TIMESTAMP_DEFEAT_BARINADE], "Barinade Defeated: ");
strcpy(itemTimestampDisplayName[TIMESTAMP_DEFEAT_PHANTOM_GANON], "PG Defeated: ");
strcpy(itemTimestampDisplayName[TIMESTAMP_DEFEAT_VOLVAGIA], "Volvagia Defeated: ");
strcpy(itemTimestampDisplayName[TIMESTAMP_DEFEAT_MORPHA], "Morpha Defeated: ");
strcpy(itemTimestampDisplayName[TIMESTAMP_DEFEAT_BONGO_BONGO], "Bongo Defeated: ");
strcpy(itemTimestampDisplayName[TIMESTAMP_DEFEAT_TWINROVA], "Twinrova Defeated: ");
strcpy(itemTimestampDisplayName[TIMESTAMP_DEFEAT_GANONDORF], "Ganondorf Defeated: ");
strcpy(itemTimestampDisplayName[TIMESTAMP_DEFEAT_GANON], "Ganon Defeated: ");
strcpy(itemTimestampDisplayName[TIMESTAMP_BOSSRUSH_FINISH], "Boss Rush Finished: ");
strcpy(itemTimestampDisplayName[TIMESTAMP_FOUND_GREG], "Greg Found: ");
strcpy(itemTimestampDisplayName[TIMESTAMP_TRIFORCE_COMPLETED], "Triforce Completed: ");
strcpy(itemTimestampDisplayName[TIMESTAMP_DEFEAT_GOHMA], "Gohma Defeated: ");
strcpy(itemTimestampDisplayName[TIMESTAMP_DEFEAT_KING_DODONGO], "KD Defeated: ");
strcpy(itemTimestampDisplayName[TIMESTAMP_DEFEAT_BARINADE], "Barinade Defeated: ");
strcpy(itemTimestampDisplayName[TIMESTAMP_DEFEAT_PHANTOM_GANON], "PG Defeated: ");
strcpy(itemTimestampDisplayName[TIMESTAMP_DEFEAT_VOLVAGIA], "Volvagia Defeated: ");
strcpy(itemTimestampDisplayName[TIMESTAMP_DEFEAT_MORPHA], "Morpha Defeated: ");
strcpy(itemTimestampDisplayName[TIMESTAMP_DEFEAT_BONGO_BONGO], "Bongo Defeated: ");
strcpy(itemTimestampDisplayName[TIMESTAMP_DEFEAT_TWINROVA], "Twinrova Defeated: ");
strcpy(itemTimestampDisplayName[TIMESTAMP_DEFEAT_GANONDORF], "Ganondorf Defeated: ");
strcpy(itemTimestampDisplayName[TIMESTAMP_DEFEAT_GANON], "Ganon Defeated: ");
strcpy(itemTimestampDisplayName[TIMESTAMP_BOSSRUSH_FINISH], "Boss Rush Finished: ");
strcpy(itemTimestampDisplayName[TIMESTAMP_FOUND_GREG], "Greg Found: ");
strcpy(itemTimestampDisplayName[TIMESTAMP_TRIFORCE_COMPLETED], "Triforce Completed: ");
strcpy(itemTimestampDisplayName[TIMESTAMP_TIMESPLIT_COMPLETED], "Time Split Completed: ");
}

void SetupDisplayColors() {
Expand Down Expand Up @@ -830,6 +833,7 @@ void SetupDisplayColors() {
case TIMESTAMP_DEFEAT_GANONDORF:
case TIMESTAMP_DEFEAT_GANON:
case TIMESTAMP_TRIFORCE_COMPLETED:
case TIMESTAMP_TIMESPLIT_COMPLETED:
itemTimestampDisplayColor[i] = COLOR_YELLOW;
break;
case ITEM_SONG_STORMS:
Expand Down
3 changes: 2 additions & 1 deletion soh/soh/Enhancements/gameplaystats.h
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,8 @@ typedef enum {
/* 0xA9 */ TIMESTAMP_BOSSRUSH_FINISH, // z_boss_ganon2.c
/* 0xAA */ TIMESTAMP_FOUND_GREG, // z_parameter.c
/* 0xAA */ TIMESTAMP_TRIFORCE_COMPLETED, // z_parameter.c
/* 0xAB */ TIMESTAMP_MAX
/* 0xAB */ TIMESTAMP_TIMESPLIT_COMPLETED, // TimeSplits.cpp
/* 0xAC */ TIMESTAMP_MAX

}GameplayStatTimestamp;

Expand Down
Loading