mirror of
https://github.com/HarbourMasters/Shipwright.git
synced 2025-08-22 06:13:45 -07:00
WIP
This commit is contained in:
parent
1d5442edcd
commit
75ccabe198
2 changed files with 17 additions and 9 deletions
|
@ -7,6 +7,7 @@
|
|||
#include "spdlog/spdlog.h"
|
||||
|
||||
#include <soh/OTRGlobals.h>
|
||||
#include <soh/OTRAudio.h>
|
||||
|
||||
#include "z64.h"
|
||||
#include "z64save.h"
|
||||
|
@ -14,7 +15,6 @@
|
|||
#include <functions.h>
|
||||
#include "z64map_mark.h"
|
||||
|
||||
|
||||
extern "C" GlobalContext* gGlobalCtx;
|
||||
|
||||
// FROM z_lights.c
|
||||
|
@ -155,8 +155,6 @@ unsigned int SaveStateMgr::GetCurrentSlot(void) {
|
|||
}
|
||||
|
||||
void SaveStateMgr::ProcessSaveStateRequests(void) {
|
||||
std::unique_lock<std::mutex> Lock(this->mutex);
|
||||
|
||||
while (!this->requests.empty()) {
|
||||
const auto& request = this->requests.front();
|
||||
|
||||
|
@ -187,8 +185,6 @@ SaveStateReturn SaveStateMgr::AddRequest(const SaveStateRequest request) {
|
|||
return SaveStateReturn::FAIL_WRONG_GAMESTATE;
|
||||
}
|
||||
|
||||
std::unique_lock<std::mutex> Lock(this->mutex);
|
||||
|
||||
switch (request.type) {
|
||||
case RequestType::SAVE:
|
||||
requests.push(request);
|
||||
|
@ -210,6 +206,7 @@ SaveStateReturn SaveStateMgr::AddRequest(const SaveStateRequest request) {
|
|||
}
|
||||
|
||||
void SaveState::Save(void) {
|
||||
std::unique_lock<std::mutex> Lock(audio.mutex);
|
||||
memcpy(&info->sysHeapCopy, gSystemHeap, SYSTEM_HEAP_SIZE /* sizeof(gSystemHeap) */);
|
||||
memcpy(&info->audioHeapCopy, gAudioHeap, AUDIO_HEAP_SIZE /* sizeof(gAudioContext) */);
|
||||
|
||||
|
@ -237,12 +234,15 @@ void SaveState::Save(void) {
|
|||
memcpy(&info->lightBufferCopy, &sLightsBuffer, sizeof(sLightsBuffer));
|
||||
memcpy(&info->mtxStackCopy, &sMatrixStack, sizeof(MtxF) * 20);
|
||||
memcpy(&info->currentMtxCopy, &sCurrentMatrix, sizeof(MtxF));
|
||||
|
||||
//Various static data
|
||||
info->blueWarpTimerCopy = sWarpTimerTarget;
|
||||
info->sLoadedMarkDataTableCopy = sLoadedMarkDataTable;
|
||||
|
||||
}
|
||||
|
||||
void SaveState::Load(void) {
|
||||
std::unique_lock<std::mutex> Lock(audio.mutex);
|
||||
memcpy(gSystemHeap, &info->sysHeapCopy, SYSTEM_HEAP_SIZE);
|
||||
memcpy(gAudioHeap, &info->audioHeapCopy, AUDIO_HEAP_SIZE);
|
||||
|
||||
|
@ -270,7 +270,7 @@ void SaveState::Load(void) {
|
|||
memcpy(gAudioSfxSwapMode, &info->gAudioSfxSwapMode_copy,
|
||||
sizeof(info->gAudioSfxSwapMode_copy));
|
||||
|
||||
|
||||
//Various static data
|
||||
D_801755D0 = info->D_801755D0_copy;
|
||||
sLoadedMarkDataTable = info->sLoadedMarkDataTableCopy;
|
||||
}
|
||||
|
|
|
@ -4804,7 +4804,7 @@ s32 func_8083ADD4(GlobalContext* globalCtx, Player* this) {
|
|||
|
||||
void func_8083AE40(Player* this, s16 objectId) {
|
||||
s32 pad;
|
||||
u32 size;
|
||||
size_t size;
|
||||
|
||||
if (objectId != OBJECT_INVALID) {
|
||||
this->giObjectLoading = true;
|
||||
|
@ -4815,7 +4815,7 @@ void func_8083AE40(Player* this, s16 objectId) {
|
|||
LOG_HEX("size", size, "../z_player.c", 9090);
|
||||
ASSERT(size <= 1024 * 8, "size <= 1024 * 8", "../z_player.c", 9091);
|
||||
|
||||
DmaMgr_SendRequest2(&this->giObjectDmaRequest, (u32)this->giObjectSegment, gObjectTable[objectId].vromStart,
|
||||
DmaMgr_SendRequest2(&this->giObjectDmaRequest, (uint32_t)this->giObjectSegment, gObjectTable[objectId].vromStart,
|
||||
size, 0, &this->giObjectLoadQueue, NULL, "../z_player.c", 9099);
|
||||
}
|
||||
}
|
||||
|
@ -10751,13 +10751,21 @@ void Player_UpdateCommon(Player* this, GlobalContext* globalCtx, Input* input) {
|
|||
static Vec3f D_80854838 = { 0.0f, 0.0f, -30.0f };
|
||||
|
||||
void Player_Update(Actor* thisx, GlobalContext* globalCtx) {
|
||||
static Vec3f sDogSpawnPos;
|
||||
static Vec3f sDogSpawnPos;
|
||||
Player* this = (Player*)thisx;
|
||||
s32 dogParams;
|
||||
s32 pad;
|
||||
Input sp44;
|
||||
Actor* dog;
|
||||
|
||||
int bp = 0;
|
||||
|
||||
if (bp) {
|
||||
func_8083A098(this, gPlayerAnim_003458, globalCtx);
|
||||
// bp = 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if (func_8084FCAC(this, globalCtx)) {
|
||||
if (gSaveContext.dogParams < 0) {
|
||||
if (Object_GetIndex(&globalCtx->objectCtx, OBJECT_DOG) < 0) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue