generated from sigonasr2/CPlusPlusProjectTemplate
Load and read data from save file for load file screen
Co-authored-by: sigonasr2 <sigonasr2@gmail.com>
This commit is contained in:
parent
d1d27b8a41
commit
e1f7312c07
Binary file not shown.
41
main.cpp
41
main.cpp
@ -33,6 +33,12 @@
|
||||
|
||||
using namespace olc;
|
||||
|
||||
struct SaveFileData{
|
||||
int frameTime;
|
||||
std::string playerName;
|
||||
int chapterNumber;
|
||||
};
|
||||
|
||||
std::vector<Object*> OBJECTS;
|
||||
const vd2d NO_NEIGHBOR = {-999,-999};
|
||||
SeasonI*GAME;
|
||||
@ -59,7 +65,7 @@ int MAP_WIDTH=-1;
|
||||
int MAP_HEIGHT=-1;
|
||||
Map*CURRENT_MAP=nullptr;
|
||||
std::map<MapName::Map,Map*> MAPS;
|
||||
int GAME_STATE = GameState::EDITOR;
|
||||
int GAME_STATE=GameState::FILE_LOAD_SELECT;
|
||||
vi2d SELECTED_TILE={0,0};
|
||||
vi2d HIGHLIGHTED_TILE={0,0};
|
||||
int EDITING_LAYER=layer::DYNAMIC;
|
||||
@ -168,6 +174,8 @@ bool SELECTING_A_MAP_FOR_TRIGGER=false;
|
||||
Trigger*LAST_PLACED_TRIGGER=nullptr;
|
||||
Map* ORIGINATING_MAP=nullptr;
|
||||
std::array<std::string,7> PARTY_MEMBER_NAMES={"PLAYER","NESS","PAULA","JEFF","ANNA","KING","POO"};
|
||||
std::array<SaveFileData,3> SAVE_FILE_DATA={{}};
|
||||
int CHAPTER_NUMBER=0;
|
||||
|
||||
/*
|
||||
[Choice1,Choice2,Choice3]
|
||||
@ -309,6 +317,25 @@ bool SeasonI::OnUserCreate(){
|
||||
AddItemToPlayerInventory(ItemName::TEE_BALL_BAT);
|
||||
AddItemToPlayerInventory(ItemName::FREEZE_PACKET);
|
||||
|
||||
|
||||
for (int i=0;i<3;i++) {
|
||||
if (std::filesystem::exists("save"+std::to_string(i))) {
|
||||
std::ifstream f("save"+std::to_string(i));
|
||||
std::string data;
|
||||
std::getline(f,data);
|
||||
int commaPos=data.find_last_of(" ",data.size()-2)+1;
|
||||
std::string chapterNumber=data.substr(commaPos,data.size());
|
||||
int prevCommaPos=commaPos;
|
||||
commaPos=data.find_last_of(" ",commaPos-2)+1;
|
||||
std::string playerName=data.substr(commaPos,prevCommaPos-commaPos);
|
||||
prevCommaPos=commaPos;
|
||||
commaPos=data.find_last_of(" ",commaPos-2)+1;
|
||||
std::string fileTime=data.substr(commaPos,prevCommaPos-commaPos);
|
||||
//printf("File time detected is %s\n",fileTime.c_str());
|
||||
SAVE_FILE_DATA[i]={frameTime:stoi(fileTime),playerName:playerName,chapterNumber:stoi(chapterNumber)};
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
#endif
|
||||
@ -2709,6 +2736,12 @@ void SeasonI::drawGame(){
|
||||
}
|
||||
|
||||
switch (GAME_STATE) {
|
||||
case GameState::FILE_LOAD_SELECT:{
|
||||
DrawDialogBox({4,4},{(int)(WIDTH-8),HEIGHT/4},Pixel(70, 33, 105,220),Pixel(62, 54, 69,220),Pixel(185, 148, 255,220));
|
||||
for (int i=0;i<3;i++) {
|
||||
DrawStringDecal({8.f,(float)(8+i*12)},SAVE_FILE_DATA[i].playerName+" Chapter "+std::to_string(SAVE_FILE_DATA[i].chapterNumber)+" "+std::to_string(SAVE_FILE_DATA[i].frameTime));
|
||||
}
|
||||
}break;
|
||||
case GameState::GAME_WORLD:
|
||||
case GameState::OVERWORLD_MENU:
|
||||
case GameState::OVERWORLD_POWER_MENU:
|
||||
@ -5226,6 +5259,9 @@ void SeasonI::SaveGameSaveData(int saveSlot) {
|
||||
file<<GAME_FLAGS[i]<<" ";
|
||||
}
|
||||
file<<CURRENT_MAP->myID<<" ";
|
||||
file<<frameCount<<" ";
|
||||
file<<PARTY_MEMBER_NAMES[0]<<" ";
|
||||
file<<CHAPTER_NUMBER<<" ";
|
||||
file.close();
|
||||
}
|
||||
|
||||
@ -5314,6 +5350,9 @@ void SeasonI::LoadGameSaveData(int saveSlot) {
|
||||
for (int i=0;i<playerCount;i++) {
|
||||
PARTY_MEMBER_OBJ[i]->SetPos(positions[i]);
|
||||
}
|
||||
frameCount=ReadIntFromStream(file);
|
||||
ReadStringFromStream(file);
|
||||
CHAPTER_NUMBER=ReadIntFromStream(file);
|
||||
}
|
||||
|
||||
#ifndef TEST_SUITE
|
||||
|
1
object.h
1
object.h
@ -73,7 +73,6 @@ class Object{
|
||||
:Object(id,name,{gridx*32-(spr->sprSize.x*0.5)*(scale.x-1),gridy*32-(spr->sprSize.y-4)*(scale.y-1)},spr,scale,color,animationSpd,temp,data) {}
|
||||
Object(int id,std::string name,vd2d pos,Animation*spr,vd2d scale={1,1},Pixel color=WHITE,int animationSpd=1,bool temp=false,ObjectExtraData data={moveTime:0,moveFreq:0,moveSpd:0})
|
||||
:spr(spr),pos(pos),id(id),name(name),color(color),animationSpd(animationSpd),temp(temp),extraData(data),startPos(pos) {
|
||||
printf("Extra data:%d %d %lf\n",extraData.moveFreq,extraData.moveTime,extraData.moveSpd);
|
||||
SetScale(scale);
|
||||
}
|
||||
virtual Object* CreateType(int id,std::string name,vd2d pos,Animation*spr,vd2d scale={1,1},Pixel color=WHITE,int animationSpd=1,bool temp=false,ObjectExtraData data={moveTime:0,moveFreq:0,moveSpd:0})=0;
|
||||
|
2
save0
2
save0
@ -1 +1 @@
|
||||
120 120 PLAYER 30 30 8 8 4 0 0 0 0 0 0 0 11 9 10 13 14 15 16 17 33 29 21 25 1 6 4 3 -1 -1 -1 147 231 120 120 NESS 30 30 8 8 4 0 0 0 0 0 0 0 6 33 34 29 30 31 32 0 3 -1 -1 -1 150 259 120 120 PAULA 30 30 8 8 4 0 0 0 0 0 0 0 6 21 22 23 24 37 38 0 3 -1 -1 -1 138 261 120 120 JEFF 30 30 8 8 4 0 0 0 0 0 0 0 1 0 0 3 -1 -1 -1 -999 -999 48 0 ANNA 30 0 0 0 4 0 0 0 0 0 0 0 0 0 3 -1 -1 -1 126 273 0 0 KING 30 30 8 8 4 0 0 0 0 0 0 0 1 0 0 3 -1 -1 -1 -999 -999 0 0 POO 30 30 8 8 4 0 0 0 0 0 0 0 1 0 0 3 -1 -1 -1 -999 -999 0 512 1 0 0 0 1 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
|
||||
120 120 PLAYER 30 30 8 8 4 0 0 0 0 0 0 0 11 9 10 13 14 15 16 17 33 29 21 25 1 6 4 3 -1 -1 -1 343 200 120 120 NESS 30 30 8 8 4 0 0 0 0 0 0 0 6 33 34 29 30 31 32 0 3 -1 -1 -1 343 200 120 120 PAULA 30 30 8 8 4 0 0 0 0 0 0 0 6 21 22 23 24 37 38 0 3 -1 -1 -1 343 200 120 120 JEFF 30 30 8 8 4 0 0 0 0 0 0 0 1 0 0 3 -1 -1 -1 -999 -999 120 120 ANNA 30 30 8 8 4 0 0 0 0 0 0 0 4 21 25 26 29 0 3 -1 -1 -1 343 200 120 120 KING 30 30 8 8 4 0 0 0 0 0 0 0 1 0 0 3 -1 -1 -1 -999 -999 120 120 POO 30 30 8 8 4 0 0 0 0 0 0 0 1 0 0 3 -1 -1 -1 -999 -999 67 6 6 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 6 8 3 3 3 10 10 10 10 12 12 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 2 2 2 2 2 2 2 2 5 11 512 0 0 0 0 1 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 408 PLAYER 0
|
Loading…
x
Reference in New Issue
Block a user