en una parte de mi codigo tengo esto:
Cita:
y me funciona, pero es algo raro, si guardo un mapa ejecutando desde el devc++, y luego lo cargo ejecutando el binario me da error, y si guardo en el binario y ejecuto en el dev para cargarlo tambien me da error.#include <iostream>
#include <fstream>
using namespace std;
void CargarMapa(char* filename)
{
ifstream mapa_guardado(filename, ios::in | ios::binary);
mapa_guardado.read(reinterpret_cast<char *>(&mymapa), sizeof(MAPA));
}
void GuardarMapa(char* filename)
{
ofstream mapa_guardado(filename, ios::out | ios::binary);
mapa_guardado.write(reinterpret_cast<char *>(&mymapa), sizeof(MAPA));
mapa_guardado.close();
}
#include <fstream>
using namespace std;
void CargarMapa(char* filename)
{
ifstream mapa_guardado(filename, ios::in | ios::binary);
mapa_guardado.read(reinterpret_cast<char *>(&mymapa), sizeof(MAPA));
}
void GuardarMapa(char* filename)
{
ofstream mapa_guardado(filename, ios::out | ios::binary);
mapa_guardado.write(reinterpret_cast<char *>(&mymapa), sizeof(MAPA));
mapa_guardado.close();
}
ya me extrañaba que fuese tan simple cargar y grabar algo.
el mapa que intento grabar es algo asi:
Cita:
typedef struct MAPA
{
Sqm sqms[ANCHO_MAPA][ALTO_MAPA];
};
{
Sqm sqms[ANCHO_MAPA][ALTO_MAPA];
};
Cita:
ojala me ayuden diciendo que hice mal y porque no me funciona, y ojala como arreglarlo class Sqm
{
public:
Sqm();
~Sqm();
Tile* floor;
Border* border;
bool hay_border; //si tiene un border
Wall *wall; /*si hay pared no hay objetos*/
Object *things[10]; /*por ahora el max. de objetos en un sqm son 10*/
Creature *creatura;
unsigned short ActionID;
}
{
public:
Sqm();
~Sqm();
Tile* floor;
Border* border;
bool hay_border; //si tiene un border
Wall *wall; /*si hay pared no hay objetos*/
Object *things[10]; /*por ahora el max. de objetos en un sqm son 10*/
Creature *creatura;
unsigned short ActionID;
}