mirror of
https://github.com/Oibaf66/frodo-wii.git
synced 2024-11-26 13:34:22 +01:00
Add version (if we change the format)
This commit is contained in:
parent
67beaa4ea5
commit
293e53bbe8
@ -5,11 +5,14 @@
|
|||||||
#include "game_info.hh"
|
#include "game_info.hh"
|
||||||
#include "utils.hh"
|
#include "utils.hh"
|
||||||
|
|
||||||
GameInfo::GameInfo()
|
#define VERSION_BASE (0x1978)
|
||||||
|
#define VERSION_MAGIC (VERSION_BASE + 0)
|
||||||
|
|
||||||
|
GameInfo::GameInfo(char *name, char *author, SDL_Surface *image)
|
||||||
{
|
{
|
||||||
this->name = NULL;
|
this->name = name;
|
||||||
this->author = NULL;
|
this->author = author;
|
||||||
this->screenshot = NULL;
|
this->screenshot = image;
|
||||||
}
|
}
|
||||||
|
|
||||||
GameInfo::~GameInfo()
|
GameInfo::~GameInfo()
|
||||||
@ -52,7 +55,7 @@ struct game_info *GameInfo::dump(size_t *out_sz)
|
|||||||
/* Allocate everything */
|
/* Allocate everything */
|
||||||
out = (struct game_info*)xmalloc(total_sz);
|
out = (struct game_info*)xmalloc(total_sz);
|
||||||
out->sz = total_sz;
|
out->sz = total_sz;
|
||||||
out->dummy = 0;
|
out->version_magic = VERSION_MAGIC;
|
||||||
out->author_off = 0; /* Starts AFTER the header */
|
out->author_off = 0; /* Starts AFTER the header */
|
||||||
out->name_off = out->author_off + strlen(this->author) + 1;
|
out->name_off = out->author_off + strlen(this->author) + 1;
|
||||||
out->screenshot_off = out->name_off + strlen(this->name) + 1;
|
out->screenshot_off = out->name_off + strlen(this->name) + 1;
|
||||||
@ -63,6 +66,7 @@ struct game_info *GameInfo::dump(size_t *out_sz)
|
|||||||
|
|
||||||
out->sz = htonl(out->sz);
|
out->sz = htonl(out->sz);
|
||||||
out->author_off = htons(out->author_off);
|
out->author_off = htons(out->author_off);
|
||||||
|
out->version_magic = htons(out->version_magic);
|
||||||
out->name_off = htons(out->name_off);
|
out->name_off = htons(out->name_off);
|
||||||
out->screenshot_off = htons(out->screenshot_off);
|
out->screenshot_off = htons(out->screenshot_off);
|
||||||
|
|
||||||
@ -74,6 +78,7 @@ void GameInfo::fromDump(struct game_info *gi, size_t sz)
|
|||||||
SDL_RWops *rw;
|
SDL_RWops *rw;
|
||||||
|
|
||||||
gi->sz = ntohl(gi->sz);
|
gi->sz = ntohl(gi->sz);
|
||||||
|
gi->version_magic = ntohs(gi->version_magic);
|
||||||
gi->author_off = ntohs(gi->author_off);
|
gi->author_off = ntohs(gi->author_off);
|
||||||
gi->name_off = ntohs(gi->name_off);
|
gi->name_off = ntohs(gi->name_off);
|
||||||
gi->screenshot_off = ntohs(gi->screenshot_off);
|
gi->screenshot_off = ntohs(gi->screenshot_off);
|
||||||
|
@ -6,17 +6,17 @@
|
|||||||
struct game_info
|
struct game_info
|
||||||
{
|
{
|
||||||
uint32_t sz;
|
uint32_t sz;
|
||||||
|
uint16_t version_magic;
|
||||||
uint16_t author_off;
|
uint16_t author_off;
|
||||||
uint16_t name_off;
|
uint16_t name_off;
|
||||||
uint16_t screenshot_off; /* In PNG format */
|
uint16_t screenshot_off; /* In PNG format */
|
||||||
uint16_t dummy;
|
|
||||||
uint8_t data[]; /* 4-byte aligned */
|
uint8_t data[]; /* 4-byte aligned */
|
||||||
};
|
};
|
||||||
|
|
||||||
class GameInfo
|
class GameInfo
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
GameInfo();
|
GameInfo(char *name = NULL, char *author = NULL, SDL_Surface *image = NULL);
|
||||||
|
|
||||||
~GameInfo();
|
~GameInfo();
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user