diff options
-rw-r--r-- | engines/cge/bitmap.cpp | 56 | ||||
-rw-r--r-- | engines/cge/bitmap.h | 8 | ||||
-rw-r--r-- | engines/cge/cge.cpp | 32 | ||||
-rw-r--r-- | engines/cge/cge_main.cpp | 366 | ||||
-rw-r--r-- | engines/cge/cge_main.h | 32 | ||||
-rw-r--r-- | engines/cge/game.cpp | 2 | ||||
-rw-r--r-- | engines/cge/game.h | 2 | ||||
-rw-r--r-- | engines/cge/general.cpp | 7 | ||||
-rw-r--r-- | engines/cge/gettext.cpp | 2 | ||||
-rw-r--r-- | engines/cge/gettext.h | 2 | ||||
-rw-r--r-- | engines/cge/keybd.cpp | 6 | ||||
-rw-r--r-- | engines/cge/keybd.h | 4 | ||||
-rw-r--r-- | engines/cge/mixer.cpp | 6 | ||||
-rw-r--r-- | engines/cge/mixer.h | 6 | ||||
-rw-r--r-- | engines/cge/mouse.cpp | 7 | ||||
-rw-r--r-- | engines/cge/mouse.h | 12 | ||||
-rw-r--r-- | engines/cge/snail.cpp | 176 | ||||
-rw-r--r-- | engines/cge/talk.cpp | 4 | ||||
-rw-r--r-- | engines/cge/talk.h | 2 | ||||
-rw-r--r-- | engines/cge/text.cpp | 14 | ||||
-rw-r--r-- | engines/cge/text.h | 6 | ||||
-rw-r--r-- | engines/cge/vga13h.cpp | 382 | ||||
-rw-r--r-- | engines/cge/vga13h.h | 132 | ||||
-rw-r--r-- | engines/cge/vmenu.cpp | 2 |
24 files changed, 674 insertions, 594 deletions
diff --git a/engines/cge/bitmap.cpp b/engines/cge/bitmap.cpp index 943f1cf154..10fc9a4df6 100644 --- a/engines/cge/bitmap.cpp +++ b/engines/cge/bitmap.cpp @@ -139,6 +139,7 @@ BITMAP::~BITMAP(void) { break; case FAR_MEM : free(V); + default: break; } } @@ -419,4 +420,59 @@ bool BITMAP::VBMLoad(XFILE *f) { B = (HideDesc *)(V + n - H * sizeof(HideDesc)); return (f->Error == 0); } + +bool BITMAP::BMPLoad (XFILE * f) { + struct { + char BM[2]; + union { int16 len; int32 len_; }; + union { int16 _06; int32 _06_; }; + union { int16 hdr; int32 hdr_; }; + union { int16 _0E; int32 _0E_; }; + union { int16 wid; int32 wid_; }; + union { int16 hig; int32 hig_; }; + union { int16 _1A; int32 _1A_; }; + union { int16 _1E; int32 _1E_; }; + union { int16 _22; int32 _22_; }; + union { int16 _26; int32 _26_; }; + union { int16 _2A; int32 _2A_; }; + union { int16 _2E; int32 _2E_; }; + union { int16 _32; int32 _32_; }; + } hea; + BGR4 bpal[256]; + + f->Read((byte *)&hea, sizeof(hea)); + if (f->Error == 0) { + if (hea.hdr == 0x436L) { + int16 i = (hea.hdr - sizeof(hea)) / sizeof(BGR4); + f->Read((byte *)&bpal, sizeof(bpal)); + if (f->Error == 0) { + if (Pal) { + for (i = 0; i < 256; i ++) { + Pal[i].R = bpal[i].R; + Pal[i].G = bpal[i].G; + Pal[i].B = bpal[i].B; + } + Pal = NULL; + } + H = hea.hig; + W = hea.wid; + if ((M = farnew(byte, H * W)) != NULL) { + int16 r = (4 - (hea.wid & 3)) % 4; + byte buf[3]; int i; + for (i = H-1; i >= 0; i --) { + f->Read(M + (W * i), W); + if (r && f->Error == 0) + f->Read(buf, r); + if (f->Error) + break; + } + if (i < 0) + return true; + } + } + } + } + return false; +} + } // End of namespace CGE diff --git a/engines/cge/bitmap.h b/engines/cge/bitmap.h index 13e28f4369..e114760e2a 100644 --- a/engines/cge/bitmap.h +++ b/engines/cge/bitmap.h @@ -41,7 +41,7 @@ namespace CGE { #include "common/pack-start.h" -typedef struct { +struct BGR4 { uint16 b : 2; uint16 B : 6; uint16 g : 2; @@ -49,13 +49,13 @@ typedef struct { uint16 r : 2; uint16 R : 6; uint16 Z : 8; -} BGR4; +}; -typedef struct { +struct HideDesc { uint16 skip; uint16 hide; -} HideDesc; +}; #include "common/pack-end.h" diff --git a/engines/cge/cge.cpp b/engines/cge/cge.cpp index f2bebef258..07638ebdd8 100644 --- a/engines/cge/cge.cpp +++ b/engines/cge/cge.cpp @@ -63,19 +63,19 @@ void CGEEngine::setup() { // Initialise engine objects Text = new TEXT(this, ProgName(), 128); Vga = new VGA(M13H); - Heart = new HEART; + _heart = new Heart; Hero = new WALK(this, NULL); Sys = new SYSTEM(this); - PocLight = new SPRITE(this, LI); + _pocLight = new Sprite(this, LI); Mouse = new MOUSE(this); for (int i = 0; i < POCKET_NX; i++) - Pocket[i] = new SPRITE(this, NULL); - Sprite = new SPRITE(this, NULL); - MiniCave = new SPRITE(this, NULL); - Shadow = new SPRITE(this, NULL); - HorzLine = new SPRITE(this, HL); + _pocket[i] = new Sprite(this, NULL); + _sprite = new Sprite(this, NULL); + _miniCave = new Sprite(this, NULL); + _shadow = new Sprite(this, NULL); + _horzLine = new Sprite(this, HL); InfoLine = new INFO_LINE(this, INFO_W); - CavLight = new SPRITE(this, PR); + _cavLight = new Sprite(this, PR); DebugLine = new INFO_LINE(this, SCR_WID); MB[0] = new BITMAP("BRICK"); MB[1] = NULL; @@ -117,19 +117,19 @@ CGEEngine::~CGEEngine() { // Delete engine objects delete Text; delete Vga; - delete Heart; + delete _heart; delete Hero; delete Sys; - delete PocLight; + delete _pocLight; delete Mouse; for (int i = 0; i < POCKET_NX; i++) - delete Pocket[i]; - delete Sprite; - delete MiniCave; - delete Shadow; - delete HorzLine; + delete _pocket[i]; + delete _sprite; + delete _miniCave; + delete _shadow; + delete _horzLine; delete InfoLine; - delete CavLight; + delete _cavLight; delete DebugLine; delete MB[0]; delete HL[0]; diff --git a/engines/cge/cge_main.cpp b/engines/cge/cge_main.cpp index c415258ad8..ece6ec5adb 100644 --- a/engines/cge/cge_main.cpp +++ b/engines/cge/cge_main.cpp @@ -25,56 +25,55 @@ * Copyright (c) 1994-1995 Janus B. Wisniewski and L.K. Avalon */ -#include "cge/general.h" -#include "cge/boot.h" -#include "cge/ident.h" -#include "cge/sound.h" -#include "cge/startup.h" -#include "cge/config.h" -#include "cge/vga13h.h" -#include "cge/snail.h" -#include "cge/text.h" -#include "cge/game.h" -#include "cge/mouse.h" -#include "cge/keybd.h" -#include "cge/cfile.h" -#include "cge/vol.h" -#include "cge/talk.h" -#include "cge/vmenu.h" -#include "cge/gettext.h" -#include "cge/mixer.h" -#include "cge/cge_main.h" -#include "cge/cge.h" -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <fcntl.h> - +#include "cge/general.h" +#include "cge/boot.h" +#include "cge/ident.h" +#include "cge/sound.h" +#include "cge/startup.h" +#include "cge/config.h" +#include "cge/vga13h.h" +#include "cge/snail.h" +#include "cge/text.h" +#include "cge/game.h" +#include "cge/mouse.h" +#include "cge/keybd.h" +#include "cge/cfile.h" +#include "cge/vol.h" +#include "cge/talk.h" +#include "cge/vmenu.h" +#include "cge/gettext.h" +#include "cge/mixer.h" +#include "cge/cge_main.h" +#include "cge/cge.h" +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <fcntl.h> #include "common/str.h" namespace CGE { -#define STACK_SIZ (K(2)) -#define SVGCHKSUM (1956 + Now + OldLev + Game + Music + DemoText) +#define STACK_SIZ (K(2)) +#define SVGCHKSUM (1956 + Now + OldLev + Game + Music + DemoText) -#define SVG0NAME ("{{INIT}}" SVG_EXT) -#define SVG0FILE INI_FILE +#define SVG0NAME ("{{INIT}}" SVG_EXT) +#define SVG0FILE INI_FILE extern uint16 _stklen = (STACK_SIZ * 2); VGA *Vga; -HEART *Heart; +Heart *_heart; WALK *Hero; SYSTEM *Sys; -SPRITE *PocLight; +Sprite *_pocLight; MOUSE *Mouse; -SPRITE *Pocket[POCKET_NX]; -SPRITE *Sprite; -SPRITE *MiniCave; -SPRITE *Shadow; -SPRITE *HorzLine; +Sprite *_pocket[POCKET_NX]; +Sprite *_sprite; +Sprite *_miniCave; +Sprite *_shadow; +Sprite *_horzLine; INFO_LINE *InfoLine; -SPRITE *CavLight; +Sprite *_cavLight; INFO_LINE *DebugLine; BMP_PTR MB[2]; @@ -146,11 +145,11 @@ HXY HeroXY[CAVE_MAX] = {{0, 0}}; BAR Barriers[1 + CAVE_MAX] = { { 0xFF, 0xFF } }; -extern int FindPocket(SPRITE *); +extern int FindPocket(Sprite *); extern DAC StdPal[58]; -void FeedSnail(SPRITE *spr, SNLIST snq); // defined in SNAIL +void FeedSnail(Sprite *spr, SNLIST snq); // defined in SNAIL uint8 CLUSTER::Map[MAP_ZCNT][MAP_XCNT]; @@ -223,11 +222,13 @@ CLUSTER XZ(COUPLE xy) { int pocref[POCKET_NX]; uint8 volume[2]; -struct SAVTAB { +struct SavTab { void *Ptr; int Len; uint8 Flg; -} SavTab[] = { +}; + +SavTab _savTab[] = { { &Now, sizeof(Now), 1 }, { &OldLev, sizeof(OldLev), 1 }, { &DemoText, sizeof(DemoText), 1 }, @@ -248,11 +249,11 @@ struct SAVTAB { void CGEEngine::LoadGame(XFILE &file, bool tiny = false) { - SAVTAB *st; - SPRITE *spr; + SavTab *st; + Sprite *spr; int i; - for (st = SavTab; st->Ptr; st++) { + for (st = _savTab; st->Ptr; st++) { if (file.Error) error("Bad SVG"); file.Read((uint8 *)((tiny || st->Flg) ? st->Ptr : &i), st->Len); @@ -273,7 +274,7 @@ void CGEEngine::LoadGame(XFILE &file, bool tiny = false) { if (! tiny) { // load sprites & pocket while (! file.Error) { - SPRITE S(this, NULL); + Sprite S(this, NULL); uint16 n = file.Read((uint8 *) &S, sizeof(S)); if (n != sizeof(S)) @@ -281,7 +282,7 @@ void CGEEngine::LoadGame(XFILE &file, bool tiny = false) { S.Prev = S.Next = NULL; spr = (scumm_stricmp(S.File + 2, "MUCHA") == 0) ? new FLY(this, NULL) - : new SPRITE(this, NULL); + : new Sprite(this, NULL); if (spr == NULL) error("No core"); *spr = S; @@ -290,7 +291,7 @@ void CGEEngine::LoadGame(XFILE &file, bool tiny = false) { for (i = 0; i < POCKET_NX; i++) { register int r = pocref[i]; - Pocket[i] = (r < 0) ? NULL : Vga->SpareQ->Locate(r); + _pocket[i] = (r < 0) ? NULL : Vga->SpareQ->Locate(r); } } } @@ -303,19 +304,19 @@ static void SaveSound(void) { static void SaveGame(XFILE &file) { - SAVTAB *st; - SPRITE *spr; + SavTab *st; + Sprite *spr; int i; for (i = 0; i < POCKET_NX; i++) { - register SPRITE *s = Pocket[i]; - pocref[i] = (s) ? s->Ref : -1; + register Sprite *s = _pocket[i]; + pocref[i] = (s) ? s->_ref : -1; } volume[0] = SNDDrvInfo.VOL2.D; volume[1] = SNDDrvInfo.VOL2.M; - for (st = SavTab; st->Ptr; st++) { + for (st = _savTab; st->Ptr; st++) { if (file.Error) error("Bad SVG"); file.Write((uint8 *) st->Ptr, st->Len); @@ -324,7 +325,7 @@ static void SaveGame(XFILE &file) { file.Write((uint8 *) & (i = SVGCHKSUM), sizeof(i)); for (spr = Vga->SpareQ->First(); spr; spr = spr->Next) - if (spr->Ref >= 1000) + if (spr->_ref >= 1000) if (!file.Error) file.Write((uint8 *)spr, sizeof(*spr)); } @@ -385,7 +386,7 @@ int FindLevel; WALK::WALK(CGEEngine *vm, BMP_PTR *shpl) - : SPRITE(vm, shpl), Dir(NO_DIR), TracePtr(-1), _vm(vm) { + : Sprite(vm, shpl), Dir(NO_DIR), TracePtr(-1), _vm(vm) { } @@ -396,7 +397,7 @@ void WALK::Tick(void) { Here = XZ(X + W / 2, Y + H); if (Dir != NO_DIR) { - SPRITE *spr; + Sprite *spr; Sys->FunTouch(); for (spr = Vga->ShowQ->First(); spr; spr = spr->Next) { if (Distance(spr) < 2) { @@ -434,7 +435,7 @@ void WALK::Tick(void) { } -int WALK::Distance(SPRITE *spr) { +int WALK::Distance(Sprite *spr) { int dx, dz; dx = spr->X - (X + W - WALKSIDE); if (dx < 0) @@ -502,7 +503,7 @@ void WALK::FindWay(CLUSTER c) { } -void WALK::FindWay(SPRITE *spr) { +void WALK::FindWay(Sprite *spr) { if (spr && spr != this) { int x = spr->X, z = spr->Z; if (spr->Flags.East) @@ -516,12 +517,12 @@ void WALK::FindWay(SPRITE *spr) { } -bool WALK::Lower(SPRITE *spr) { +bool WALK::Lower(Sprite *spr) { return (spr->Y > Y + (H * 3) / 5); } -void WALK::Reach(SPRITE *spr, int mode) { +void WALK::Reach(Sprite *spr, int mode) { if (spr) { Hero->FindWay(spr); if (mode < 0) { @@ -542,7 +543,7 @@ void WALK::Reach(SPRITE *spr, int mode) { } -class SQUARE : public SPRITE { +class SQUARE : public Sprite { public: SQUARE(CGEEngine *vm); void Touch(uint16 mask, int x, int y); @@ -552,14 +553,14 @@ private: SQUARE::SQUARE(CGEEngine *vm) - : SPRITE(vm, MB), _vm(vm) { + : Sprite(vm, MB), _vm(vm) { Flags.Kill = true; Flags.BDel = false; } void SQUARE::Touch(uint16 mask, int x, int y) { - SPRITE::Touch(mask, x, y); + Sprite::Touch(mask, x, y); if (mask & L_UP) { XZ(X + x, Y + y).Cell() = 0; SNPOST_(SNKILL, -1, 0, this); @@ -632,14 +633,14 @@ static void AltCtrlDel(void) { static void MiniStep(int stp) { if (stp < 0) - MiniCave->Flags.Hide = true; + _miniCave->Flags.Hide = true; else { &*Mini; *MiniShp[0] = *MiniShpList[stp]; if (Fx.Current) &*(Fx.Current->EAddr()); - MiniCave->Flags.Hide = false; + _miniCave->Flags.Hide = false; } } @@ -670,7 +671,7 @@ void SYSTEM::FunTouch(void) { static void ShowBak(int ref) { - SPRITE *spr = Vga->SpareQ->Locate(ref); + Sprite *spr = Vga->SpareQ->Locate(ref); if (spr) { BITMAP::Pal = VGA::SysPal; spr->Expand(); @@ -691,11 +692,11 @@ static void CaveUp(void) { ShowBak(BakRef); LoadMapping(); Text->Preload(BakRef, BakRef + 1000); - SPRITE *spr = Vga->SpareQ->First(); + Sprite *spr = Vga->SpareQ->First(); while (spr) { - SPRITE *n = spr->Next; - if (spr->Cave == Now || spr->Cave == 0) - if (spr->Ref != BakRef) { + Sprite *n = spr->Next; + if (spr->_cave == Now || spr->_cave == 0) + if (spr->_ref != BakRef) { if (spr->Flags.Back) spr->BackShow(); else @@ -726,11 +727,11 @@ static void CaveUp(void) { if (Hero) Vga->ShowQ->Insert(Vga->ShowQ->Remove(Hero)); - if (Shadow) { - Vga->ShowQ->Remove(Shadow); - Shadow->MakeXlat(Glass(VGA::SysPal, 204, 204, 204)); - Vga->ShowQ->Insert(Shadow, Hero); - Shadow->Z = Hero->Z; + if (_shadow) { + Vga->ShowQ->Remove(_shadow); + _shadow->MakeXlat(Glass(VGA::SysPal, 204, 204, 204)); + Vga->ShowQ->Insert(_shadow, Hero); + _shadow->Z = Hero->Z; } FeedSnail(Vga->ShowQ->Locate(BakRef + 999), TAKE); Vga->Show(); @@ -741,19 +742,19 @@ static void CaveUp(void) { if (! Startup) Mouse->On(); - Heart->Enable = true; + _heart->_enable = true; } void CGEEngine::CaveDown() { - SPRITE *spr; - if (! HorzLine->Flags.Hide) + Sprite *spr; + if (!_horzLine->Flags.Hide) SwitchMapping(); for (spr = Vga->ShowQ->First(); spr;) { - SPRITE *n = spr->Next; - if (spr->Ref >= 1000 /*&& spr->Cave*/) { - if (spr->Ref % 1000 == 999) + Sprite *n = spr->Next; + if (spr->_ref >= 1000 /*&& spr->_cave*/) { + if (spr->_ref % 1000 == 999) FeedSnail(spr, TAKE); Vga->SpareQ->Append(Vga->ShowQ->Remove(spr)); } @@ -782,7 +783,7 @@ void CGEEngine::QGame() { void CGEEngine::SwitchCave(int cav) { if (cav != Now) { - Heart->Enable = false; + _heart->_enable = false; if (cav < 0) { SNPOST(SNLABEL, -1, 0, NULL); // wait for repaint //TODO Change the SNPOST message send to a special way to send function pointer @@ -799,7 +800,7 @@ void CGEEngine::SwitchCave(int cav) { Vga->SpareQ->Show = STARTUP::Summa * (cav <= CAVE_MAX); /////-------------------------------------------------------- } - CavLight->Goto(CAVE_X + ((Now - 1) % CAVE_NX) * CAVE_DX + CAVE_SX, + _cavLight->Goto(CAVE_X + ((Now - 1) % CAVE_NX) * CAVE_DX + CAVE_SX, CAVE_Y + ((Now - 1) / CAVE_NX) * CAVE_DY + CAVE_SY); KillText(); if (! Startup) @@ -812,7 +813,7 @@ void CGEEngine::SwitchCave(int cav) { } } -SYSTEM::SYSTEM(CGEEngine *vm) : SPRITE(vm, NULL), _vm(vm) { +SYSTEM::SYSTEM(CGEEngine *vm) : Sprite(vm, NULL), _vm(vm) { FunDel = HEROFUN0; SetPal(); Tick(); @@ -841,7 +842,7 @@ void SYSTEM::Touch(uint16 mask, int x, int y) { break; case 'F': if (KEYBOARD::Key[ALT]) { - SPRITE *m = Vga->ShowQ->Locate(17001); + Sprite *m = Vga->ShowQ->Locate(17001); if (m) { m->Step(1); m->Time = 216; // 3s @@ -905,8 +906,8 @@ void SYSTEM::Touch(uint16 mask, int x, int y) { case '7': case '8': case '9': - if (Sprite) - Sprite->Step(x - '0'); + if (_sprite) + _sprite->Step(x - '0'); break; case F10 : if (Snail->Idle() && ! Hero->Flags.Hide) @@ -957,7 +958,7 @@ void SYSTEM::Touch(uint16 mask, int x, int y) { if (cav && Snail->Idle() && Hero->TracePtr < 0) _vm->SwitchCave(cav); - if (!HorzLine->Flags.Hide) { + if (!_horzLine->Flags.Hide) { if (y >= MAP_TOP && y < MAP_TOP + MAP_HIG) { int8 x1, z1; XZ(x, y).Split(x1, z1); @@ -1079,7 +1080,7 @@ void CGEEngine::TakeName() { void CGEEngine::SwitchMapping() { - if (HorzLine->Flags.Hide) { + if (_horzLine->Flags.Hide) { int i; for (i = 0; i < MAP_ZCNT; i++) { int j; @@ -1089,29 +1090,29 @@ void CGEEngine::SwitchMapping() { } } } else { - SPRITE *s; + Sprite *s; for (s = Vga->ShowQ->First(); s; s = s->Next) if (s->W == MAP_XGRID && s->H == MAP_ZGRID) SNPOST_(SNKILL, -1, 0, s); } - HorzLine->Flags.Hide = ! HorzLine->Flags.Hide; + _horzLine->Flags.Hide = !_horzLine->Flags.Hide; } static void KillSprite(void) { - Sprite->Flags.Kill = true; - Sprite->Flags.BDel = true; - SNPOST_(SNKILL, -1, 0, Sprite); - Sprite = NULL; + _sprite->Flags.Kill = true; + _sprite->Flags.BDel = true; + SNPOST_(SNKILL, -1, 0, _sprite); + _sprite = NULL; } static void PushSprite(void) { - SPRITE *spr = Sprite->Prev; + Sprite *spr = _sprite->Prev; if (spr) { - Vga->ShowQ->Insert(Vga->ShowQ->Remove(Sprite), spr); - while (Sprite->Z > Sprite->Next->Z) - --Sprite->Z; + Vga->ShowQ->Insert(Vga->ShowQ->Remove(_sprite), spr); + while (_sprite->Z > _sprite->Next->Z) + --_sprite->Z; } else SNPOST_(SNSOUND, -1, 2, NULL); } @@ -1119,24 +1120,24 @@ static void PushSprite(void) { static void PullSprite(void) { bool ok = false; - SPRITE *spr = Sprite->Next; + Sprite *spr = _sprite->Next; if (spr) { spr = spr->Next; if (spr) ok = (!spr->Flags.Slav); } if (ok) { - Vga->ShowQ->Insert(Vga->ShowQ->Remove(Sprite), spr); - if (Sprite->Prev) - while (Sprite->Z < Sprite->Prev->Z) - ++Sprite->Z; + Vga->ShowQ->Insert(Vga->ShowQ->Remove(_sprite), spr); + if (_sprite->Prev) + while (_sprite->Z < _sprite->Prev->Z) + ++_sprite->Z; } else SNPOST_(SNSOUND, -1, 2, NULL); } static void NextStep(void) { - SNPOST_(SNSTEP, 0, 0, Sprite); + SNPOST_(SNSTEP, 0, 0, _sprite); } @@ -1199,18 +1200,18 @@ static void SayDebug(void) { // sprite queue size uint16 n = 0; - SPRITE *spr; + Sprite *spr; for (spr = Vga->ShowQ->First(); spr; spr = spr->Next) { ++ n; - if (spr == Sprite) { + if (spr == _sprite) { *XSPR = ' '; dwtom(n, SP_N, 10, 2); - dwtom(Sprite->X, SP_X, 10, 3); - dwtom(Sprite->Y, SP_Y, 10, 3); - dwtom(Sprite->Z, SP_Z, 10, 3); - dwtom(Sprite->W, SP_W, 10, 3); - dwtom(Sprite->H, SP_H, 10, 3); - dwtom(*(uint16 *)(&Sprite->Flags), SP_F, 16, 2); + dwtom(_sprite->X, SP_X, 10, 3); + dwtom(_sprite->Y, SP_Y, 10, 3); + dwtom(_sprite->Z, SP_Z, 10, 3); + dwtom(_sprite->W, SP_W, 10, 3); + dwtom(_sprite->H, SP_H, 10, 3); + dwtom(*(uint16 *)(&_sprite->Flags), SP_F, 16, 2); } } dwtom(n, SP_S, 10, 2); @@ -1249,14 +1250,14 @@ void CGEEngine::OptionTouch(int opt, uint16 mask) { #pragma argsused -void SPRITE::Touch(uint16 mask, int x, int y) { +void Sprite::Touch(uint16 mask, int x, int y) { Sys->FunTouch(); if ((mask & ATTN) == 0) { InfoLine->Update(Name()); if (mask & (R_DN | L_DN)) - Sprite = this; - if (Ref / 10 == 12) { - _vm->OptionTouch(Ref % 10, mask); + _sprite = this; + if (_ref / 10 == 12) { + _vm->OptionTouch(_ref % 10, mask); return; } if (Flags.Syst) @@ -1266,7 +1267,7 @@ void SPRITE::Touch(uint16 mask, int x, int y) { mask |= R_UP; } if ((mask & R_UP) && Snail->Idle()) { - SPRITE *ps = (PocLight->SeqPtr) ? Pocket[PocPtr] : NULL; + Sprite *ps = (_pocLight->SeqPtr) ? _pocket[PocPtr] : NULL; if (ps) { if (Flags.Kept || Hero->Distance(this) < MAX_DISTANCE) { if (Works(ps)) { @@ -1309,7 +1310,7 @@ void SPRITE::Touch(uint16 mask, int x, int y) { if (Flags.Kept) { int n; for (n = 0; n < POCKET_NX; n++) { - if (Pocket[n] == this) { + if (_pocket[n] == this) { SelectPocket(n); break; } @@ -1388,9 +1389,9 @@ void CGEEngine::LoadSprite(const char *fname, int ref, int cav, int col = 0, int // make sprite of choosen type switch (type) { case 1 : { // AUTO - Sprite = new SPRITE(this, NULL); - if (Sprite) { - Sprite->Goto(col, row); + _sprite = new Sprite(this, NULL); + if (_sprite) { + _sprite->Goto(col, row); //Sprite->Time = 1;//-----------$$$$$$$$$$$$$$$$ } break; @@ -1403,7 +1404,7 @@ void CGEEngine::LoadSprite(const char *fname, int ref, int cav, int col = 0, int error("2nd HERO [%s]", fname); Hero = w; } - Sprite = w; + _sprite = w; break; } /* @@ -1418,7 +1419,7 @@ void CGEEngine::LoadSprite(const char *fname, int ref, int cav, int col = 0, int n->Cx = 3; n->Goto(col, row); } - Sprite = n; + _sprite = n; break; */ case 4 : { // LISSAJOUS @@ -1436,37 +1437,37 @@ void CGEEngine::LoadSprite(const char *fname, int ref, int cav, int col = 0, int *(long *) &l->Dx = 0; // movex * cnt l->Goto(col, row); } - Sprite = l; + _sprite = l; */ break; } case 5 : { // FLY FLY *f = new FLY(this, NULL); - Sprite = f; + _sprite = f; //////Sprite->Time = 1;//-----------$$$$$$$$$$$$$$ break; } default: { // DEAD - Sprite = new SPRITE(this, NULL); - if (Sprite) - Sprite->Goto(col, row); + _sprite = new Sprite(this, NULL); + if (_sprite) + _sprite->Goto(col, row); break; } } - if (Sprite) { - Sprite->Ref = ref; - Sprite->Cave = cav; - Sprite->Z = pos; - Sprite->Flags.East = east; - Sprite->Flags.Port = port; - Sprite->Flags.Tran = tran; - Sprite->Flags.Kill = true; - Sprite->Flags.BDel = true; - //fnsplit(fname, NULL, NULL, Sprite->File, NULL); + if (_sprite) { + _sprite->_ref = ref; + _sprite->_cave = cav; + _sprite->Z = pos; + _sprite->Flags.East = east; + _sprite->Flags.Port = port; + _sprite->Flags.Tran = tran; + _sprite->Flags.Kill = true; + _sprite->Flags.BDel = true; + //fnsplit(fname, NULL, NULL, _sprite->File, NULL); warning("LoadSprite: use of fnsplit"); - Sprite->ShpCnt = shpcnt; - Vga->SpareQ->Append(Sprite); + _sprite->ShpCnt = shpcnt; + Vga->SpareQ->Append(_sprite); } } @@ -1521,10 +1522,10 @@ void CGEEngine::LoadScript(const char *fname) { ok = true; // no break: OK - Sprite = NULL; + _sprite = NULL; LoadSprite(SpN, SpI, SpA, SpX, SpY, SpZ); - if (Sprite && BkG) - Sprite->Flags.Back = true; + if (_sprite && BkG) + _sprite->Flags.Back = true; } if (! ok) error("%s [%s]", NumStr("Bad INI line ######", lcnt), fname); @@ -1579,11 +1580,11 @@ void CGEEngine::RunGame() { Text->Preload(100, 1000); LoadHeroXY(); - CavLight->Flags.Tran = true; - Vga->ShowQ->Append(CavLight); - CavLight->Flags.Hide = true; + _cavLight->Flags.Tran = true; + Vga->ShowQ->Append(_cavLight); + _cavLight->Flags.Hide = true; - static SEQ PocSeq[] = { { 0, 0, 0, 0, 20 }, + static Seq pocSeq[] = { { 0, 0, 0, 0, 20 }, { 1, 2, 0, 0, 4 }, { 2, 3, 0, 0, 4 }, { 3, 4, 0, 0, 16 }, @@ -1591,11 +1592,11 @@ void CGEEngine::RunGame() { { 1, 6, 0, 0, 4 }, { 0, 1, 0, 0, 16 }, }; - PocLight->SetSeq(PocSeq); - PocLight->Flags.Tran = true; - PocLight->Time = 1; - PocLight->Z = 120; - Vga->ShowQ->Append(PocLight); + _pocLight->SetSeq(pocSeq); + _pocLight->Flags.Tran = true; + _pocLight->Time = 1; + _pocLight->Z = 120; + Vga->ShowQ->Append(_pocLight); SelectPocket(-1); Vga->ShowQ->Append(Mouse); @@ -1604,11 +1605,11 @@ void CGEEngine::RunGame() { LoadUser(); // ~~~~~~~~~~~ - if ((Sprite = Vga->SpareQ->Locate(121)) != NULL) - SNPOST_(SNSEQ, -1, Vga->Mono, Sprite); - if ((Sprite = Vga->SpareQ->Locate(122)) != NULL) - Sprite->Step(Music); - SNPOST_(SNSEQ, -1, Music, Sprite); + if ((_sprite = Vga->SpareQ->Locate(121)) != NULL) + SNPOST_(SNSEQ, -1, Vga->Mono, _sprite); + if ((_sprite = Vga->SpareQ->Locate(122)) != NULL) + _sprite->Step(Music); + SNPOST_(SNSEQ, -1, Music, _sprite); if (! Music) KillMIDI(); @@ -1616,12 +1617,12 @@ void CGEEngine::RunGame() { uint8 *ptr = (uint8 *) &*Mini; if (ptr != NULL) { LoadSprite("MINI", -1, 0, MINI_X, MINI_Y); - ExpandSprite(MiniCave = Sprite); // NULL is ok - if (MiniCave) { - MiniCave->Flags.Hide = true; - MiniCave->MoveShapes(ptr); - MiniShp[0] = new BITMAP(*MiniCave->Shp()); - MiniShpList = MiniCave->SetShapeList(MiniShp); + ExpandSprite(_miniCave = _sprite); // NULL is ok + if (_miniCave) { + _miniCave->Flags.Hide = true; + _miniCave->MoveShapes(ptr); + MiniShp[0] = new BITMAP(*_miniCave->Shp()); + MiniShpList = _miniCave->SetShapeList(MiniShp); PostMiniStep(-1); } } @@ -1632,11 +1633,11 @@ void CGEEngine::RunGame() { Hero->Goto(HeroXY[Now - 1].X, HeroXY[Now - 1].Y); if (INI_FILE::Exist("00SHADOW.SPR")) { LoadSprite("00SHADOW", -1, 0, Hero->X + 14, Hero->Y + 51); - if ((Shadow = Sprite) != NULL) { - Shadow->Ref = 2; - Shadow->Flags.Tran = true; + if ((_shadow = _sprite) != NULL) { + _shadow->_ref = 2; + _shadow->Flags.Tran = true; Hero->Flags.Shad = true; - Vga->ShowQ->Insert(Vga->SpareQ->Remove(Shadow), Hero); + Vga->ShowQ->Insert(Vga->SpareQ->Remove(_shadow), Hero); } } } @@ -1649,9 +1650,9 @@ void CGEEngine::RunGame() { DebugLine->Z = 126; Vga->ShowQ->Insert(DebugLine); - HorzLine->Y = MAP_TOP - (MAP_TOP > 0); - HorzLine->Z = 126; - Vga->ShowQ->Insert(HorzLine); + _horzLine->Y = MAP_TOP - (MAP_TOP > 0); + _horzLine->Z = 126; + Vga->ShowQ->Insert(_horzLine); Mouse->Busy = Vga->SpareQ->Locate(BUSY_REF); if (Mouse->Busy) @@ -1659,8 +1660,8 @@ void CGEEngine::RunGame() { Startup = 0; - SNPOST(SNLEVEL, -1, OldLev, &CavLight); - CavLight->Goto(CAVE_X + ((Now - 1) % CAVE_NX) * CAVE_DX + CAVE_SX, + SNPOST(SNLEVEL, -1, OldLev, &_cavLight); + _cavLight->Goto(CAVE_X + ((Now - 1) % CAVE_NX) * CAVE_DX + CAVE_SX, CAVE_Y + ((Now - 1) / CAVE_NX) * CAVE_DY + CAVE_SY); CaveUp(); @@ -1674,14 +1675,14 @@ void CGEEngine::RunGame() { } KEYBOARD::SetClient(NULL); - Heart->Enable = false; + _heart->_enable = false; SNPOST(SNCLEAR, -1, 0, NULL); SNPOST_(SNCLEAR, -1, 0, NULL); Mouse->Off(); Vga->ShowQ->Clear(); Vga->SpareQ->Clear(); Hero = NULL; - Shadow = NULL; + _shadow = NULL; } @@ -1692,13 +1693,13 @@ void CGEEngine::Movie(const char *ext) { ExpandSprite(Vga->SpareQ->Locate(999)); FeedSnail(Vga->ShowQ->Locate(999), TAKE); Vga->ShowQ->Append(Mouse); - Heart->Enable = true; + _heart->_enable = true; KEYBOARD::SetClient(Sys); while (!Snail->Idle()) MainLoop(); KEYBOARD::SetClient(NULL); - Heart->Enable = false; + _heart->_enable = false; SNPOST(SNCLEAR, -1, 0, NULL); SNPOST_(SNCLEAR, -1, 0, NULL); Vga->ShowQ->Clear(); @@ -1713,7 +1714,7 @@ bool CGEEngine::ShowTitle(const char *name) { BITMAP::Pal = NULL; bool usr_ok = false; - SPRITE D(this, LB); + Sprite D(this, LB); D.Flags.Kill = true; D.Flags.BDel = true; D.Center(); @@ -1734,12 +1735,12 @@ bool CGEEngine::ShowTitle(const char *name) { Vga->CopyPage(1, 2); Vga->CopyPage(0, 1); Vga->ShowQ->Append(Mouse); - Heart->Enable = true; + _heart->_enable = true; Mouse->On(); for (SelectSound(); !Snail->Idle() || VMENU::Addr;) MainLoop(); Mouse->Off(); - Heart->Enable = false; + _heart->_enable = false; Vga->ShowQ->Clear(); Vga->CopyPage(0, 2); STARTUP::SoundOk = 2; @@ -1771,10 +1772,10 @@ bool CGEEngine::ShowTitle(const char *name) { Vga->CopyPage(0, 1); Vga->ShowQ->Append(Mouse); //Mouse.On(); - Heart->Enable = true; + _heart->_enable = true; for (TakeName(); GET_TEXT::Ptr;) MainLoop(); - Heart->Enable = false; + _heart->_enable = false; if (KEYBOARD::Last() == Enter && *UsrFnam) usr_ok = true; if (usr_ok) @@ -1831,11 +1832,12 @@ void CGEEngine::cge_main(void) { if (!Mouse->Exist) error("%s", Text->getText(NO_MOUSE_TEXT)); + if (!SVG0FILE::Exist(SVG0NAME)) STARTUP::Mode = 2; DebugLine->Flags.Hide = true; - HorzLine->Flags.Hide = true; + _horzLine->Flags.Hide = true; //srand((uint16) Timer()); Sys = new SYSTEM(this); diff --git a/engines/cge/cge_main.h b/engines/cge/cge_main.h index 146c3cb6c9..8b2f87aad9 100644 --- a/engines/cge/cge_main.h +++ b/engines/cge/cge_main.h @@ -113,7 +113,7 @@ namespace CGE { #define FINIS (Flag[3]) -class SYSTEM : public SPRITE { +class SYSTEM : public Sprite { int lum; public: int FunDel; @@ -139,7 +139,7 @@ public: }; -class WALK : public SPRITE { +class WALK : public Sprite { public: CLUSTER Here; int TracePtr; @@ -148,12 +148,12 @@ public: WALK(CGEEngine *vm, BMP_PTR *shpl); void Tick(void); void FindWay(CLUSTER c); - void FindWay(SPRITE *spr); - int Distance(SPRITE *spr); + void FindWay(Sprite *spr); + int Distance(Sprite *spr); void Turn(DIR d); void Park(void); - bool Lower(SPRITE *spr); - void Reach(SPRITE *spr, int mode = -1); + bool Lower(Sprite *spr); + void Reach(Sprite *spr, int mode = -1); private: CGEEngine *_vm; @@ -163,23 +163,23 @@ private: CLUSTER XZ(int x, int y); CLUSTER XZ(COUPLE xy); -void ExpandSprite(SPRITE *spr); -void ContractSprite(SPRITE *spr); +void ExpandSprite(Sprite *spr); +void ContractSprite(Sprite *spr); extern WALK *Hero; extern VGA *Vga; -extern HEART *Heart; +extern Heart *_heart; extern SYSTEM *Sys; extern int OffUseCount; -extern SPRITE *PocLight; +extern Sprite *_pocLight; extern MOUSE *Mouse; -extern SPRITE *Pocket[]; -extern SPRITE *Sprite; -extern SPRITE *MiniCave; -extern SPRITE *Shadow; -extern SPRITE *HorzLine; +extern Sprite *_pocket[]; +extern Sprite *_sprite; +extern Sprite *_miniCave; +extern Sprite *_shadow; +extern Sprite *_horzLine; extern INFO_LINE *InfoLine; -extern SPRITE *CavLight; +extern Sprite *_cavLight; extern INFO_LINE *DebugLine; extern BMP_PTR MB[2]; extern BMP_PTR MB[2]; diff --git a/engines/cge/game.cpp b/engines/cge/game.cpp index 21e8ceddeb..a5b82f1e8d 100644 --- a/engines/cge/game.cpp +++ b/engines/cge/game.cpp @@ -68,7 +68,7 @@ int FLY::L = 20, FLY::FLY(CGEEngine *vm, BITMAP **shpl) - : SPRITE(vm, shpl), Tx(0), Ty(0), _vm(vm) { + : Sprite(vm, shpl), Tx(0), Ty(0), _vm(vm) { Step(new_random(2)); Goto(L + new_random(R - L - W), T + new_random(B - T - H)); } diff --git a/engines/cge/game.h b/engines/cge/game.h index 7892b1c93f..fb4dad6fae 100644 --- a/engines/cge/game.h +++ b/engines/cge/game.h @@ -44,7 +44,7 @@ int Sinus(long x); uint8 *Glass(DAC *pal, uint8 r, uint8 g, uint8 b); uint8 *Mark(DAC *pal); -class FLY : public SPRITE { +class FLY : public Sprite { static int L, T, R, B; public: int Tx, Ty; diff --git a/engines/cge/general.cpp b/engines/cge/general.cpp index 1bf4bcd982..428498923e 100644 --- a/engines/cge/general.cpp +++ b/engines/cge/general.cpp @@ -136,8 +136,6 @@ char *ForceExt(char *buf, const char *nam, const char *ext) { return buf; } - -#define BUF ((uint8 *) buf) static unsigned Seed = 1; unsigned FastRand(void) { @@ -237,7 +235,10 @@ uint16 IOHAND::Read(void *buf, uint16 len) { return 0; uint16 bytesRead = _file->read(buf, len); - if (Crypt) Seed = Crypt(buf, len, Seed); + if (!bytesRead) + error("Read %s - %d bytes", _file->getName(), len); + if (Crypt) + Seed = Crypt(buf, len, Seed); return bytesRead; } diff --git a/engines/cge/gettext.cpp b/engines/cge/gettext.cpp index d444b75ab4..f891b9c092 100644 --- a/engines/cge/gettext.cpp +++ b/engines/cge/gettext.cpp @@ -116,7 +116,7 @@ void GET_TEXT::Touch(uint16 mask, int x, int y) { break; } } else - SPRITE::Touch(mask, x, y); + Sprite::Touch(mask, x, y); } } // End of namespace CGE diff --git a/engines/cge/gettext.h b/engines/cge/gettext.h index c868232677..33210758af 100644 --- a/engines/cge/gettext.h +++ b/engines/cge/gettext.h @@ -41,7 +41,7 @@ class GET_TEXT : public TALK { char Buff[GTMAX + 2], * Text; uint16 Size, Len; uint16 Cntr; - SPRITE *OldKeybClient; + Sprite *OldKeybClient; void (*Click)(); public: static GET_TEXT *Ptr; diff --git a/engines/cge/keybd.cpp b/engines/cge/keybd.cpp index c912555949..4aee394e07 100644 --- a/engines/cge/keybd.cpp +++ b/engines/cge/keybd.cpp @@ -30,8 +30,8 @@ namespace CGE { -SPRITE *KEYBOARD::Client = NULL; -uint8 KEYBOARD::Key[0x60] = { 0 }; +Sprite *KEYBOARD::Client = NULL; +uint8 KEYBOARD::Key[0x60] = { 0 }; uint16 KEYBOARD::Current = 0; uint16 KEYBOARD::Code[0x60] = { 0, Esc, '1', '2', '3', @@ -78,7 +78,7 @@ KEYBOARD::~KEYBOARD(void) { } -SPRITE *KEYBOARD::SetClient(SPRITE *spr) { +Sprite *KEYBOARD::SetClient(Sprite *spr) { Swap(Client, spr); return spr; } diff --git a/engines/cge/keybd.h b/engines/cge/keybd.h index f2fa595be2..2cdbd558d8 100644 --- a/engines/cge/keybd.h +++ b/engines/cge/keybd.h @@ -46,14 +46,14 @@ public: static void NewKeyboard(...); static uint16 Code[0x60]; static uint16 Current; - static SPRITE *Client; + static Sprite *Client; static uint8 Key[0x60]; static uint16 Last(void) { uint16 cur = Current; Current = 0; return cur; } - static SPRITE *SetClient(SPRITE *spr); + static Sprite *SetClient(Sprite *spr); KEYBOARD(void); ~KEYBOARD(void); }; diff --git a/engines/cge/mixer.cpp b/engines/cge/mixer.cpp index ecdd2b7533..c1f688babd 100644 --- a/engines/cge/mixer.cpp +++ b/engines/cge/mixer.cpp @@ -40,7 +40,7 @@ extern MOUSE *Mouse; bool MIXER::Appear = false; -MIXER::MIXER(CGEEngine *vm, int x, int y) : SPRITE(vm, NULL), Fall(MIX_FALL), _vm(vm) { +MIXER::MIXER(CGEEngine *vm, int x, int y) : Sprite(vm, NULL), Fall(MIX_FALL), _vm(vm) { Appear = true; mb[0] = new BITMAP("VOLUME"); mb[1] = NULL; @@ -65,7 +65,7 @@ MIXER::MIXER(CGEEngine *vm, int x, int y) : SPRITE(vm, NULL), Fall(MIX_FALL), _v lb[i] = NULL; for (i = 0; i < ArrayCount(Led); i++) { - register SPRITE *spr = new SPRITE(_vm, lb); + register Sprite *spr = new Sprite(_vm, lb); spr->SetSeq(ls); spr->Goto(x + 2 + 12 * i, y + 8); spr->Flags.Tran = true; @@ -98,7 +98,7 @@ MIXER::~MIXER(void) { #pragma argsused void MIXER::Touch(uint16 mask, int x, int y) { - SPRITE::Touch(mask, x, y); + Sprite::Touch(mask, x, y); if (mask & L_UP) { uint8 *vol = (&SNDDrvInfo.VOL2.D) + (x < W / 2); if (y < MIX_BHIG) { diff --git a/engines/cge/mixer.h b/engines/cge/mixer.h index d589aceaea..d42d25ca24 100644 --- a/engines/cge/mixer.h +++ b/engines/cge/mixer.h @@ -39,11 +39,11 @@ namespace CGE { #define MIX_BHIG 6 // mixer button high #define MIX_NAME 105 // sprite name -class MIXER : public SPRITE { +class MIXER : public Sprite { BMP_PTR mb[2]; BMP_PTR lb[MIX_MAX + 1]; - SEQ ls[MIX_MAX]; - SPRITE *Led[2]; + Seq ls[MIX_MAX]; + Sprite *Led[2]; int Fall; void Update(void); public: diff --git a/engines/cge/mouse.cpp b/engines/cge/mouse.cpp index 10953291f2..cb94e926c5 100644 --- a/engines/cge/mouse.cpp +++ b/engines/cge/mouse.cpp @@ -39,8 +39,8 @@ MOUSE_FUN *MOUSE::OldMouseFun = NULL; uint16 MOUSE::OldMouseMask = 0; -MOUSE::MOUSE(CGEEngine *vm, BITMAP **shpl) : SPRITE(vm, shpl), Busy(NULL), Hold(NULL), hx(0), _vm(vm) { - static SEQ ms[] = { +MOUSE::MOUSE(CGEEngine *vm, BITMAP **shpl) : Sprite(vm, shpl), Busy(NULL), Hold(NULL), hx(0), _vm(vm) { + static Seq ms[] = { { 0, 0, 0, 0, 1 }, { 1, 1, 0, 0, 1 } }; @@ -58,6 +58,7 @@ MOUSE::MOUSE(CGEEngine *vm, BITMAP **shpl) : SPRITE(vm, shpl), Busy(NULL), Hold( Z = 127; Step(1); */ + Exist = true; warning("STUB: MOUSE::MOUSE"); } @@ -131,7 +132,7 @@ void MOUSE::Off(void) { } -void MOUSE::ClrEvt(SPRITE *spr) { +void MOUSE::ClrEvt(Sprite *spr) { if (spr) { uint16 e; for (e = EvtTail; e != EvtHead; e = (e + 1) % EVT_MAX) diff --git a/engines/cge/mouse.h b/engines/cge/mouse.h index 61503fadd1..28152b7f29 100644 --- a/engines/cge/mouse.h +++ b/engines/cge/mouse.h @@ -48,7 +48,7 @@ extern TALK *Talk; struct EVENT { uint16 Msk; uint16 X, Y; - SPRITE *Ptr; + Sprite *Ptr; }; extern EVENT Evt[EVT_MAX]; @@ -56,24 +56,24 @@ extern uint16 EvtHead, EvtTail; typedef void (MOUSE_FUN)(void); -class MOUSE : public SPRITE { +class MOUSE : public Sprite { static MOUSE_FUN *OldMouseFun; static MOUSE_FUN NewMouseFun; static uint16 OldMouseMask; - SPRITE *Hold; + Sprite *Hold; int hx, hy; //void SetFun (void); //void ResetFun (void); public: bool Exist; int Buttons; - SPRITE *Busy; - //SPRITE * Touched; + Sprite *Busy; + //Sprite *Touched; MOUSE(CGEEngine *vm, BITMAP **shpl = MC); ~MOUSE(); void On(); void Off(); - static void ClrEvt(SPRITE *spr = NULL); + static void ClrEvt(Sprite *spr = NULL); void Tick(); private: CGEEngine *_vm; diff --git a/engines/cge/snail.cpp b/engines/cge/snail.cpp index 0137ab4cfa..1cb53d2024 100644 --- a/engines/cge/snail.cpp +++ b/engines/cge/snail.cpp @@ -56,27 +56,27 @@ bool Game = false; int Now = 1; int Lev = -1; -extern SPRITE *PocLight; +extern Sprite *_pocLight; //------------------------------------------------------------------------- // SPRITE * Pocket[POCKET_NX]={ NULL, NULL, NULL, NULL, // NULL, NULL, NULL, NULL, }; // int PocPtr = 0; //------------------------------------------------------------------------- -extern SPRITE *Pocket[]; +extern Sprite *_pocket[]; extern int PocPtr; -static void SNGame(SPRITE *spr, int num) { +static void SNGame(Sprite *spr, int num) { switch (num) { case 1 : { #define STAGES 8 #define DRESSED 3 - static SPRITE *dup[3] = { NULL, NULL, NULL }; + static Sprite *dup[3] = { NULL, NULL, NULL }; int buref = 0; int Stage = 0; for (dup[0] = Vga->ShowQ->First(); dup[0]; dup[0] = dup[0]->Next) { - buref = dup[0]->Ref; + buref = dup[0]->_ref; if (buref / 1000 == 16 && buref % 100 == 6) { Stage = (buref / 100) % 10; break; @@ -163,7 +163,7 @@ static void SNGame(SPRITE *spr, int num) { break; //-------------------------------------------------------------------- case 2 : { - static SPRITE *k = NULL, * k1, * k2, * k3; + static Sprite *k = NULL, * k1, * k2, * k3; static int count = 0; if (k == NULL) { @@ -181,7 +181,7 @@ static void SNGame(SPRITE *spr, int num) { k2->Step(new_random(6)); k3->Step(new_random(6)); ///-------------------- - if (spr->Ref == 1 && KEYBOARD::Key[ALT]) { + if (spr->_ref == 1 && KEYBOARD::Key[ALT]) { k1->Step(5); k2->Step(5); k3->Step(5); @@ -190,7 +190,7 @@ static void SNGame(SPRITE *spr, int num) { SNPOST(SNSETZ, 20700, 0, NULL); bool hit = (k1->SeqPtr + k2->SeqPtr + k3->SeqPtr == 15); if (hit) { - if (spr->Ref == 1) { + if (spr->_ref == 1) { SNPOST(SNSAY, 1, 20003, NULL); // hura! SNPOST(SNSEQ, 20011, 2, NULL); // kamera won SNPOST(SNSEND, 20701, -1, NULL); // k1 won @@ -223,7 +223,7 @@ static void SNGame(SPRITE *spr, int num) { } ++ count; } - switch (spr->Ref) { + switch (spr->_ref) { case 1 : SNPOST(SNSAY, 20001, 20011, NULL); // zapro SNPOST(SNSEQ, 20001, 1, NULL); // rzu @@ -275,38 +275,38 @@ static void SNGame(SPRITE *spr, int num) { } -void ExpandSprite(SPRITE *spr) { +void ExpandSprite(Sprite *spr) { if (spr) Vga->ShowQ->Insert(Vga->SpareQ->Remove(spr)); } -void ContractSprite(SPRITE *spr) { +void ContractSprite(Sprite *spr) { if (spr) Vga->SpareQ->Append(Vga->ShowQ->Remove(spr)); } -int FindPocket(SPRITE *spr) { +int FindPocket(Sprite *spr) { for (int i = 0; i < POCKET_NX; i++) - if (Pocket[i] == spr) + if (_pocket[i] == spr) return i; return -1; } void SelectPocket(int n) { - if (n < 0 || (PocLight->SeqPtr && PocPtr == n)) { - PocLight->Step(0); + if (n < 0 || (_pocLight->SeqPtr && PocPtr == n)) { + _pocLight->Step(0); n = FindPocket(NULL); if (n >= 0) PocPtr = n; } else { - if (Pocket[n] != NULL) { + if (_pocket[n] != NULL) { PocPtr = n; - PocLight->Step(1); + _pocLight->Step(1); } } - PocLight->Goto(POCKET_X + PocPtr * POCKET_DX + POCKET_SX, POCKET_Y + POCKET_SY); + _pocLight->Goto(POCKET_X + PocPtr * POCKET_DX + POCKET_SX, POCKET_Y + POCKET_SY); } @@ -320,7 +320,7 @@ void PocFul(void) { } -void Hide1(SPRITE *spr) { +void Hide1(Sprite *spr) { SNPOST_(SNGHOST, -1, 0, spr->Ghost()); } @@ -334,7 +334,7 @@ void SNGhost(BITMAP *bmp) { } -void FeedSnail(SPRITE *spr, SNLIST snq) { +void FeedSnail(Sprite *spr, SNLIST snq) { if (spr) if (spr->Active()) { uint8 ptr = (snq == TAKE) ? spr->TakePtr : spr->NearPtr; @@ -360,7 +360,7 @@ void FeedSnail(SPRITE *spr, SNLIST snq) { KillText(); } if (c->Com == SNNEXT) { - SPRITE *s = (c->Ref < 0) ? spr : Locate(c->Ref); + Sprite *s = (c->Ref < 0) ? spr : Locate(c->Ref); if (s) { uint8 *idx = (snq == TAKE) ? &s->TakePtr : &s->NearPtr; if (*idx != NO_PTR) { @@ -387,7 +387,7 @@ void FeedSnail(SPRITE *spr, SNLIST snq) { break; } if (c->Com == SNIF) { - SPRITE *s = (c->Ref < 0) ? spr : Locate(c->Ref); + Sprite *s = (c->Ref < 0) ? spr : Locate(c->Ref); if (s) { // sprite extsts if (! s->SeqTest(-1)) c = comtab + c->Val; // not parked @@ -475,52 +475,52 @@ void SNAIL::InsCom(SNCOM com, int ref, int val, void *ptr) { } -static void SNNNext(SPRITE *sprel, int p) { +static void SNNNext(Sprite *sprel, int p) { if (sprel) if (sprel->NearPtr != NO_PTR) sprel->NearPtr = p; } -static void SNTNext(SPRITE *sprel, int p) { +static void SNTNext(Sprite *sprel, int p) { if (sprel) if (sprel->TakePtr != NO_PTR) sprel->TakePtr = p; } -static void SNRNNext(SPRITE *sprel, int p) { +static void SNRNNext(Sprite *sprel, int p) { if (sprel) if (sprel->NearPtr != NO_PTR) sprel->NearPtr += p; } -static void SNRTNext(SPRITE *sprel, int p) { +static void SNRTNext(Sprite *sprel, int p) { if (sprel) if (sprel->TakePtr != NO_PTR) sprel->TakePtr += p; } -static void SNZTrim(SPRITE *spr) { +static void SNZTrim(Sprite *spr) { if (spr) if (spr->Active()) { - bool en = Heart->Enable; - SPRITE *s; - Heart->Enable = false; + bool en = _heart->_enable; + Sprite *s; + _heart->_enable = false; s = (spr->Flags.Shad) ? spr->Prev : NULL; Vga->ShowQ->Insert(Vga->ShowQ->Remove(spr)); if (s) { s->Z = spr->Z; Vga->ShowQ->Insert(Vga->ShowQ->Remove(s), spr); } - Heart->Enable = en; + _heart->_enable = en; } } -static void SNHide(SPRITE *spr, int val) { +static void SNHide(Sprite *spr, int val) { if (spr) { spr->Flags.Hide = (val >= 0) ? (val != 0) : (! spr->Flags.Hide); if (spr->Flags.Shad) @@ -529,19 +529,19 @@ static void SNHide(SPRITE *spr, int val) { } -static void SNRmNear(SPRITE *spr) { +static void SNRmNear(Sprite *spr) { if (spr) spr->NearPtr = NO_PTR; } -static void SNRmTake(SPRITE *spr) { +static void SNRmTake(Sprite *spr) { if (spr) spr->TakePtr = NO_PTR; } -void SNSeq(SPRITE *spr, int val) { +void SNSeq(Sprite *spr, int val) { if (spr) { if (spr == Hero && val == 0) Hero->Park(); @@ -551,30 +551,30 @@ void SNSeq(SPRITE *spr, int val) { } -void SNRSeq(SPRITE *spr, int val) { +void SNRSeq(Sprite *spr, int val) { if (spr) SNSeq(spr, spr->SeqPtr + val); } -void SNSend(SPRITE *spr, int val) { +void SNSend(Sprite *spr, int val) { if (spr) { - int was = spr->Cave; + int was = spr->_cave; bool was1 = (was == 0 || was == Now); bool val1 = (val == 0 || val == Now); - spr->Cave = val; + spr->_cave = val; if (val1 != was1) { if (was1) { if (spr->Flags.Kept) { int n = FindPocket(spr); if (n >= 0) - Pocket[n] = NULL; + _pocket[n] = NULL; } Hide1(spr); ContractSprite(spr); spr->Flags.Slav = false; } else { - if (spr->Ref % 1000 == 0) + if (spr->_ref % 1000 == 0) BITMAP::Pal = VGA::SysPal; if (spr->Flags.Back) spr->BackShow(true); @@ -587,22 +587,22 @@ void SNSend(SPRITE *spr, int val) { } -void SNSwap(SPRITE *spr, int xref) { - SPRITE *xspr = Locate(xref); +void SNSwap(Sprite *spr, int xref) { + Sprite *xspr = Locate(xref); if (spr && xspr) { - int was = spr->Cave; - int xwas = xspr->Cave; + int was = spr->_cave; + int xwas = xspr->_cave; bool was1 = (was == 0 || was == Now); bool xwas1 = (xwas == 0 || xwas == Now); - Swap(spr->Cave, xspr->Cave); + Swap(spr->_cave, xspr->_cave); Swap(spr->X, xspr->X); Swap(spr->Y, xspr->Y); Swap(spr->Z, xspr->Z); if (spr->Flags.Kept) { int n = FindPocket(spr); if (n >= 0) - Pocket[n] = xspr; + _pocket[n] = xspr; xspr->Flags.Kept = true; xspr->Flags.Port = false; } @@ -622,12 +622,12 @@ void SNSwap(SPRITE *spr, int xref) { } -void SNCover(SPRITE *spr, int xref) { - SPRITE *xspr = Locate(xref); +void SNCover(Sprite *spr, int xref) { + Sprite *xspr = Locate(xref); if (spr && xspr) { spr->Flags.Hide = true; xspr->Z = spr->Z; - xspr->Cave = spr->Cave; + xspr->_cave = spr->_cave; xspr->Goto(spr->X, spr->Y); ExpandSprite(xspr); if ((xspr->Flags.Shad = spr->Flags.Shad) == 1) { @@ -639,10 +639,10 @@ void SNCover(SPRITE *spr, int xref) { } -void SNUncover(SPRITE *spr, SPRITE *xspr) { +void SNUncover(Sprite *spr, Sprite *xspr) { if (spr && xspr) { spr->Flags.Hide = false; - spr->Cave = xspr->Cave; + spr->_cave = xspr->_cave; spr->Goto(xspr->X, xspr->Y); if ((spr->Flags.Shad = xspr->Flags.Shad) == 1) { Vga->ShowQ->Insert(Vga->ShowQ->Remove(xspr->Prev), spr); @@ -666,25 +666,25 @@ void SNSetY0(int cav, int y0) { } -void SNSetXY(SPRITE *spr, uint16 xy) { +void SNSetXY(Sprite *spr, uint16 xy) { if (spr) spr->Goto(xy % SCR_WID, xy / SCR_WID); } -void SNRelX(SPRITE *spr, int x) { +void SNRelX(Sprite *spr, int x) { if (spr && Hero) spr->Goto(Hero->X + x, spr->Y); } -void SNRelY(SPRITE *spr, int y) { +void SNRelY(Sprite *spr, int y) { if (spr && Hero) spr->Goto(spr->X, Hero->Y + y); } -void SNRelZ(SPRITE *spr, int z) { +void SNRelZ(Sprite *spr, int z) { if (spr && Hero) { spr->Z = Hero->Z + z; SNZTrim(spr); @@ -692,19 +692,19 @@ void SNRelZ(SPRITE *spr, int z) { } -void SNSetX(SPRITE *spr, int x) { +void SNSetX(Sprite *spr, int x) { if (spr) spr->Goto(x, spr->Y); } -void SNSetY(SPRITE *spr, int y) { +void SNSetY(Sprite *spr, int y) { if (spr) spr->Goto(spr->X, y); } -void SNSetZ(SPRITE *spr, int z) { +void SNSetZ(Sprite *spr, int z) { if (spr) { spr->Z = z; //SNPOST_(SNZTRIM, -1, 0, spr); @@ -713,11 +713,11 @@ void SNSetZ(SPRITE *spr, int z) { } -void SNSlave(SPRITE *spr, int ref) { - SPRITE *slv = Locate(ref); +void SNSlave(Sprite *spr, int ref) { + Sprite *slv = Locate(ref); if (spr && slv) { if (spr->Active()) { - SNSend(slv, spr->Cave); + SNSend(slv, spr->_cave); slv->Flags.Slav = true; slv->Z = spr->Z; Vga->ShowQ->Insert(Vga->ShowQ->Remove(slv), spr->Next); @@ -726,33 +726,33 @@ void SNSlave(SPRITE *spr, int ref) { } -void SNTrans(SPRITE *spr, int trans) { +void SNTrans(Sprite *spr, int trans) { if (spr) spr->Flags.Tran = (trans < 0) ? !spr->Flags.Tran : (trans != 0); } -void SNPort(SPRITE *spr, int port) { +void SNPort(Sprite *spr, int port) { if (spr) spr->Flags.Port = (port < 0) ? !spr->Flags.Port : (port != 0); } -void SNKill(SPRITE *spr) { +void SNKill(Sprite *spr) { if (spr) { if (spr->Flags.Kept) { int n = FindPocket(spr); if (n >= 0) - Pocket[n] = NULL; + _pocket[n] = NULL; } - SPRITE *nx = spr->Next; + Sprite *nx = spr->Next; Hide1(spr); Vga->ShowQ->Remove(spr); MOUSE::ClrEvt(spr); if (spr->Flags.Kill) delete spr; else { - spr->Cave = -1; + spr->_cave = -1; Vga->SpareQ->Append(spr); } if (nx) @@ -762,7 +762,7 @@ void SNKill(SPRITE *spr) { } -static void SNSound(SPRITE *spr, int wav, int cnt) { +static void SNSound(Sprite *spr, int wav, int cnt) { if (SNDDrvInfo.DDEV) { if (wav == -1) Sound.Stop(); @@ -772,12 +772,12 @@ static void SNSound(SPRITE *spr, int wav, int cnt) { } -void SNKeep(SPRITE *spr, int stp) { +void SNKeep(Sprite *spr, int stp) { SelectPocket(-1); - if (spr && ! spr->Flags.Kept && Pocket[PocPtr] == NULL) { + if (spr && ! spr->Flags.Kept && _pocket[PocPtr] == NULL) { SNSound(spr, 3, 1); - Pocket[PocPtr] = spr; - spr->Cave = 0; + _pocket[PocPtr] = spr; + spr->_cave = 0; spr->Flags.Kept = true; spr->Goto(POCKET_X + POCKET_DX * PocPtr + POCKET_DX / 2 - spr->W / 2, POCKET_Y + POCKET_DY / 2 - spr->H / 2); @@ -788,12 +788,12 @@ void SNKeep(SPRITE *spr, int stp) { } -void SNGive(SPRITE *spr, int stp) { +void SNGive(Sprite *spr, int stp) { if (spr) { int p = FindPocket(spr); if (p >= 0) { - Pocket[p] = NULL; - spr->Cave = Now; + _pocket[p] = NULL; + spr->_cave = Now; spr->Flags.Kept = false; if (stp >= 0) spr->Step(stp); @@ -803,7 +803,7 @@ void SNGive(SPRITE *spr, int stp) { } -static void SNBackPt(SPRITE *spr, int stp) { +static void SNBackPt(Sprite *spr, int stp) { if (spr) { if (stp >= 0) spr->Step(stp); @@ -812,19 +812,19 @@ static void SNBackPt(SPRITE *spr, int stp) { } -static void SNLevel(SPRITE *spr, int lev) { +static void SNLevel(Sprite *spr, int lev) { #ifdef DEMO static int maxcav[] = { CAVE_MAX }; #else static int maxcav[] = { 1, 8, 16, 23, 24 }; #endif while (Lev < lev) { - SPRITE *spr; + Sprite *spr; ++Lev; spr = Vga->SpareQ->Locate(100 + Lev); if (spr) { spr->BackShow(true); - spr->Cave = 0; + spr->_cave = 0; } } MaxCave = maxcav[Lev]; @@ -838,9 +838,9 @@ static void SNFlag(int fn, bool v) { } -static void SNSetRef(SPRITE *spr, int nr) { +static void SNSetRef(Sprite *spr, int nr) { if (spr) - spr->Ref = nr; + spr->_ref = nr; } @@ -880,7 +880,7 @@ static void SNBarrier(int cav, int bar, bool horz) { } -static void SNWalk(SPRITE *spr, int x, int y) { +static void SNWalk(Sprite *spr, int x, int y) { if (Hero) { if (spr && y < 0) Hero->FindWay(spr); @@ -890,7 +890,7 @@ static void SNWalk(SPRITE *spr, int x, int y) { } -static void SNReach(SPRITE *spr, int mode) { +static void SNReach(Sprite *spr, int mode) { if (Hero) Hero->Reach(spr, mode); } @@ -925,12 +925,12 @@ void SNAIL::RunCom(void) { break; } - SPRITE *sprel = ((snc->Ref >= 0) ? Locate(snc->Ref) : ((SPRITE *) snc->Ptr)); + Sprite *sprel = ((snc->Ref >= 0) ? Locate(snc->Ref) : ((Sprite *) snc->Ptr)); switch (snc->Com) { case SNLABEL : break; case SNPAUSE : - Heart->SetXTimer(&Pause, snc->Val); + _heart->setXTimer(&Pause, snc->Val); if (Talk) TextDelay = true; break; @@ -938,7 +938,7 @@ void SNAIL::RunCom(void) { if (sprel) { if (sprel->SeqTest(snc->Val) && (snc->Val >= 0 || sprel != Hero || Hero->TracePtr < 0)) { - Heart->SetXTimer(&Pause, sprel->Time); + _heart->setXTimer(&Pause, sprel->Time); } else goto xit; } @@ -993,7 +993,7 @@ void SNAIL::RunCom(void) { SNCover(sprel, snc->Val); break; case SNUNCOVER : - SNUncover(sprel, (snc->Val >= 0) ? Locate(snc->Val) : ((SPRITE *) snc->Ptr)); + SNUncover(sprel, (snc->Val >= 0) ? Locate(snc->Val) : ((Sprite *) snc->Ptr)); break; case SNKEEP : SNKeep(sprel, snc->Val); diff --git a/engines/cge/talk.cpp b/engines/cge/talk.cpp index ae94233464..544359897f 100644 --- a/engines/cge/talk.cpp +++ b/engines/cge/talk.cpp @@ -98,7 +98,7 @@ void FONT::Save(void) { TALK::TALK(CGEEngine *vm, const char *tx, TBOX_STYLE mode) - : SPRITE(vm, NULL), Mode(mode), _vm(vm) { + : Sprite(vm, NULL), Mode(mode), _vm(vm) { TS[0] = TS[1] = NULL; Flags.Syst = true; Update(tx); @@ -106,7 +106,7 @@ TALK::TALK(CGEEngine *vm, const char *tx, TBOX_STYLE mode) TALK::TALK(CGEEngine *vm) - : SPRITE(vm, NULL), Mode(PURE), _vm(vm) { + : Sprite(vm, NULL), Mode(PURE), _vm(vm) { TS[0] = TS[1] = NULL; Flags.Syst = true; } diff --git a/engines/cge/talk.h b/engines/cge/talk.h index 184b84e553..2a38af91d1 100644 --- a/engines/cge/talk.h +++ b/engines/cge/talk.h @@ -68,7 +68,7 @@ public: enum TBOX_STYLE { PURE, RECT, ROUND }; -class TALK : public SPRITE { +class TALK : public Sprite { protected: TBOX_STYLE Mode; BITMAP *TS[2]; diff --git a/engines/cge/text.cpp b/engines/cge/text.cpp index 6d7341af0a..74ff6fac2d 100644 --- a/engines/cge/text.cpp +++ b/engines/cge/text.cpp @@ -180,14 +180,14 @@ char *TEXT::getText(int ref) { } -void TEXT::Say(const char *txt, SPRITE *spr) { +void TEXT::Say(const char *txt, Sprite *spr) { KillText(); Talk = new TALK(_vm, txt, ROUND); if (Talk) { bool east = spr->Flags.East; int x = (east) ? (spr->X + spr->W - 2) : (spr->X + 2); int y = spr->Y + 2; - SPRITE *spike = new SPRITE(_vm, SP); + Sprite *spike = new Sprite(_vm, SP); uint16 sw = spike->W; if (east) { @@ -198,7 +198,7 @@ void TEXT::Say(const char *txt, SPRITE *spr) { east = true; } x = (east) ? (spr->X + spr->W - 2) : (spr->X + 2 - sw); - if (spr->Ref == 1) + if (spr->_ref == 1) x += ((east) ? -10 : 10); // Hero Talk->Flags.Kill = true; @@ -206,7 +206,7 @@ void TEXT::Say(const char *txt, SPRITE *spr) { Talk->SetName(Text->getText(SAY_NAME)); Talk->Goto(x - (Talk->W - sw) / 2 - 3 + 6 * east, y - spike->H - Talk->H + 1); Talk->Z = 125; - Talk->Ref = SAY_REF; + Talk->_ref = SAY_REF; spike->Goto(x, Talk->Y + Talk->H - 1); spike->Z = 126; @@ -214,7 +214,7 @@ void TEXT::Say(const char *txt, SPRITE *spr) { spike->Flags.Kill = true; spike->SetName(Text->getText(SAY_NAME)); spike->Step(east); - spike->Ref = SAY_REF; + spike->_ref = SAY_REF; Vga->ShowQ->Insert(Talk, Vga->ShowQ->Last()); Vga->ShowQ->Insert(spike, Vga->ShowQ->Last()); @@ -231,13 +231,13 @@ void CGEEngine::Inf(const char *txt) { Talk->Center(); Talk->Goto(Talk->X, Talk->Y - 20); Talk->Z = 126; - Talk->Ref = INF_REF; + Talk->_ref = INF_REF; Vga->ShowQ->Insert(Talk, Vga->ShowQ->Last()); } } -void SayTime(SPRITE *spr) { +void SayTime(Sprite *spr) { /* static char t[] = "00:00"; struct time ti; diff --git a/engines/cge/text.h b/engines/cge/text.h index 161b2e813a..874a640ad0 100644 --- a/engines/cge/text.h +++ b/engines/cge/text.h @@ -66,7 +66,7 @@ public: void Clear(int from = 1, int upto = 0x7FFF); void Preload(int from = 1, int upto = 0x7FFF); char *getText(int ref); - void Say(const char *txt, SPRITE *spr); + void Say(const char *txt, Sprite *spr); private: CGEEngine *_vm; }; @@ -76,8 +76,8 @@ extern TALK *Talk; extern TEXT *Text; -void Say(const char *txt, SPRITE *spr); -void SayTime(SPRITE *spr); +void Say(const char *txt, Sprite *spr); +void SayTime(Sprite *spr); void Inf(const char *txt); void KillText(void); diff --git a/engines/cge/vga13h.cpp b/engines/cge/vga13h.cpp index b59f8e8de5..1d55af7e31 100644 --- a/engines/cge/vga13h.cpp +++ b/engines/cge/vga13h.cpp @@ -51,7 +51,6 @@ static char Report[] = "NearHeap=..... FarHeap=......\n"; #define FREP 24 static VgaRegBlk VideoMode[] = { - { 0x04, VGASEQ, 0x08, 0x04 }, // memory mode { 0x03, VGAGRA, 0xFF, 0x00 }, // data rotate = 0 { 0x05, VGAGRA, 0x03, 0x00 }, // R/W mode = 0 @@ -69,9 +68,9 @@ static VgaRegBlk VideoMode[] = { }; -bool SpeedTest = false; -SEQ Seq1[] = { { 0, 0, 0, 0, 0 } }; -SEQ Seq2[] = { { 0, 1, 0, 0, 0 }, { 1, 0, 0, 0, 0 } }; +bool SpeedTest = false; +Seq _seq1[] = { { 0, 0, 0, 0, 0 } }; +Seq _seq2[] = { { 0, 1, 0, 0, 0 }, { 1, 0, 0, 0, 0 } }; extern "C" void SNDMIDIPlay(void); @@ -83,8 +82,7 @@ char *NumStr(char *str, int num) { } -static void Video(void) -{ +static void Video() { /* static uint16 SP_S; @@ -206,7 +204,7 @@ DAC MkDAC(uint8 r, uint8 g, uint8 b) { } -RGB MkRGB(uint8 r, uint8 g, uint8 b) { +Rgb MkRGB(uint8 r, uint8 g, uint8 b) { static TRGB x; x.dac.R = r; x.dac.G = g; @@ -215,54 +213,60 @@ RGB MkRGB(uint8 r, uint8 g, uint8 b) { } -SPRITE *Locate(int ref) { - SPRITE *spr = Vga->ShowQ->Locate(ref); +Sprite *Locate(int ref) { + Sprite *spr = Vga->ShowQ->Locate(ref); return (spr) ? spr : Vga->SpareQ->Locate(ref); } -HEART::HEART(void) +Heart::Heart(void) : ENGINE(TMR_DIV) { - Enable = false; - XTimer = NULL; + _enable = false; + _xTimer = NULL; } /* -extern "C" void TimerProc (void) -{ - static SPRITE * spr; - static uint8 run = 0; - - // decrement external timer uint16 - if (Heart->XTimer) - if (*Heart->XTimer) - *Heart->XTimer--; - else - Heart->XTimer = NULL; - - if (! run && Heart->Enable) // check overrun flag - { - static uint16 oldSP, oldSS; - - run++; // disable 2nd call until current lasts - asm mov ax,ds - asm mov oldSS,ss - asm mov oldSP,sp - asm mov ss,ax - asm mov sp,0xFF80 - - // system pseudo-sprite - if (Sys) if (Sys->Time) if (-- Sys->Time == 0) Sys->Tick(); - - for (spr = VGA::ShowQ.First(); spr; spr = spr->Next) - { - if (spr->Time) if (!spr->Flags.Hide) if (-- spr->Time == 0) spr->Tick(); - } - asm mov ss,oldSS - asm mov sp,oldSP - run--; - } +extern "C" void TimerProc() { + static SPRITE * spr; + static uint8 run = 0; + + // decrement external timer uint16 + if (_heart->_xTimer) { + if (*_heart->_xTimer) + *_heart->_xTimer--; + else + _heart->_xTimer = NULL; + } + + if (!run && _heart->_enable) { // check overrun flag + static uint16 oldSP, oldSS; + run++; // disable 2nd call until current lasts + asm mov ax,ds + asm mov oldSS,ss + asm mov oldSP,sp + asm mov ss,ax + asm mov sp,0xFF80 + + // system pseudo-sprite + if (Sys) { + if (Sys->Time) { + if (--Sys->Time == 0) + Sys->Tick(); + } + } + for (spr = VGA::ShowQ.First(); spr; spr = spr->Next) { + if (spr->Time) { + if (!spr->Flags.Hide) { + if (-- spr->Time == 0) + spr->Tick(); + } + } + } + asm mov ss,oldSS + asm mov sp,oldSP + run--; + } } */ @@ -301,17 +305,17 @@ void ENGINE::NewTimer(...) { my_int: //------72Hz-------// // decrement external timer uint16 - if (Heart->XTimer) - if (*Heart->XTimer) - *Heart->XTimer--; + if (_heart->XTimer) { + if (*_heart->XTimer) + *_heart->XTimer--; else - Heart->XTimer = NULL; + _heart->XTimer = NULL; + } - if (! run && Heart->Enable) // check overrun flag - { + if (! run && _heart->Enable) { // check overrun flag static uint16 oldSP, oldSS; - run++; // disable 2nd call until current lasts + run++; // disable 2nd call until current lasts asm mov ax,ds asm mov oldSS,ss asm mov oldSP,sp @@ -319,12 +323,21 @@ void ENGINE::NewTimer(...) { asm mov sp,0xFF80 // system pseudo-sprite - if (Sys) if (Sys->Time) if (-- Sys->Time == 0) Sys->Tick(); + if (Sys) { + if (Sys->Time) { + if (--Sys->Time == 0) + Sys->Tick(); + } + } - for (spr = VGA::ShowQ.First(); spr; spr = spr->Next) - { - if (spr->Time) if (!spr->Flags.Hide) if (-- spr->Time == 0) spr->Tick(); - } + for (spr = VGA::ShowQ.First(); spr; spr = spr->Next) { + if (spr->Time) { + if (!spr->Flags.Hide) { + if (--spr->Time == 0) + spr->Tick(); + } + } + } asm mov ss,oldSS asm mov sp,oldSP run--; @@ -335,39 +348,39 @@ void ENGINE::NewTimer(...) { } -void HEART::SetXTimer(uint16 *ptr) { - if (XTimer && ptr != XTimer) - *XTimer = 0; - XTimer = ptr; +void Heart::setXTimer(uint16 *ptr) { + if (_xTimer && ptr != _xTimer) + *_xTimer = 0; + _xTimer = ptr; } -void HEART::SetXTimer(uint16 *ptr, uint16 time) { - SetXTimer(ptr); +void Heart::setXTimer(uint16 *ptr, uint16 time) { + setXTimer(ptr); *ptr = time; } -SPRITE::SPRITE(CGEEngine *vm, BMP_PTR *shp) +Sprite::Sprite(CGEEngine *vm, BMP_PTR *shp) : X(0), Y(0), Z(0), NearPtr(0), TakePtr(0), Next(NULL), Prev(NULL), SeqPtr(NO_SEQ), Time(0), //Delay(0), - Ext(NULL), Ref(-1), Cave(0), _vm(vm) { + _ext(NULL), _ref(-1), _cave(0), _vm(vm) { memset(File, 0, sizeof(File)); *((uint16 *)&Flags) = 0; SetShapeList(shp); } -SPRITE::~SPRITE(void) { +Sprite::~Sprite() { Contract(); } -BMP_PTR SPRITE::Shp(void) { - register SPREXT *e = Ext; +BMP_PTR Sprite::Shp() { + register SprExt *e = _ext; if (e) - if (e->Seq) { - int i = e->Seq[SeqPtr].Now; + if (e->_seq) { + int i = e->_seq[SeqPtr].Now; if (i >= ShpCnt) { //char s[256]; //sprintf(s, "Seq=%p ShpCnt=%d SeqPtr=%d Now=%d Next=%d", @@ -375,14 +388,14 @@ BMP_PTR SPRITE::Shp(void) { //VGA::Exit(s, File); error("Invalid PHASE in SPRITE::Shp() %s", File); } - return e->ShpList[i]; + return e->_shpList[i]; } return NULL; } -BMP_PTR *SPRITE::SetShapeList(BMP_PTR *shp) { - BMP_PTR *r = (Ext) ? Ext->ShpList : NULL; +BMP_PTR *Sprite::SetShapeList(BMP_PTR *shp) { + BMP_PTR *r = (_ext) ? _ext->_shpList : NULL; ShpCnt = 0; W = 0; @@ -399,29 +412,29 @@ BMP_PTR *SPRITE::SetShapeList(BMP_PTR *shp) { ++ShpCnt; } Expand(); - Ext->ShpList = shp; - if (! Ext->Seq) - SetSeq((ShpCnt < 2) ? Seq1 : Seq2); + _ext->_shpList = shp; + if (!_ext->_seq) + SetSeq((ShpCnt < 2) ? _seq1 : _seq2); } return r; } -void SPRITE::MoveShapes(uint8 *buf) { +void Sprite::MoveShapes(uint8 *buf) { BMP_PTR *p; - for (p = Ext->ShpList; *p; p++) { + for (p = _ext->_shpList; *p; p++) { buf += (*p)->MoveVmap(buf); } } -bool SPRITE::Works(SPRITE *spr) { +bool Sprite::Works(Sprite *spr) { if (spr) - if (spr->Ext) { - SNAIL::COM *c = spr->Ext->Take; + if (spr->_ext) { + SNAIL::COM *c = spr->_ext->_take; if (c != NULL) { c += spr->TakePtr; - if (c->Ref == Ref) + if (c->Ref == _ref) if (c->Com != SNLABEL || (c->Val == 0 || c->Val == Now)) return true; } @@ -430,10 +443,10 @@ bool SPRITE::Works(SPRITE *spr) { } -SEQ *SPRITE::SetSeq(SEQ *seq) { +Seq *Sprite::SetSeq(Seq *seq) { Expand(); - register SEQ *s = Ext->Seq; - Ext->Seq = seq; + register Seq *s = _ext->_seq; + _ext->_seq = seq; if (SeqPtr == NO_SEQ) Step(0); else if (Time == 0) @@ -442,32 +455,32 @@ SEQ *SPRITE::SetSeq(SEQ *seq) { } -bool SPRITE::SeqTest(int n) { +bool Sprite::SeqTest(int n) { if (n >= 0) return (SeqPtr == n); - if (Ext) - return (Ext->Seq[SeqPtr].Next == SeqPtr); + if (_ext) + return (_ext->_seq[SeqPtr].Next == SeqPtr); return true; } -SNAIL::COM *SPRITE::SnList(SNLIST type) { - register SPREXT *e = Ext; +SNAIL::COM *Sprite::SnList(SNLIST type) { + register SprExt *e = _ext; if (e) - return (type == NEAR) ? e->Near : e->Take; + return (type == NEAR) ? e->_near : e->_take; return NULL; } -void SPRITE::SetName(char *n) { - if (Ext) { - if (Ext->Name) { - delete[] Ext->Name; - Ext->Name = NULL; +void Sprite::SetName(char *n) { + if (_ext) { + if (_ext->_name) { + delete[] _ext->_name; + _ext->_name = NULL; } if (n) { - if ((Ext->Name = new char[strlen(n) + 1]) != NULL) - strcpy(Ext->Name, n); + if ((_ext->_name = new char[strlen(n) + 1]) != NULL) + strcpy(_ext->_name, n); else error("No core [%s]", n); } @@ -475,17 +488,17 @@ void SPRITE::SetName(char *n) { } -SPRITE *SPRITE::Expand(void) { - if (! Ext) { - bool enbl = Heart->Enable; - Heart->Enable = false; - if ((Ext = new SPREXT) == NULL) +Sprite *Sprite::Expand(void) { + if (!_ext) { + bool enbl = _heart->_enable; + _heart->_enable = false; + if ((_ext = new SprExt) == NULL) error("No core"); if (*File) { static const char *Comd[] = { "Name", "Phase", "Seq", "Near", "Take", NULL }; char line[LINE_MAX], fname[MAXPATH]; BMP_PTR *shplist = new BMP_PTR [ShpCnt + 1]; - SEQ *seq = NULL; + Seq *seq = NULL; int shpcnt = 0, seqcnt = 0, neacnt = 0, @@ -518,10 +531,10 @@ SPRITE *SPRITE::Expand(void) { break; } case 2 : { // Seq - seq = (SEQ *) realloc(seq, (seqcnt + 1) * sizeof(*seq)); + seq = (Seq *) realloc(seq, (seqcnt + 1) * sizeof(*seq)); if (seq == NULL) error("No core [%s]", fname); - SEQ *s = &seq[seqcnt++]; + Seq *s = &seq[seqcnt++]; s->Now = atoi(strtok(NULL, " \t,;/")); if (s->Now > maxnow) maxnow = s->Now; @@ -586,52 +599,52 @@ SPRITE *SPRITE::Expand(void) { error("Bad JUMP in SEQ [%s]", fname); SetSeq(seq); } else - SetSeq((ShpCnt == 1) ? Seq1 : Seq2); + SetSeq((ShpCnt == 1) ? _seq1 : _seq2); //disable(); // disable interupt SetShapeList(shplist); //enable(); // enable interupt if (nea) - nea[neacnt - 1].Ptr = Ext->Near = nea; + nea[neacnt - 1].Ptr = _ext->_near = nea; else NearPtr = NO_PTR; if (tak) - tak[takcnt - 1].Ptr = Ext->Take = tak; + tak[takcnt - 1].Ptr = _ext->_take = tak; else TakePtr = NO_PTR; } - Heart->Enable = enbl; + _heart->_enable = enbl; } return this; } -SPRITE *SPRITE::Contract(void) { - register SPREXT *e = Ext; +Sprite *Sprite::Contract(void) { + register SprExt *e = _ext; if (e) { - if (e->Name) - delete[] e->Name; - if (Flags.BDel && e->ShpList) { + if (e->_name) + delete[] e->_name; + if (Flags.BDel && e->_shpList) { int i; - for (i = 0; e->ShpList[i]; i++) - delete e->ShpList[i]; - if (MemType(e->ShpList) == NEAR_MEM) - delete[] e->ShpList; + for (i = 0; e->_shpList[i]; i++) + delete e->_shpList[i]; + if (MemType(e->_shpList) == NEAR_MEM) + delete[] e->_shpList; } - if (MemType(e->Seq) == NEAR_MEM) - free(e->Seq); - if (e->Near) - free(e->Near); - if (e->Take) - free(e->Take); + if (MemType(e->_seq) == NEAR_MEM) + free(e->_seq); + if (e->_near) + free(e->_near); + if (e->_take) + free(e->_take); delete e; - Ext = NULL; + _ext = NULL; } return this; } -SPRITE *SPRITE::BackShow(bool fast) { +Sprite *Sprite::BackShow(bool fast) { Expand(); Show(2); Show(1); @@ -642,14 +655,14 @@ SPRITE *SPRITE::BackShow(bool fast) { } -void SPRITE::Step(int nr) { +void Sprite::Step(int nr) { if (nr >= 0) SeqPtr = nr; - if (Ext) { - SEQ *seq; + if (_ext) { + Seq *seq; if (nr < 0) - SeqPtr = Ext->Seq[SeqPtr].Next; - seq = Ext->Seq + SeqPtr; + SeqPtr = _ext->_seq[SeqPtr].Next; + seq = _ext->_seq + SeqPtr; if (seq->Dly >= 0) { Goto(X + (seq->Dx), Y + (seq->Dy)); Time = seq->Dly; @@ -658,28 +671,28 @@ void SPRITE::Step(int nr) { } -void SPRITE::Tick(void) { +void Sprite::Tick(void) { Step(); } -void SPRITE::MakeXlat(uint8 *x) { - if (Ext) { +void Sprite::MakeXlat(uint8 *x) { + if (_ext) { BMP_PTR *b; if (Flags.Xlat) KillXlat(); - for (b = Ext->ShpList; *b; b++) + for (b = _ext->_shpList; *b; b++) (*b)->M = x; Flags.Xlat = true; } } -void SPRITE::KillXlat(void) { - if (Flags.Xlat && Ext) { +void Sprite::KillXlat(void) { + if (Flags.Xlat && _ext) { BMP_PTR *b; - uint8 *m = (*Ext->ShpList)->M; + uint8 *m = (*_ext->_shpList)->M; switch (MemType(m)) { case NEAR_MEM : @@ -689,14 +702,14 @@ void SPRITE::KillXlat(void) { free(m); break; } - for (b = Ext->ShpList; *b; b++) + for (b = _ext->_shpList; *b; b++) (*b)->M = NULL; Flags.Xlat = false; } } -void SPRITE::Goto(int x, int y) { +void Sprite::Goto(int x, int y) { int xo = X, yo = Y; if (W < SCR_WID) { if (x < 0) @@ -720,30 +733,32 @@ void SPRITE::Goto(int x, int y) { } -void SPRITE::Center(void) { +void Sprite::Center(void) { Goto((SCR_WID - W) / 2, (SCR_HIG - H) / 2); } -void SPRITE::Show(void) { - register SPREXT *e; +void Sprite::Show(void) { + register SprExt *e; // asm cli // critic section... - e = Ext; - e->x0 = e->x1; - e->y0 = e->y1; - e->b0 = e->b1; - e->x1 = X; - e->y1 = Y; - e->b1 = Shp(); + e = _ext; + e->_x0 = e->_x1; + e->_y0 = e->_y1; + e->_b0 = e->_b1; + e->_x1 = X; + e->_y1 = Y; + e->_b1 = Shp(); // asm sti // ...done! if (! Flags.Hide) { - if (Flags.Xlat) e->b1->XShow(e->x1, e->y1); - else e->b1->Show(e->x1, e->y1); + if (Flags.Xlat) + e->_b1->XShow(e->_x1, e->_y1); + else + e->_b1->Show(e->_x1, e->_y1); } } -void SPRITE::Show(uint16 pg) { +void Sprite::Show(uint16 pg) { Graphics::Surface *a = VGA::Page[1]; VGA::Page[1] = VGA::Page[pg & 3]; Shp()->Show(X, Y); @@ -751,24 +766,24 @@ void SPRITE::Show(uint16 pg) { } -void SPRITE::Hide(void) { - register SPREXT *e = Ext; - if (e->b0) - e->b0->Hide(e->x0, e->y0); +void Sprite::Hide(void) { + register SprExt *e = _ext; + if (e->_b0) + e->_b0->Hide(e->_x0, e->_y0); } -BMP_PTR SPRITE::Ghost(void) { - register SPREXT *e = Ext; - if (e->b1) { +BMP_PTR Sprite::Ghost(void) { + register SprExt *e = _ext; + if (e->_b1) { BMP_PTR bmp = new BITMAP(0, 0, (uint8 *)NULL); if (bmp == NULL) error("No core"); - bmp->W = e->b1->W; - bmp->H = e->b1->H; + bmp->W = e->_b1->W; + bmp->H = e->_b1->H; if ((bmp->B = farnew(HideDesc, bmp->H)) == NULL) error("No Core"); - bmp->V = (uint8 *) memcpy(bmp->B, e->b1->B, sizeof(HideDesc) * bmp->H); + bmp->V = (uint8 *) memcpy(bmp->B, e->_b1->B, sizeof(HideDesc) * bmp->H); // TODO offset correctly in the surface using y1 pitch and x1 and not via offset segment //bmp->M = (uint8 *) MK_FP(e->y1, e->x1); warning("FIXME: SPRITE::Ghost"); @@ -778,8 +793,8 @@ BMP_PTR SPRITE::Ghost(void) { } -SPRITE *SpriteAt(int x, int y) { - SPRITE *spr = NULL, * tail = Vga->ShowQ->Last(); +Sprite *SpriteAt(int x, int y) { + Sprite *spr = NULL, * tail = Vga->ShowQ->Last(); if (tail) { for (spr = tail->Prev; spr; spr = spr->Prev) if (! spr->Flags.Hide && ! spr->Flags.Tran) @@ -801,24 +816,24 @@ QUEUE::~QUEUE(void) { void QUEUE::Clear(void) { while (Head) { - SPRITE *s = Remove(Head); + Sprite *s = Remove(Head); if (s->Flags.Kill) delete s; } } -void QUEUE::ForAll(void (*fun)(SPRITE *)) { - SPRITE *s = Head; +void QUEUE::ForAll(void (*fun)(Sprite *)) { + Sprite *s = Head; while (s) { - SPRITE *n = s->Next; + Sprite *n = s->Next; fun(s); s = n; } } -void QUEUE::Append(SPRITE *spr) { +void QUEUE::Append(Sprite *spr) { if (Tail) { spr->Prev = Tail; Tail->Next = spr; @@ -832,7 +847,7 @@ void QUEUE::Append(SPRITE *spr) { } -void QUEUE::Insert(SPRITE *spr, SPRITE *nxt) { +void QUEUE::Insert(Sprite *spr, Sprite *nxt) { if (nxt == Head) { spr->Next = Head; Head = spr; @@ -853,8 +868,8 @@ void QUEUE::Insert(SPRITE *spr, SPRITE *nxt) { } -void QUEUE::Insert(SPRITE *spr) { - SPRITE *s; +void QUEUE::Insert(Sprite *spr) { + Sprite *s; for (s = Head; s; s = s->Next) if (s->Z > spr->Z) break; @@ -869,7 +884,7 @@ void QUEUE::Insert(SPRITE *spr) { } -SPRITE *QUEUE::Remove(SPRITE *spr) { +Sprite *QUEUE::Remove(Sprite *spr) { if (spr == Head) Head = spr->Next; if (spr == Tail) @@ -884,11 +899,12 @@ SPRITE *QUEUE::Remove(SPRITE *spr) { } -SPRITE *QUEUE::Locate(int ref) { - SPRITE *spr; - for (spr = Head; spr; spr = spr->Next) - if (spr->Ref == ref) +Sprite *QUEUE::Locate(int ref) { + Sprite *spr; + for (spr = Head; spr; spr = spr->Next) { + if (spr->_ref == ref) return spr; + } return NULL; } @@ -907,9 +923,9 @@ void VGA::init() { } void VGA::deinit() { - for (int idx = 0; idx < 4; ++idx) { + for (int idx = 0; idx < 4; ++idx) delete Page[idx]; - } + delete[] SysPal; } @@ -1120,7 +1136,7 @@ void VGA::Sunset(void) { void VGA::Show(void) { - SPRITE *spr = ShowQ->First(); + Sprite *spr = ShowQ->First(); for (spr = ShowQ->First(); spr; spr = spr->Next) spr->Show(); diff --git a/engines/cge/vga13h.h b/engines/cge/vga13h.h index c984e121e8..af1c981aa8 100644 --- a/engines/cge/vga13h.h +++ b/engines/cge/vga13h.h @@ -81,37 +81,40 @@ namespace CGE { -typedef struct { +struct Rgb { uint16 r : 2; uint16 R : 6; uint16 g : 2; uint16 G : 6; uint16 b : 2; uint16 B : 6; -} RGB; +}; typedef union { DAC dac; - RGB rgb; + Rgb rgb; } TRGB; -typedef struct { - uint8 idx, adr; - uint8 clr, set; -} VgaRegBlk; +struct VgaRegBlk { + uint8 idx; + uint8 adr; + uint8 clr; + uint8 set; +}; -typedef struct { - uint8 Now, Next; - signed char Dx, Dy; +struct Seq { + uint8 Now; + uint8 Next; + int8 Dx; + int8 Dy; int Dly; -} SEQ; +}; -extern SEQ Seq1[]; -extern SEQ Seq2[]; +extern Seq _seq1[]; +extern Seq _seq2[]; //extern SEQ * Compass[]; //extern SEQ TurnToS[]; - #define PAL_CNT 256 #define PAL_SIZ (PAL_CNT * 3) #define VGAATR_ 0x3C0 @@ -130,43 +133,44 @@ extern SEQ Seq2[]; #define VGAST1 (VGAST1_ & 0xFF) -class HEART : public ENGINE { +class Heart : public ENGINE { friend class ENGINE; public: - HEART(); + Heart(); + + bool _enable; + uint16 *_xTimer; - bool Enable; - uint16 *XTimer; - void SetXTimer(uint16 *ptr); - void SetXTimer(uint16 *ptr, uint16 time); + void setXTimer(uint16 *ptr); + void setXTimer(uint16 *ptr, uint16 time); }; -class SPREXT { +class SprExt { public: - int x0, y0; - int x1, y1; - BMP_PTR b0, b1; - BMP_PTR *ShpList; - SEQ *Seq; - char *Name; - SNAIL::COM *Near, * Take; - SPREXT(void) : - x0(0), y0(0), - x1(0), y1(0), - b0(NULL), b1(NULL), - ShpList(NULL), Seq(NULL), - Name(NULL), Near(NULL), Take(NULL) + int _x0, _y0; + int _x1, _y1; + BMP_PTR _b0, _b1; + BMP_PTR *_shpList; + Seq *_seq; + char *_name; + SNAIL::COM *_near, *_take; + SprExt() : + _x0(0), _y0(0), + _x1(0), _y1(0), + _b0(NULL), _b1(NULL), + _shpList(NULL), _seq(NULL), + _name(NULL), _near(NULL), _take(NULL) {} }; -class SPRITE { +class Sprite { protected: - SPREXT *Ext; + SprExt *_ext; public: - int Ref; - signed char Cave; + int _ref; + signed char _cave; struct FLAGS { uint16 Hide : 1; // general visibility switch uint16 Near : 1; // Near action lock @@ -193,23 +197,23 @@ public: int SeqPtr; int ShpCnt; char File[MAXFILE]; - SPRITE *Prev, * Next; - bool Works(SPRITE *spr); + Sprite *Prev, * Next; + bool Works(Sprite *spr); bool SeqTest(int n); inline bool Active(void) { - return Ext != NULL; + return _ext != NULL; } - SPRITE(CGEEngine *vm, BMP_PTR *shp); - virtual ~SPRITE(void); + Sprite(CGEEngine *vm, BMP_PTR *shp); + virtual ~Sprite(void); BMP_PTR Shp(void); BMP_PTR *SetShapeList(BMP_PTR *shp); void MoveShapes(uint8 *buf); - SPRITE *Expand(void); - SPRITE *Contract(void); - SPRITE *BackShow(bool fast = false); + Sprite *Expand(void); + Sprite *Contract(void); + Sprite *BackShow(bool fast = false); void SetName(char *n); inline char *Name(void) { - return (Ext) ? Ext->Name : NULL; + return (_ext) ? _ext->_name : NULL; } void Goto(int x, int y); void Center(void); @@ -220,7 +224,7 @@ public: void MakeXlat(uint8 *x); void KillXlat(void); void Step(int nr = -1); - SEQ *SetSeq(SEQ *seq); + Seq *SetSeq(Seq *seq); SNAIL::COM *SnList(SNLIST type); virtual void Touch(uint16 mask, int x, int y); virtual void Tick(void); @@ -230,23 +234,23 @@ private: class QUEUE { - SPRITE *Head, * Tail; + Sprite *Head, * Tail; public: bool Show; QUEUE(bool show); ~QUEUE(void); - void Append(SPRITE *spr); - void Insert(SPRITE *spr, SPRITE *nxt); - void Insert(SPRITE *spr); - SPRITE *Remove(SPRITE *spr); - void ForAll(void (*fun)(SPRITE *)); - SPRITE *First(void) { + void Append(Sprite *spr); + void Insert(Sprite *spr, Sprite *nxt); + void Insert(Sprite *spr); + Sprite *Remove(Sprite *spr); + void ForAll(void (*fun)(Sprite *)); + Sprite *First(void) { return Head; } - SPRITE *Last(void) { + Sprite *Last(void) { return Tail; } - SPRITE *Locate(int ref); + Sprite *Locate(int ref); void Clear(void); }; @@ -292,8 +296,8 @@ public: }; -DAC MkDAC(uint8 r, uint8 g, uint8 b); -RGB MkRGB(uint8 r, uint8 g, uint8 b); +DAC MkDAC(uint8 r, uint8 g, uint8 b); +Rgb MkRGB(uint8 r, uint8 g, uint8 b); template <class CBLK> @@ -331,12 +335,12 @@ uint8 Closest(CBLK *pal, CBLK x) { -char *NumStr(char *str, int num); +char *NumStr(char *str, int num); //static void Video (void); -uint16 *SaveScreen(void); -void RestoreScreen(uint16 * &sav); -SPRITE *SpriteAt(int x, int y); -SPRITE *Locate(int ref); +uint16 *SaveScreen(void); +void RestoreScreen(uint16 * &sav); +Sprite *SpriteAt(int x, int y); +Sprite *Locate(int ref); extern bool SpeedTest; diff --git a/engines/cge/vmenu.cpp b/engines/cge/vmenu.cpp index 7db5a79f85..ed335191aa 100644 --- a/engines/cge/vmenu.cpp +++ b/engines/cge/vmenu.cpp @@ -130,7 +130,7 @@ void VMENU::Touch(uint16 mask, int x, int y) { bool ok = false; if (Items) { - SPRITE::Touch(mask, x, y); + Sprite::Touch(mask, x, y); y -= TEXT_VM - 1; int n = 0; |