Skip to content

Commit

Permalink
It was bindings' fault
Browse files Browse the repository at this point in the history
  • Loading branch information
0x5abe committed Jun 28, 2024
1 parent 7b17534 commit e8c087a
Show file tree
Hide file tree
Showing 6 changed files with 26 additions and 26 deletions.
4 changes: 2 additions & 2 deletions docs/PSF.hexpat
Original file line number Diff line number Diff line change
Expand Up @@ -716,8 +716,8 @@ struct PSF {
u32 levelStringChecksum;
u32 checkpointObjectCount;
CheckpointObject checkpointObjects[checkpointObjectCount];
u32 triggeredCheckpointGameObjectCount;
CheckpointGameObjectPtr triggeredCheckpointGameObjects[triggeredCheckpointGameObjectCount];
u32 activatedCheckpointCount;
CheckpointGameObjectPtr activatedCheckpoints[activatedCheckpointCount];
};

PSF file @ 0x0;
2 changes: 1 addition & 1 deletion src/hooks/PauseLayer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ void PSPauseLayer::onRestartFull(CCObject* i_sender) {
PSPlayLayer* l_playLayer = static_cast<PSPlayLayer*>(PlayLayer::get());
if (l_playLayer && l_playLayer->savesEnabled()) {
l_playLayer->m_fields->m_normalModeCheckpoints->removeAllObjects();
l_playLayer->m_fields->m_triggeredCheckpointGameObjects.clear();
l_playLayer->m_fields->m_activatedCheckpoints.clear();
}

PauseLayer::onRestartFull(i_sender);
Expand Down
12 changes: 6 additions & 6 deletions src/hooks/PlayLayer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -119,11 +119,11 @@ CheckpointObject* PSPlayLayer::markCheckpoint() {
if (savesEnabled() && m_fields->m_inPostUpdate && !m_isPracticeMode) {
if (m_fields->m_triedPlacingCheckpoint) {
m_fields->m_triedPlacingCheckpoint = false;
} else if (m_triggeredCheckpointGameObject != nullptr) {
} else if (m_activatedCheckpoint != nullptr) {
l_checkpointObject->m_fields->m_timePlayed = m_timePlayed;
l_checkpointObject->m_fields->m_timestamp = std::chrono::duration_cast<std::chrono::milliseconds>(std::chrono::system_clock::now().time_since_epoch()).count();
m_fields->m_normalModeCheckpoints->addObject(l_checkpointObject);
m_fields->m_triggeredCheckpointGameObjects.push_back(CheckpointGameObjectReference(m_triggeredCheckpointGameObject));
m_fields->m_activatedCheckpoints.push_back(CheckpointGameObjectReference(m_activatedCheckpoint));
// autosave
if (Mod::get()->getSettingValue<bool>("auto-save")) startSaveGame();
}
Expand Down Expand Up @@ -164,7 +164,7 @@ void PSPlayLayer::togglePracticeMode(bool i_value) {
void PSPlayLayer::resetLevelFromStart() {
if (savesEnabled() && m_fields->m_inTogglePracticeMode && m_isPlatformer && !m_isPracticeMode && m_fields->m_normalModeCheckpoints->count() > 0) {
PlayLayer::removeAllCheckpoints();
registerCheckpointsAndTriggeredCheckpointGameObjects();
registerCheckpointsAndActivatedCheckpoints();
PlayLayer::resetLevel();
return;
}
Expand All @@ -178,7 +178,7 @@ void PSPlayLayer::onQuit() {

// custom methods

void PSPlayLayer::registerCheckpointsAndTriggeredCheckpointGameObjects() {
void PSPlayLayer::registerCheckpointsAndActivatedCheckpoints() {
PSCheckpointObject* l_checkpoint;
for (int i = 0; i < m_fields->m_normalModeCheckpoints->count(); i++) {
l_checkpoint = static_cast<PSCheckpointObject*>(m_fields->m_normalModeCheckpoints->objectAtIndex(i));
Expand All @@ -187,8 +187,8 @@ void PSPlayLayer::registerCheckpointsAndTriggeredCheckpointGameObjects() {
l_checkpoint->m_physicalCheckpointObject->activateObject();
m_timePlayed = l_checkpoint->m_fields->m_timePlayed;
}
for (int i = 0; i < m_fields->m_triggeredCheckpointGameObjects.size(); i++) {
if (m_fields->m_triggeredCheckpointGameObjects[i].m_reference != nullptr) m_fields->m_triggeredCheckpointGameObjects[i].m_reference->triggerActivated(0.0f);
for (int i = 0; i < m_fields->m_activatedCheckpoints.size(); i++) {
if (m_fields->m_activatedCheckpoints[i].m_reference != nullptr) m_fields->m_activatedCheckpoints[i].m_reference->triggerActivated(0.0f);
}
}

Expand Down
10 changes: 5 additions & 5 deletions src/hooks/PlayLayer.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ enum class LoadingState {
HandleIncorrectHash,
ReadCheckpointCount,
ReadCheckpoint,
ReadTriggeredCheckpointGameObjects,
ReadActivatedCheckpoints,
ReadTimePlayed,
WaitingForPopup,
CancelLevelLoad
Expand All @@ -36,7 +36,7 @@ enum class SavingState {
Ready,
Setup,
SaveCheckpoint,
SaveTriggeredCheckpointGameObjects,
SaveActivatedCheckpoints,
SaveTimePlayed
};

Expand Down Expand Up @@ -68,7 +68,7 @@ class $modify(PSPlayLayer, PlayLayer) {
cocos2d::CCScene* m_transitionFadeScene = nullptr;
geode::Ref<cocos2d::CCSprite> m_savingIcon = nullptr;
geode::Ref<cocos2d::CCArray> m_normalModeCheckpoints = nullptr;
std::vector<CheckpointGameObjectReference> m_triggeredCheckpointGameObjects;
std::vector<CheckpointGameObjectReference> m_activatedCheckpoints;
};

// overrides
Expand Down Expand Up @@ -108,7 +108,7 @@ class $modify(PSPlayLayer, PlayLayer) {

// custom methods

void registerCheckpointsAndTriggeredCheckpointGameObjects();
void registerCheckpointsAndActivatedCheckpoints();

bool readPsfLevelStringHash();

Expand All @@ -126,7 +126,7 @@ class $modify(PSPlayLayer, PlayLayer) {

void loadCheckpointFromStream();

void loadTriggeredCheckpointGameObjectsFromStream();
void loadActivatedCheckpointsFromStream();

void updateAsyncProcessCreateObjectsFromSetup();

Expand Down
14 changes: 7 additions & 7 deletions src/hooks/PlayLayerLoad.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -132,12 +132,12 @@ void PSPlayLayer::loadGame() {
m_fields->m_remainingCheckpointLoadCount--;
}
if (m_fields->m_remainingCheckpointLoadCount == 0) {
m_fields->m_loadingState = LoadingState::ReadTriggeredCheckpointGameObjects;
m_fields->m_loadingState = LoadingState::ReadActivatedCheckpoints;
}
// falls through
}
case LoadingState::ReadTriggeredCheckpointGameObjects: {
loadTriggeredCheckpointGameObjectsFromStream();
case LoadingState::ReadActivatedCheckpoints: {
loadActivatedCheckpointsFromStream();
m_fields->m_loadingState = LoadingState::ReadTimePlayed;
// falls through
}
Expand All @@ -150,7 +150,7 @@ void PSPlayLayer::loadGame() {
if (m_fields->m_normalModeCheckpoints->count() > 0) {
m_fields->m_lastSavedCheckpointTimestamp = static_cast<PSCheckpointObject*>(m_fields->m_normalModeCheckpoints->lastObject())->m_fields->m_timestamp;
}
registerCheckpointsAndTriggeredCheckpointGameObjects();
registerCheckpointsAndActivatedCheckpoints();
//log::info("!!!!!!!!!!!!!!!! DO NOTHING");
break;
}
Expand Down Expand Up @@ -285,13 +285,13 @@ void PSPlayLayer::loadGame() {
}
}

void PSPlayLayer::loadTriggeredCheckpointGameObjectsFromStream() {
void PSPlayLayer::loadActivatedCheckpointsFromStream() {
unsigned int l_size;
m_fields->m_inputStream.read(reinterpret_cast<char*>(&l_size), 4);
if (l_size != 0) {
m_fields->m_triggeredCheckpointGameObjects.resize(l_size);
m_fields->m_activatedCheckpoints.resize(l_size);
for (int i = 0; i < l_size; i++) {
m_fields->m_triggeredCheckpointGameObjects[i].load(m_fields->m_inputStream);
m_fields->m_activatedCheckpoints[i].load(m_fields->m_inputStream);
}
}
}
Expand Down
10 changes: 5 additions & 5 deletions src/hooks/PlayLayerSave.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -87,16 +87,16 @@ void PSPlayLayer::saveGame() {
break;
}
if (m_fields->m_remainingCheckpointSaveCount == 0) {
m_fields->m_savingState = SavingState::SaveTriggeredCheckpointGameObjects;
m_fields->m_savingState = SavingState::SaveActivatedCheckpoints;
}
// Todo use tasks maybe
// falls through
}
case SavingState::SaveTriggeredCheckpointGameObjects: {
unsigned int l_size = m_fields->m_triggeredCheckpointGameObjects.size();
case SavingState::SaveActivatedCheckpoints: {
unsigned int l_size = m_fields->m_activatedCheckpoints.size();
m_fields->m_outputStream.write(reinterpret_cast<char*>(&l_size), 4);
for (int i = 0; i < m_fields->m_triggeredCheckpointGameObjects.size(); i++) {
m_fields->m_triggeredCheckpointGameObjects[i].save(m_fields->m_outputStream);
for (int i = 0; i < m_fields->m_activatedCheckpoints.size(); i++) {
m_fields->m_activatedCheckpoints[i].save(m_fields->m_outputStream);
}
m_fields->m_savingState = SavingState::SaveTimePlayed;
// falls through
Expand Down

0 comments on commit e8c087a

Please sign in to comment.