generated from sigonasr2/CPlusPlusProjectTemplate
Saving/loading files works fine and handling objects
Co-authored-by: sigonasr2 <sigonasr2@gmail.com>
This commit is contained in:
parent
c57aea3cf6
commit
d1d27b8a41
Binary file not shown.
80
main.cpp
80
main.cpp
@ -1474,6 +1474,9 @@ void SeasonI::keyUpdates() {
|
|||||||
if (GetKey(F6).bPressed) {
|
if (GetKey(F6).bPressed) {
|
||||||
SaveGameSaveData(0);
|
SaveGameSaveData(0);
|
||||||
}
|
}
|
||||||
|
if (GetKey(F7).bPressed) {
|
||||||
|
LoadGameSaveData(0);
|
||||||
|
}
|
||||||
|
|
||||||
if (GetKey(O).bPressed) {
|
if (GetKey(O).bPressed) {
|
||||||
StartEffect(FOUNTAIN_EFFECT);
|
StartEffect(FOUNTAIN_EFFECT);
|
||||||
@ -5229,65 +5232,73 @@ void SeasonI::SaveGameSaveData(int saveSlot) {
|
|||||||
int SeasonI::ReadIntFromStream(std::ifstream&f) {
|
int SeasonI::ReadIntFromStream(std::ifstream&f) {
|
||||||
int temp;
|
int temp;
|
||||||
f>>temp;
|
f>>temp;
|
||||||
|
printf("READ %d\n",temp);
|
||||||
return temp;
|
return temp;
|
||||||
};
|
};
|
||||||
float SeasonI::ReadFloatFromStream(std::ifstream&f) {
|
float SeasonI::ReadFloatFromStream(std::ifstream&f) {
|
||||||
float temp;
|
float temp;
|
||||||
f>>temp;
|
f>>temp;
|
||||||
|
printf("READ %f\n",temp);
|
||||||
return temp;
|
return temp;
|
||||||
};
|
};
|
||||||
double SeasonI::ReadDoubleFromStream(std::ifstream&f) {
|
double SeasonI::ReadDoubleFromStream(std::ifstream&f) {
|
||||||
double temp;
|
double temp;
|
||||||
f>>temp;
|
f>>temp;
|
||||||
|
printf("READ %lf\n",temp);
|
||||||
return temp;
|
return temp;
|
||||||
};
|
};
|
||||||
std::string SeasonI::ReadStringFromStream(std::ifstream&f) {
|
std::string SeasonI::ReadStringFromStream(std::ifstream&f) {
|
||||||
std::string temp;
|
std::string temp;
|
||||||
f>>temp;
|
f>>temp;
|
||||||
|
printf("READ %s\n",temp.c_str());
|
||||||
return temp;
|
return temp;
|
||||||
};
|
};
|
||||||
|
|
||||||
void SeasonI::LoadGameSaveData(int saveSlot) {
|
void SeasonI::LoadGameSaveData(int saveSlot) {
|
||||||
std::ifstream file("save"+std::to_string(saveSlot));
|
std::ifstream file("save"+std::to_string(saveSlot));
|
||||||
|
std::array<vd2d,4> positions={vd2d{0,0}};
|
||||||
|
int playerCount=0;
|
||||||
for (int i=PLAYER;i<7;i++) {
|
for (int i=PLAYER;i<7;i++) {
|
||||||
PARTY_MEMBER_STATS[i]->_SetDirectHP(ReadIntFromStream(file));
|
PARTY_MEMBER_STATS[i]->_SetDirectHP(ReadIntFromStream(file));
|
||||||
PARTY_MEMBER_STATS[i]->stats.maxHP=ReadIntFromStream(file);
|
PARTY_MEMBER_STATS[i]->stats.maxHP=ReadIntFromStream(file);
|
||||||
|
std::string memberName=ReadStringFromStream(file);
|
||||||
if (PARTY_MEMBER_STATS[i]->obj!=nullptr) {
|
if (PARTY_MEMBER_STATS[i]->obj!=nullptr) {
|
||||||
PARTY_MEMBER_STATS[i]->obj->name=ReadStringFromStream(file);
|
PARTY_MEMBER_STATS[i]->obj->name=memberName;
|
||||||
PARTY_MEMBER_STATS[i]->_SetDirectPP(ReadIntFromStream(file));
|
}
|
||||||
PARTY_MEMBER_STATS[i]->stats.maxPP=ReadIntFromStream(file);
|
PARTY_MEMBER_STATS[i]->_SetDirectPP(ReadIntFromStream(file));
|
||||||
PARTY_MEMBER_STATS[i]->stats.baseAtk=ReadIntFromStream(file);
|
PARTY_MEMBER_STATS[i]->stats.maxPP=ReadIntFromStream(file);
|
||||||
PARTY_MEMBER_STATS[i]->stats.speed=ReadIntFromStream(file);
|
PARTY_MEMBER_STATS[i]->stats.baseAtk=ReadIntFromStream(file);
|
||||||
int resistanceSize = ReadIntFromStream(file);
|
PARTY_MEMBER_STATS[i]->stats.speed=ReadIntFromStream(file);
|
||||||
for (int i=0;i<resistanceSize;i++) {
|
int resistanceSize = ReadIntFromStream(file);
|
||||||
PARTY_MEMBER_STATS[i]->stats.resistances[i]=ReadIntFromStream(file);
|
for (int j=0;j<resistanceSize;j++) {
|
||||||
}
|
PARTY_MEMBER_STATS[i]->stats.resistances[j]=ReadIntFromStream(file);
|
||||||
PARTY_MEMBER_STATS[i]->stats.damageReduction=ReadIntFromStream(file);
|
}
|
||||||
PARTY_MEMBER_STATS[i]->stats.smart=ReadIntFromStream(file)?true:false;
|
PARTY_MEMBER_STATS[i]->stats.damageReduction=ReadIntFromStream(file);
|
||||||
PARTY_MEMBER_STATS[i]->stats.dumb=ReadIntFromStream(file)?true:false;
|
PARTY_MEMBER_STATS[i]->stats.smart=ReadIntFromStream(file)?true:false;
|
||||||
int movesetSize=ReadIntFromStream(file);
|
PARTY_MEMBER_STATS[i]->stats.dumb=ReadIntFromStream(file)?true:false;
|
||||||
PARTY_MEMBER_STATS[i]->moveSet.clear();
|
int movesetSize=ReadIntFromStream(file);
|
||||||
for (int i=0;i<movesetSize;i++) {
|
PARTY_MEMBER_STATS[i]->moveSet.clear();
|
||||||
PARTY_MEMBER_STATS[i]->moveSet.push_back(MOVELIST[(BattleMoveName)ReadIntFromStream(file)]);
|
for (int j=0;j<movesetSize;j++) {
|
||||||
}
|
PARTY_MEMBER_STATS[i]->moveSet.push_back(MOVELIST[(BattleMoveName)ReadIntFromStream(file)]);
|
||||||
int statusEffectsSize=ReadIntFromStream(file);
|
}
|
||||||
PARTY_MEMBER_STATS[i]->statusEffects.clear();
|
int statusEffectsSize=ReadIntFromStream(file);
|
||||||
for (int i=0;i<statusEffectsSize;i++) {
|
PARTY_MEMBER_STATS[i]->statusEffects.clear();
|
||||||
PARTY_MEMBER_STATS[i]->statusEffects[(Property)ReadIntFromStream(file)]=ReadIntFromStream(file);
|
for (int j=0;j<statusEffectsSize;j++) {
|
||||||
}
|
PARTY_MEMBER_STATS[i]->statusEffects[(Property)ReadIntFromStream(file)]=ReadIntFromStream(file);
|
||||||
int equipmentSize=ReadIntFromStream(file);
|
}
|
||||||
for (int i=0;i<equipmentSize;i++) {
|
int equipmentSize=ReadIntFromStream(file);
|
||||||
int equipID=ReadIntFromStream(file);
|
for (int j=0;j<equipmentSize;j++) {
|
||||||
if (equipID!=-1) {
|
int equipID=ReadIntFromStream(file);
|
||||||
PARTY_MEMBER_STATS[i]->equipment[i]=ITEMLIST[(ItemName)equipID];
|
if (equipID!=-1) {
|
||||||
}
|
PARTY_MEMBER_STATS[i]->equipment[j]=ITEMLIST[(ItemName)equipID];
|
||||||
}
|
|
||||||
double xPos=ReadDoubleFromStream(file);
|
|
||||||
double yPos=ReadDoubleFromStream(file);
|
|
||||||
if (PARTY_MEMBER_STATS[i]->obj!=nullptr) {
|
|
||||||
PARTY_MEMBER_STATS[i]->obj->Move({xPos,yPos});
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
double xPos=ReadDoubleFromStream(file);
|
||||||
|
double yPos=ReadDoubleFromStream(file);
|
||||||
|
if (PARTY_MEMBER_STATS[i]->obj!=nullptr) {
|
||||||
|
PARTY_MEMBER_STATS[i]->obj->SetPos({xPos,yPos});
|
||||||
|
positions[playerCount++]={xPos,yPos};
|
||||||
|
}
|
||||||
}
|
}
|
||||||
int inventorySize=ReadIntFromStream(file);
|
int inventorySize=ReadIntFromStream(file);
|
||||||
PARTY_INVENTORY.clear();
|
PARTY_INVENTORY.clear();
|
||||||
@ -5300,6 +5311,9 @@ void SeasonI::LoadGameSaveData(int saveSlot) {
|
|||||||
}
|
}
|
||||||
CURRENT_MAP=MAPS[(MapName::Map)ReadIntFromStream(file)];
|
CURRENT_MAP=MAPS[(MapName::Map)ReadIntFromStream(file)];
|
||||||
LoadMap(CURRENT_MAP);
|
LoadMap(CURRENT_MAP);
|
||||||
|
for (int i=0;i<playerCount;i++) {
|
||||||
|
PARTY_MEMBER_OBJ[i]->SetPos(positions[i]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef TEST_SUITE
|
#ifndef TEST_SUITE
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
extern std::vector<Object*> OBJECTS;
|
extern std::vector<Object*> OBJECTS;
|
||||||
|
|
||||||
|
//Moves an object relative to its current position.
|
||||||
void Object::Move(vd2d move) {
|
void Object::Move(vd2d move) {
|
||||||
if (move.y==0) {
|
if (move.y==0) {
|
||||||
pos+=move;
|
pos+=move;
|
||||||
|
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 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
|
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
|
Loading…
x
Reference in New Issue
Block a user