Changed all remaining code to use the GfxObj class to keep frames data. This allows for more uniform processing during rendering, and also fixes the display of dialogue faces for BRA.

svn-id: r32833
This commit is contained in:
Nicola Mettifogo 2008-06-29 09:30:32 +00:00
parent 7a9e911896
commit d8645297cd
10 changed files with 93 additions and 83 deletions

View file

@ -51,8 +51,8 @@ class DialogueManager {
bool _askPassword; bool _askPassword;
bool isNpc; bool isNpc;
Frames *_questioner; GfxObj *_questioner;
Frames *_answerer; GfxObj *_answerer;
Question *_q; Question *_q;
@ -229,7 +229,7 @@ void DialogueManager::run() {
answer = 0; answer = 0;
displayQuestion(); displayQuestion();
if (_engineFlags & kEngineQuit) if (_engineFlags & kEngineQuit)
return; return;

View file

@ -55,13 +55,13 @@ public:
virtual Script* loadLocation(const char *name) = 0; virtual Script* loadLocation(const char *name) = 0;
virtual Script* loadScript(const char* name) = 0; virtual Script* loadScript(const char* name) = 0;
virtual Frames* loadTalk(const char *name) = 0; virtual GfxObj* loadTalk(const char *name) = 0;
virtual Frames* loadObjects(const char *name) = 0; virtual GfxObj* loadObjects(const char *name) = 0;
virtual Frames* loadPointer(const char *name) = 0; virtual Frames* loadPointer(const char *name) = 0;
virtual Frames* loadHead(const char* name) = 0; virtual GfxObj* loadHead(const char* name) = 0;
virtual Font* loadFont(const char* name) = 0; virtual Font* loadFont(const char* name) = 0;
virtual Frames* loadStatic(const char* name) = 0; virtual GfxObj* loadStatic(const char* name) = 0;
virtual Frames* loadFrames(const char* name) = 0; virtual GfxObj* loadFrames(const char* name) = 0;
virtual void loadSlide(BackgroundInfo& info, const char *filename) = 0; virtual void loadSlide(BackgroundInfo& info, const char *filename) = 0;
virtual void loadScenery(BackgroundInfo& info, const char* background, const char* mask, const char* path) = 0; virtual void loadScenery(BackgroundInfo& info, const char* background, const char* mask, const char* path) = 0;
virtual Table* loadTable(const char* name) = 0; virtual Table* loadTable(const char* name) = 0;
@ -147,13 +147,13 @@ public:
Script* loadLocation(const char *name); Script* loadLocation(const char *name);
Script* loadScript(const char* name); Script* loadScript(const char* name);
Frames* loadTalk(const char *name); GfxObj* loadTalk(const char *name);
Frames* loadObjects(const char *name); GfxObj* loadObjects(const char *name);
Frames* loadPointer(const char *name); Frames* loadPointer(const char *name);
Frames* loadHead(const char* name); GfxObj* loadHead(const char* name);
Font* loadFont(const char* name); Font* loadFont(const char* name);
Frames* loadStatic(const char* name); GfxObj* loadStatic(const char* name);
Frames* loadFrames(const char* name); GfxObj* loadFrames(const char* name);
void loadSlide(BackgroundInfo& info, const char *filename); void loadSlide(BackgroundInfo& info, const char *filename);
void loadScenery(BackgroundInfo& info, const char* background, const char* mask, const char* path); void loadScenery(BackgroundInfo& info, const char* background, const char* mask, const char* path);
Table* loadTable(const char* name); Table* loadTable(const char* name);
@ -181,13 +181,13 @@ public:
Script* loadLocation(const char *name); Script* loadLocation(const char *name);
Script* loadScript(const char* name); Script* loadScript(const char* name);
Frames* loadTalk(const char *name); GfxObj* loadTalk(const char *name);
Frames* loadObjects(const char *name); GfxObj* loadObjects(const char *name);
Frames* loadPointer(const char *name); Frames* loadPointer(const char *name);
Frames* loadHead(const char* name); GfxObj* loadHead(const char* name);
Font* loadFont(const char* name); Font* loadFont(const char* name);
Frames* loadStatic(const char* name); GfxObj* loadStatic(const char* name);
Frames* loadFrames(const char* name); GfxObj* loadFrames(const char* name);
void loadSlide(BackgroundInfo& info, const char *filename); void loadSlide(BackgroundInfo& info, const char *filename);
void loadScenery(BackgroundInfo& info, const char* background, const char* mask, const char* path); void loadScenery(BackgroundInfo& info, const char* background, const char* mask, const char* path);
Table* loadTable(const char* name); Table* loadTable(const char* name);
@ -220,13 +220,13 @@ public:
void setLanguage(uint16 language); void setLanguage(uint16 language);
Script* loadLocation(const char *name); Script* loadLocation(const char *name);
Script* loadScript(const char* name); Script* loadScript(const char* name);
Frames* loadTalk(const char *name); GfxObj* loadTalk(const char *name);
Frames* loadObjects(const char *name); GfxObj* loadObjects(const char *name);
Frames* loadPointer(const char *name); Frames* loadPointer(const char *name);
Frames* loadHead(const char* name); GfxObj* loadHead(const char* name);
Font* loadFont(const char* name); Font* loadFont(const char* name);
Frames* loadStatic(const char* name); GfxObj* loadStatic(const char* name);
Frames* loadFrames(const char* name); GfxObj* loadFrames(const char* name);
void loadSlide(BackgroundInfo& info, const char *filename); void loadSlide(BackgroundInfo& info, const char *filename);
void loadScenery(BackgroundInfo& info, const char* name, const char* mask, const char* path); void loadScenery(BackgroundInfo& info, const char* name, const char* mask, const char* path);
Table* loadTable(const char* name); Table* loadTable(const char* name);
@ -248,10 +248,10 @@ public:
AmigaDisk_br(Parallaction *vm); AmigaDisk_br(Parallaction *vm);
virtual ~AmigaDisk_br(); virtual ~AmigaDisk_br();
Frames* loadTalk(const char *name); GfxObj* loadTalk(const char *name);
Font* loadFont(const char* name); Font* loadFont(const char* name);
Frames* loadStatic(const char* name); GfxObj* loadStatic(const char* name);
Frames* loadFrames(const char* name); GfxObj* loadFrames(const char* name);
void loadSlide(BackgroundInfo& info, const char *filename); void loadSlide(BackgroundInfo& info, const char *filename);
void loadScenery(BackgroundInfo& info, const char* name, const char* mask, const char* path); void loadScenery(BackgroundInfo& info, const char* name, const char* mask, const char* path);
}; };

View file

@ -138,7 +138,7 @@ DosDisk_br::DosDisk_br(Parallaction* vm) : _vm(vm) {
DosDisk_br::~DosDisk_br() { DosDisk_br::~DosDisk_br() {
} }
Frames* DosDisk_br::loadTalk(const char *name) { GfxObj* DosDisk_br::loadTalk(const char *name) {
debugC(5, kDebugDisk, "DosDisk_br::loadTalk(%s)", name); debugC(5, kDebugDisk, "DosDisk_br::loadTalk(%s)", name);
Common::File stream; Common::File stream;
@ -151,7 +151,7 @@ Frames* DosDisk_br::loadTalk(const char *name) {
errorFileNotFound(path); errorFileNotFound(path);
} }
return createSprites(stream); return new GfxObj(0, createSprites(stream), name);
} }
Script* DosDisk_br::loadLocation(const char *name) { Script* DosDisk_br::loadLocation(const char *name) {
@ -184,7 +184,7 @@ Script* DosDisk_br::loadScript(const char* name) {
} }
// there are no Head resources in Big Red Adventure // there are no Head resources in Big Red Adventure
Frames* DosDisk_br::loadHead(const char* name) { GfxObj* DosDisk_br::loadHead(const char* name) {
debugC(5, kDebugDisk, "DosDisk_br::loadHead"); debugC(5, kDebugDisk, "DosDisk_br::loadHead");
return 0; return 0;
} }
@ -235,7 +235,7 @@ Font* DosDisk_br::loadFont(const char* name) {
} }
Frames* DosDisk_br::loadObjects(const char *name) { GfxObj* DosDisk_br::loadObjects(const char *name) {
debugC(5, kDebugDisk, "DosDisk_br::loadObjects"); debugC(5, kDebugDisk, "DosDisk_br::loadObjects");
return 0; return 0;
} }
@ -244,7 +244,7 @@ void genSlidePath(char *path, const char* name) {
sprintf(path, "%s.bmp", name); sprintf(path, "%s.bmp", name);
} }
Frames* DosDisk_br::loadStatic(const char* name) { GfxObj* DosDisk_br::loadStatic(const char* name) {
debugC(5, kDebugDisk, "DosDisk_br::loadStatic"); debugC(5, kDebugDisk, "DosDisk_br::loadStatic");
char path[PATH_LEN]; char path[PATH_LEN];
@ -256,7 +256,7 @@ Frames* DosDisk_br::loadStatic(const char* name) {
Graphics::Surface *surf = new Graphics::Surface; Graphics::Surface *surf = new Graphics::Surface;
loadBitmap(stream, *surf, 0); loadBitmap(stream, *surf, 0);
return new SurfaceToFrames(surf); return new GfxObj(0, new SurfaceToFrames(surf), name);
} }
Sprites* DosDisk_br::createSprites(Common::ReadStream &stream) { Sprites* DosDisk_br::createSprites(Common::ReadStream &stream) {
@ -280,7 +280,7 @@ Sprites* DosDisk_br::createSprites(Common::ReadStream &stream) {
return sprites; return sprites;
} }
Frames* DosDisk_br::loadFrames(const char* name) { GfxObj* DosDisk_br::loadFrames(const char* name) {
debugC(5, kDebugDisk, "DosDisk_br::loadFrames"); debugC(5, kDebugDisk, "DosDisk_br::loadFrames");
char path[PATH_LEN]; char path[PATH_LEN];
@ -291,7 +291,7 @@ Frames* DosDisk_br::loadFrames(const char* name) {
errorFileNotFound(path); errorFileNotFound(path);
return createSprites(stream); return new GfxObj(0, createSprites(stream), name);
} }
// Slides in Nippon Safes are basically screen-sized pictures with valid // Slides in Nippon Safes are basically screen-sized pictures with valid
@ -552,7 +552,7 @@ void AmigaDisk_br::loadSlide(BackgroundInfo& info, const char *name) {
return; return;
} }
Frames* AmigaDisk_br::loadStatic(const char* name) { GfxObj* AmigaDisk_br::loadStatic(const char* name) {
debugC(1, kDebugDisk, "AmigaDisk_br::loadStatic '%s'", name); debugC(1, kDebugDisk, "AmigaDisk_br::loadStatic '%s'", name);
char path[PATH_LEN]; char path[PATH_LEN];
@ -570,7 +570,7 @@ Frames* AmigaDisk_br::loadStatic(const char* name) {
free(pal); free(pal);
return new SurfaceToFrames(surf); return new GfxObj(0, new SurfaceToFrames(surf));
} }
Sprites* AmigaDisk_br::createSprites(const char *path) { Sprites* AmigaDisk_br::createSprites(const char *path) {
@ -600,22 +600,22 @@ Sprites* AmigaDisk_br::createSprites(const char *path) {
return sprites; return sprites;
} }
Frames* AmigaDisk_br::loadFrames(const char* name) { GfxObj* AmigaDisk_br::loadFrames(const char* name) {
debugC(1, kDebugDisk, "AmigaDisk_br::loadFrames '%s'", name); debugC(1, kDebugDisk, "AmigaDisk_br::loadFrames '%s'", name);
char path[PATH_LEN]; char path[PATH_LEN];
sprintf(path, "%s/anims/%s", _partPath, name); sprintf(path, "%s/anims/%s", _partPath, name);
return createSprites(path); return new GfxObj(0, createSprites(path));
} }
Frames* AmigaDisk_br::loadTalk(const char *name) { GfxObj* AmigaDisk_br::loadTalk(const char *name) {
debugC(1, kDebugDisk, "AmigaDisk_br::loadTalk '%s'", name); debugC(1, kDebugDisk, "AmigaDisk_br::loadTalk '%s'", name);
char path[PATH_LEN]; char path[PATH_LEN];
sprintf(path, "%s/talks/%s.tal", _partPath, name); sprintf(path, "%s/talks/%s.tal", _partPath, name);
return createSprites(path); return new GfxObj(0, createSprites(path));
} }
Font* AmigaDisk_br::loadFont(const char* name) { Font* AmigaDisk_br::loadFont(const char* name) {

View file

@ -385,12 +385,12 @@ Cnv* DosDisk_ns::loadCnv(const char *filename) {
return new Cnv(numFrames, width, height, data); return new Cnv(numFrames, width, height, data);
} }
Frames* DosDisk_ns::loadTalk(const char *name) { GfxObj* DosDisk_ns::loadTalk(const char *name) {
const char *ext = strstr(name, ".talk"); const char *ext = strstr(name, ".talk");
if (ext != NULL) { if (ext != NULL) {
// npc talk // npc talk
return loadCnv(name); return new GfxObj(0, loadCnv(name), name);
} }
@ -401,7 +401,7 @@ Frames* DosDisk_ns::loadTalk(const char *name) {
sprintf(v20, "%stal", name); sprintf(v20, "%stal", name);
} }
return loadExternalCnv(v20); return new GfxObj(0, loadExternalCnv(v20), name);
} }
Script* DosDisk_ns::loadLocation(const char *name) { Script* DosDisk_ns::loadLocation(const char *name) {
@ -434,14 +434,14 @@ Script* DosDisk_ns::loadScript(const char* name) {
return new Script(new DummyArchiveStream(_resArchive), true); return new Script(new DummyArchiveStream(_resArchive), true);
} }
Frames* DosDisk_ns::loadHead(const char* name) { GfxObj* DosDisk_ns::loadHead(const char* name) {
char path[PATH_LEN]; char path[PATH_LEN];
sprintf(path, "%shead", name); sprintf(path, "%shead", name);
path[8] = '\0'; path[8] = '\0';
return loadExternalStaticCnv(path); return new GfxObj(0, loadExternalStaticCnv(path));
} }
@ -457,15 +457,15 @@ Font* DosDisk_ns::loadFont(const char* name) {
} }
Frames* DosDisk_ns::loadObjects(const char *name) { GfxObj* DosDisk_ns::loadObjects(const char *name) {
char path[PATH_LEN]; char path[PATH_LEN];
sprintf(path, "%sobj", name); sprintf(path, "%sobj", name);
return loadExternalCnv(path); return new GfxObj(0, loadExternalCnv(path), name);
} }
Frames* DosDisk_ns::loadStatic(const char* name) { GfxObj* DosDisk_ns::loadStatic(const char* name) {
char path[PATH_LEN]; char path[PATH_LEN];
@ -487,11 +487,11 @@ Frames* DosDisk_ns::loadStatic(const char* name) {
Graphics::PackBitsReadStream decoder(_resArchive); Graphics::PackBitsReadStream decoder(_resArchive);
decoder.read(cnv->pixels, w*h); decoder.read(cnv->pixels, w*h);
return new SurfaceToFrames(cnv); return new GfxObj(0, new SurfaceToFrames(cnv), name);
} }
Frames* DosDisk_ns::loadFrames(const char* name) { GfxObj* DosDisk_ns::loadFrames(const char* name) {
return loadCnv(name); return new GfxObj(0, loadCnv(name), name);
} }
// //
@ -1025,7 +1025,7 @@ Frames* AmigaDisk_ns::loadPointer(const char* name) {
return makeStaticCnv(stream); return makeStaticCnv(stream);
} }
Frames* AmigaDisk_ns::loadStatic(const char* name) { GfxObj* AmigaDisk_ns::loadStatic(const char* name) {
debugC(1, kDebugDisk, "AmigaDisk_ns::loadStatic '%s'", name); debugC(1, kDebugDisk, "AmigaDisk_ns::loadStatic '%s'", name);
Common::SeekableReadStream *s = openArchivedFile(name, true); Common::SeekableReadStream *s = openArchivedFile(name, true);
@ -1033,7 +1033,7 @@ Frames* AmigaDisk_ns::loadStatic(const char* name) {
delete s; delete s;
return cnv; return new GfxObj(0, cnv, name);
} }
Common::SeekableReadStream *AmigaDisk_ns::openArchivedFile(const char* name, bool errorOnFileNotFound) { Common::SeekableReadStream *AmigaDisk_ns::openArchivedFile(const char* name, bool errorOnFileNotFound) {
@ -1258,7 +1258,7 @@ void AmigaDisk_ns::loadSlide(BackgroundInfo& info, const char *name) {
return; return;
} }
Frames* AmigaDisk_ns::loadFrames(const char* name) { GfxObj* AmigaDisk_ns::loadFrames(const char* name) {
debugC(1, kDebugDisk, "AmigaDisk_ns::loadFrames '%s'", name); debugC(1, kDebugDisk, "AmigaDisk_ns::loadFrames '%s'", name);
Common::SeekableReadStream *s; Common::SeekableReadStream *s;
@ -1273,10 +1273,10 @@ Frames* AmigaDisk_ns::loadFrames(const char* name) {
Cnv *cnv = makeCnv(*s); Cnv *cnv = makeCnv(*s);
delete s; delete s;
return cnv; return new GfxObj(0, cnv, name);
} }
Frames* AmigaDisk_ns::loadHead(const char* name) { GfxObj* AmigaDisk_ns::loadHead(const char* name) {
debugC(1, kDebugDisk, "AmigaDisk_ns::loadHead '%s'", name); debugC(1, kDebugDisk, "AmigaDisk_ns::loadHead '%s'", name);
char path[PATH_LEN]; char path[PATH_LEN];
@ -1287,11 +1287,11 @@ Frames* AmigaDisk_ns::loadHead(const char* name) {
delete s; delete s;
return cnv; return new GfxObj(0, cnv, name);
} }
Frames* AmigaDisk_ns::loadObjects(const char *name) { GfxObj* AmigaDisk_ns::loadObjects(const char *name) {
debugC(1, kDebugDisk, "AmigaDisk_ns::loadObjects"); debugC(1, kDebugDisk, "AmigaDisk_ns::loadObjects");
char path[PATH_LEN]; char path[PATH_LEN];
@ -1305,11 +1305,11 @@ Frames* AmigaDisk_ns::loadObjects(const char *name) {
Cnv *cnv = makeCnv(*s); Cnv *cnv = makeCnv(*s);
delete s; delete s;
return cnv; return new GfxObj(0, cnv, name);
} }
Frames* AmigaDisk_ns::loadTalk(const char *name) { GfxObj* AmigaDisk_ns::loadTalk(const char *name) {
debugC(1, kDebugDisk, "AmigaDisk_ns::loadTalk '%s'", name); debugC(1, kDebugDisk, "AmigaDisk_ns::loadTalk '%s'", name);
Common::SeekableReadStream *s; Common::SeekableReadStream *s;
@ -1328,7 +1328,7 @@ Frames* AmigaDisk_ns::loadTalk(const char *name) {
Cnv *cnv = makeCnv(*s); Cnv *cnv = makeCnv(*s);
delete s; delete s;
return cnv; return new GfxObj(0, cnv, name);
} }
Table* AmigaDisk_ns::loadTable(const char* name) { Table* AmigaDisk_ns::loadTable(const char* name) {

View file

@ -86,27 +86,27 @@ void GfxObj::clearFlags(uint32 flags) {
} }
GfxObj* Gfx::loadAnim(const char *name) { GfxObj* Gfx::loadAnim(const char *name) {
Frames *frames = _disk->loadFrames(name); GfxObj *obj = _disk->loadFrames(name);
GfxObj *obj = new GfxObj(kGfxObjTypeAnim, frames, name);
assert(obj); assert(obj);
obj->type = kGfxObjTypeAnim;
return obj; return obj;
} }
GfxObj* Gfx::loadGet(const char *name) { GfxObj* Gfx::loadGet(const char *name) {
Frames *frames = _disk->loadStatic(name); GfxObj *obj = _disk->loadStatic(name);
GfxObj *obj = new GfxObj(kGfxObjTypeGet, frames, name);
assert(obj); assert(obj);
obj->type = kGfxObjTypeGet;
return obj; return obj;
} }
GfxObj* Gfx::loadDoor(const char *name) { GfxObj* Gfx::loadDoor(const char *name) {
Frames *frames = _disk->loadFrames(name); GfxObj *obj = _disk->loadFrames(name);
GfxObj *obj = new GfxObj(kGfxObjTypeDoor, frames, name);
assert(obj); assert(obj);
obj->type = kGfxObjTypeDoor;
return obj; return obj;
} }

View file

@ -356,7 +356,17 @@ void Gfx::drawItems() {
Graphics::Surface *surf = g_system->lockScreen(); Graphics::Surface *surf = g_system->lockScreen();
for (uint i = 0; i < _numItems; i++) { for (uint i = 0; i < _numItems; i++) {
blt(_items[i].rect, _items[i].data->getData(_items[i].frame), surf, LAYER_FOREGROUND, _items[i].transparentColor); GfxObj *obj = _items[i].data;
Common::Rect rect;
obj->getRect(obj->frame, rect);
rect.translate(obj->x, obj->y);
if (obj->getSize(obj->frame) == obj->getRawSize(obj->frame)) {
blt(rect, obj->getData(obj->frame), surf, LAYER_FOREGROUND, _items[i].transparentColor);
} else {
unpackBlt(rect, obj->getData(obj->frame), obj->getRawSize(obj->frame), surf, LAYER_FOREGROUND, _items[i].transparentColor);
}
} }
g_system->unlockScreen(); g_system->unlockScreen();
} }
@ -949,7 +959,7 @@ Gfx::~Gfx() {
int Gfx::setItem(Frames* frames, uint16 x, uint16 y, byte transparentColor) { int Gfx::setItem(GfxObj* frames, uint16 x, uint16 y, byte transparentColor) {
int id = _numItems; int id = _numItems;
_items[id].data = frames; _items[id].data = frames;
@ -965,9 +975,9 @@ int Gfx::setItem(Frames* frames, uint16 x, uint16 y, byte transparentColor) {
void Gfx::setItemFrame(uint item, uint16 f) { void Gfx::setItemFrame(uint item, uint16 f) {
assert(item < _numItems); assert(item < _numItems);
_items[item].frame = f; _items[item].data->frame = f;
_items[item].data->getRect(f, _items[item].rect); _items[item].data->x = _items[item].x;
_items[item].rect.moveTo(_items[item].x, _items[item].y); _items[item].data->y = _items[item].y;
} }
Gfx::Balloon* Gfx::getBalloon(uint id) { Gfx::Balloon* Gfx::getBalloon(uint id) {

View file

@ -157,11 +157,11 @@ struct SurfaceToMultiFrames : public Frames {
r.setHeight(_height); r.setHeight(_height);
} }
uint getRawSize(uint16 index) { uint getRawSize(uint16 index) {
assert(index == 0); assert(index < _num);
return getSize(index); return getSize(index);
} }
uint getSize(uint16 index) { uint getSize(uint16 index) {
assert(index == 0); assert(index < _num);
return _width * _height; return _width * _height;
} }
@ -487,7 +487,7 @@ public:
void getStringExtent(Font *font, char *text, uint16 maxwidth, int16* width, int16* height); void getStringExtent(Font *font, char *text, uint16 maxwidth, int16* width, int16* height);
// other items // other items
int setItem(Frames* frames, uint16 x, uint16 y, byte transparentColor = 0); int setItem(GfxObj* obj, uint16 x, uint16 y, byte transparentColor = 0);
void setItemFrame(uint item, uint16 f); void setItemFrame(uint item, uint16 f);
void hideDialogueStuff(); void hideDialogueStuff();
void freeBalloons(); void freeBalloons();
@ -549,7 +549,7 @@ protected:
Graphics::Surface _bitmapMask; Graphics::Surface _bitmapMask;
int32 getRenderMode(const char *type); int32 getRenderMode(const char *type);
protected: public:
static int16 _dialogueBalloonX[5]; static int16 _dialogueBalloonX[5];
struct Balloon { struct Balloon {
@ -567,7 +567,7 @@ protected:
uint16 x; uint16 x;
uint16 y; uint16 y;
uint16 frame; uint16 frame;
Frames *data; GfxObj *data;
byte transparentColor; byte transparentColor;
Common::Rect rect; Common::Rect rect;

View file

@ -122,7 +122,7 @@ int Parallaction_br::guiShowMenu() {
// TODO: filter menu entries according to progress in game // TODO: filter menu entries according to progress in game
#define NUM_MENULINES 7 #define NUM_MENULINES 7
Frames *_lines[NUM_MENULINES]; GfxObj *_lines[NUM_MENULINES];
const char *menuStrings[NUM_MENULINES] = { const char *menuStrings[NUM_MENULINES] = {
"SEE INTRO", "SEE INTRO",
@ -157,7 +157,7 @@ int Parallaction_br::guiShowMenu() {
int i; int i;
for (i = 0; i < availItems; i++) { for (i = 0; i < availItems; i++) {
_lines[i] = guiRenderMenuItem(menuStrings[i]); _lines[i] = new GfxObj(0, guiRenderMenuItem(menuStrings[i]), "MenuItem");
uint id = _gfx->setItem(_lines[i], MENUITEMS_X, MENUITEMS_Y + MENUITEM_HEIGHT * i, 0xFF); uint id = _gfx->setItem(_lines[i], MENUITEMS_X, MENUITEMS_Y + MENUITEM_HEIGHT * i, 0xFF);
_gfx->setItemFrame(id, 0); _gfx->setItemFrame(id, 0);
} }

View file

@ -209,7 +209,7 @@ struct SpeakData { // size = 36
} }
}; };
struct ExamineData { // size = 28 struct ExamineData { // size = 28
Frames *_cnv; GfxObj *_cnv;
uint16 _opBase; // unused uint16 _opBase; // unused
uint16 field_12; // unused uint16 field_12; // unused
char* _description; char* _description;

View file

@ -202,9 +202,9 @@ struct Character {
AnimationPtr _ani; AnimationPtr _ani;
Frames *_head; GfxObj *_head;
Frames *_talk; GfxObj *_talk;
Frames *_objs; GfxObj *_objs;
PathBuilder _builder; PathBuilder _builder;
WalkNodeList *_walkPath; WalkNodeList *_walkPath;