mirror of
https://github.com/scummvm/scummvm.git
synced 2026-06-20 05:45:29 +00:00
SAGA2: Fix global constructor warnings in tile.cpp
This commit is contained in:
@@ -55,7 +55,6 @@ void updateWindowSection(const Rect16 &r);
|
||||
// These externs are imported because the window update routines
|
||||
// need to know about the scrolling tile area.
|
||||
|
||||
extern gPixelMap tileDrawMap;
|
||||
extern StaticPoint16 fineScroll;
|
||||
extern gFont *mainFont;
|
||||
extern bool allPlayerActorsDead;
|
||||
@@ -618,7 +617,7 @@ void updateWindowSection(const Rect16 &r) {
|
||||
Point16 animOffset(kTileRectX - fineScroll.x, kTileRectY);
|
||||
|
||||
// Detects that program is shutting down and aborts the blit
|
||||
if (tileDrawMap.data == nullptr)
|
||||
if (g_vm->_tileDrawMap.data == nullptr)
|
||||
return;
|
||||
|
||||
if (!checkTileAreaPort()) return;
|
||||
@@ -664,7 +663,7 @@ void updateWindowSection(const Rect16 &r) {
|
||||
|
||||
// Blit the animated pixels into the temp map.
|
||||
|
||||
tempPort.bltPixels(tileDrawMap,
|
||||
tempPort.bltPixels(g_vm->_tileDrawMap,
|
||||
localOrg.x,
|
||||
localOrg.y,
|
||||
animClip.x, animClip.y,
|
||||
|
||||
@@ -156,10 +156,6 @@ struct ActiveItemID {
|
||||
return *this;
|
||||
}
|
||||
|
||||
static int16 getVal(int16 m, int16 i) {
|
||||
return (m << activeItemMapShift) | (i & activeItemIndexMask);
|
||||
}
|
||||
|
||||
bool operator == (const ActiveItemID &id) const {
|
||||
return val == id.val;
|
||||
}
|
||||
|
||||
@@ -33,8 +33,6 @@ namespace Saga2 {
|
||||
|
||||
ModalWindow *mWinPtr;
|
||||
|
||||
extern gPixelMap tileDrawMap;
|
||||
|
||||
APPFUNC(cmdModalWindow);
|
||||
|
||||
void ModalModeSetup(void) {}
|
||||
|
||||
+11
-14
@@ -45,10 +45,7 @@ const int defaultStatusWait = 15;
|
||||
Imports
|
||||
* ===================================================================== */
|
||||
|
||||
extern gPixelMap tileDrawMap;
|
||||
extern gPort tileDrawPort;
|
||||
extern BackWindow *mainWindow;
|
||||
extern SpriteSet *objectSprites; // object sprites
|
||||
|
||||
extern APPFUNC(cmdClickSpeech);
|
||||
extern StaticTextPallete genericTextPal;
|
||||
@@ -139,19 +136,19 @@ extern bool gameRunning;
|
||||
// Initialize the Play mode
|
||||
|
||||
bool checkTileAreaPort(void) {
|
||||
if (gameRunning && tileDrawMap.data == nullptr) {
|
||||
if (gameRunning && g_vm->_tileDrawMap.data == nullptr) {
|
||||
// Allocate back buffer for tile rendering
|
||||
tileDrawMap.size.x = (kTileRectWidth + kTileWidth - 1) & ~kTileDXMask;
|
||||
tileDrawMap.size.y = (kTileRectHeight + kTileWidth - 1) & ~kTileDXMask;
|
||||
tileDrawMap.data = new uint8[tileDrawMap.bytes()]();
|
||||
g_vm->_tileDrawMap.size.x = (kTileRectWidth + kTileWidth - 1) & ~kTileDXMask;
|
||||
g_vm->_tileDrawMap.size.y = (kTileRectHeight + kTileWidth - 1) & ~kTileDXMask;
|
||||
g_vm->_tileDrawMap.data = new uint8[g_vm->_tileDrawMap.bytes()]();
|
||||
}
|
||||
|
||||
return tileDrawMap.data != nullptr;
|
||||
return g_vm->_tileDrawMap.data != nullptr;
|
||||
}
|
||||
|
||||
void clearTileAreaPort(void) {
|
||||
if (gameRunning && tileDrawMap.data != nullptr) {
|
||||
_FillRect(tileDrawMap.data, tileDrawMap.size.x, tileDrawMap.size.x, tileDrawMap.size.y, 0);
|
||||
if (gameRunning && g_vm->_tileDrawMap.data != nullptr) {
|
||||
_FillRect(g_vm->_tileDrawMap.data, g_vm->_tileDrawMap.size.x, g_vm->_tileDrawMap.size.x, g_vm->_tileDrawMap.size.y, 0);
|
||||
}
|
||||
|
||||
Rect16 rect(0, 0, 640, 480);
|
||||
@@ -172,7 +169,7 @@ void PlayModeSetup(void) {
|
||||
}
|
||||
|
||||
// Setup the drawing port for the background map
|
||||
g_vm->_backPort.setMap(&tileDrawMap);
|
||||
g_vm->_backPort.setMap(&g_vm->_tileDrawMap);
|
||||
|
||||
// Allocate bitmap for drag & drop mouse pointer
|
||||
objPointerMap.size.x = objPointerMap.size.y = 32;
|
||||
@@ -273,9 +270,9 @@ void PlayModeCleanup(void) {
|
||||
CleanupUserControls();
|
||||
|
||||
// Deallocate back buffer for tile rendering
|
||||
if (tileDrawMap.data) {
|
||||
delete[] tileDrawMap.data;
|
||||
tileDrawMap.data = nullptr;
|
||||
if (g_vm->_tileDrawMap.data) {
|
||||
delete[] g_vm->_tileDrawMap.data;
|
||||
g_vm->_tileDrawMap.data = nullptr;
|
||||
}
|
||||
|
||||
if (objPointerMap.data) {
|
||||
|
||||
@@ -86,6 +86,7 @@ Saga2Engine::Saga2Engine(OSystem *syst)
|
||||
_activeRegionList = new ActiveRegion[kPlayerActors];
|
||||
_toolBase = new gToolBase;
|
||||
_properties = new Properties;
|
||||
_aTaskList = new TileActivityTaskList;
|
||||
|
||||
_edpList = nullptr;
|
||||
_sdpList = nullptr;
|
||||
@@ -109,6 +110,7 @@ Saga2Engine::~Saga2Engine() {
|
||||
delete[] _activeRegionList;
|
||||
delete _toolBase;
|
||||
delete _properties;
|
||||
delete _aTaskList;
|
||||
}
|
||||
|
||||
Common::Error Saga2Engine::run() {
|
||||
|
||||
@@ -69,6 +69,7 @@ class PlayerActor;
|
||||
class ProtoObj;
|
||||
class ActorProto;
|
||||
class HandleArray;
|
||||
class TileActivityTaskList;
|
||||
|
||||
enum {
|
||||
kDebugResources = 1 << 0,
|
||||
@@ -152,9 +153,12 @@ public:
|
||||
gToolBase *_toolBase;
|
||||
Properties *_properties;
|
||||
HandleArray *_tileImageBanks;
|
||||
TileActivityTaskList *_aTaskList;
|
||||
|
||||
|
||||
gDisplayPort _mainPort;
|
||||
gPort _backPort;
|
||||
gPixelMap _tileDrawMap;
|
||||
|
||||
bool _autoAggression;
|
||||
bool _autoWeapon;
|
||||
|
||||
@@ -51,12 +51,6 @@ extern void drawTileMask(
|
||||
TilePoint loc,
|
||||
uint16 roofID = rippedRoofID);
|
||||
|
||||
/* ===================================================================== *
|
||||
Imports
|
||||
* ===================================================================== */
|
||||
|
||||
extern gPixelMap tileDrawMap;
|
||||
|
||||
// Color map ranges
|
||||
extern uint8 *ColorMapRanges;
|
||||
|
||||
|
||||
+17
-43
@@ -79,7 +79,7 @@ const int slowScrollSpeed = 6,
|
||||
const StaticTilePoint Nowhere = {(int16)minint16, (int16)minint16, (int16)minint16};
|
||||
|
||||
const StaticMetaTileID NoMetaTile = {nullID, nullID};
|
||||
const StaticActiveItemID NoActiveItem = {ActiveItemID::getVal(0, activeItemIndexNullID)};
|
||||
const StaticActiveItemID NoActiveItem = {activeItemIndexNullID};
|
||||
|
||||
enum SurfaceType {
|
||||
surfaceHoriz, // Level surface
|
||||
@@ -160,12 +160,6 @@ extern int16 worldCount; // Used as map count as well
|
||||
|
||||
extern ObjectID viewCenterObject; // ID of object that view tracks
|
||||
|
||||
/* ===================================================================== *
|
||||
Exports
|
||||
* ===================================================================== */
|
||||
|
||||
gPixelMap tileDrawMap;
|
||||
|
||||
/* ===================================================================== *
|
||||
Tile structure management
|
||||
* ===================================================================== */
|
||||
@@ -202,24 +196,16 @@ StaticTilePoint viewCenter = {0, 0, 0}; // coordinates of view on ma
|
||||
|
||||
// These two variables define which sectors overlap the view rect.
|
||||
|
||||
TilePoint minSector,
|
||||
maxSector;
|
||||
|
||||
int16 currentMapNum; // which map is in use
|
||||
int16 lastMapNum;
|
||||
|
||||
int32 lastUpdateTime; // time of last display update
|
||||
|
||||
gPort mouseSavePort; // for tweaking mouse backsave
|
||||
|
||||
|
||||
/* also:
|
||||
-- height of center character
|
||||
-- what map we are on.
|
||||
*/
|
||||
|
||||
BankBits LoadedBanks; // what banks are loaded?
|
||||
|
||||
/* ===================================================================== *
|
||||
ActiveItemID member functions
|
||||
* ===================================================================== */
|
||||
@@ -885,11 +871,6 @@ void cleanupActiveItemStates(void) {
|
||||
TileActivityTaskList member functions
|
||||
* ===================================================================== */
|
||||
|
||||
//-----------------------------------------------------------------------
|
||||
// The list of active tile activity tasks
|
||||
|
||||
static TileActivityTaskList aTaskList;
|
||||
|
||||
//-----------------------------------------------------------------------
|
||||
// Constructor
|
||||
|
||||
@@ -1017,7 +998,7 @@ TileActivityTask *TileActivityTaskList::newTask(ActiveItem *activeInstance) {
|
||||
void TileActivityTask::remove(void) {
|
||||
debugC(3, kDebugTasks, "Removing TAT");
|
||||
|
||||
aTaskList._list.remove(this);
|
||||
g_vm->_aTaskList->_list.remove(this);
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------
|
||||
@@ -1027,7 +1008,7 @@ void TileActivityTask::openDoor(ActiveItem &activeInstance) {
|
||||
debugC(3, kDebugTasks, "TAT Open Door");
|
||||
|
||||
TileActivityTask *tat;
|
||||
if ((tat = aTaskList.newTask(&activeInstance)) != nullptr)
|
||||
if ((tat = g_vm->_aTaskList->newTask(&activeInstance)) != nullptr)
|
||||
tat->activityType = activityTypeOpen;
|
||||
}
|
||||
|
||||
@@ -1038,7 +1019,7 @@ void TileActivityTask::closeDoor(ActiveItem &activeInstance) {
|
||||
debugC(3, kDebugTasks, "TAT Close Door");
|
||||
|
||||
TileActivityTask *tat;
|
||||
if ((tat = aTaskList.newTask(&activeInstance)) != nullptr)
|
||||
if ((tat = g_vm->_aTaskList->newTask(&activeInstance)) != nullptr)
|
||||
tat->activityType = activityTypeClose;
|
||||
}
|
||||
|
||||
@@ -1049,7 +1030,7 @@ void TileActivityTask::doScript(ActiveItem &activeInstance, uint8 finalState, Th
|
||||
debugC(3, kDebugTasks, "TAT Do Script");
|
||||
|
||||
TileActivityTask *tat;
|
||||
if ((tat = aTaskList.newTask(&activeInstance)) != nullptr) {
|
||||
if ((tat = g_vm->_aTaskList->newTask(&activeInstance)) != nullptr) {
|
||||
if (scr)
|
||||
debugC(3, kDebugTasks, "TAT Assign Script!");
|
||||
|
||||
@@ -1069,7 +1050,7 @@ void TileActivityTask::doScript(ActiveItem &activeInstance, uint8 finalState, Th
|
||||
void TileActivityTask::updateActiveItems(void) {
|
||||
int count = 0, scriptCount = 0;
|
||||
|
||||
for (Common::List<TileActivityTask *>::iterator it = aTaskList._list.begin(); it != aTaskList._list.end();) {
|
||||
for (Common::List<TileActivityTask *>::iterator it = g_vm->_aTaskList->_list.begin(); it != g_vm->_aTaskList->_list.end();) {
|
||||
TileActivityTask *tat = *it;
|
||||
ActiveItem *activityInstance = tat->tai;
|
||||
bool activityTaskDone = false;
|
||||
@@ -1132,7 +1113,7 @@ void TileActivityTask::updateActiveItems(void) {
|
||||
// Search for tile activity task matching an item
|
||||
|
||||
TileActivityTask *TileActivityTask::find(ActiveItem *tai) {
|
||||
for (Common::List<TileActivityTask *>::iterator it = aTaskList._list.begin(); it != aTaskList._list.end(); ++it) {
|
||||
for (Common::List<TileActivityTask *>::iterator it = g_vm->_aTaskList->_list.begin(); it != g_vm->_aTaskList->_list.end(); ++it) {
|
||||
if (tai == (*it)->tai)
|
||||
return *it;
|
||||
}
|
||||
@@ -1182,7 +1163,7 @@ void saveTileTasks(Common::OutSaveFile *outS) {
|
||||
|
||||
outS->write("TACT", 4);
|
||||
CHUNK_BEGIN;
|
||||
aTaskList.write(out);
|
||||
g_vm->_aTaskList->write(out);
|
||||
CHUNK_END;
|
||||
}
|
||||
|
||||
@@ -1194,7 +1175,7 @@ void loadTileTasks(Common::InSaveFile *in, int32 chunkSize) {
|
||||
return;
|
||||
|
||||
// Reconstruct aTaskList from archived data
|
||||
aTaskList.read(in);
|
||||
g_vm->_aTaskList->read(in);
|
||||
}
|
||||
|
||||
|
||||
@@ -1203,7 +1184,7 @@ void loadTileTasks(Common::InSaveFile *in, int32 chunkSize) {
|
||||
|
||||
void cleanupTileTasks(void) {
|
||||
// Simply call the aTaskList's cleanup
|
||||
aTaskList.cleanup();
|
||||
g_vm->_aTaskList->cleanup();
|
||||
}
|
||||
|
||||
/* ===================================================================== *
|
||||
@@ -2519,7 +2500,7 @@ inline void drawMetaRow(TilePoint coords, Point16 pos) {
|
||||
int16 layerLimit;
|
||||
|
||||
for (;
|
||||
pos.x < tileDrawMap.size.x + kMetaDX;
|
||||
pos.x < g_vm->_tileDrawMap.size.x + kMetaDX;
|
||||
coords.u++,
|
||||
coords.v--,
|
||||
uOrg += kPlatformWidth,
|
||||
@@ -2586,7 +2567,7 @@ inline void drawMetaRow(TilePoint coords, Point16 pos) {
|
||||
p->highestPixel = kTileHeight * (kPlatformWidth - 1) + kMaxTileHeight * 2 + 64;
|
||||
|
||||
if (pos.y <= 0
|
||||
|| pos.y - p->highestPixel >= tileDrawMap.size.y)
|
||||
|| pos.y - p->highestPixel >= g_vm->_tileDrawMap.size.y)
|
||||
continue;
|
||||
|
||||
*put++ = p;
|
||||
@@ -2822,7 +2803,7 @@ inline void drawMetaTiles(void) {
|
||||
// (replace 256 constant with better value)
|
||||
|
||||
for (;
|
||||
metaPos.y < tileDrawMap.size.y + kMetaTileHeight * 4 ;
|
||||
metaPos.y < g_vm->_tileDrawMap.size.y + kMetaTileHeight * 4 ;
|
||||
baseCoords.u--,
|
||||
baseCoords.v--
|
||||
) {
|
||||
@@ -4332,8 +4313,6 @@ void updateMainDisplay(void) {
|
||||
int32 scrollSpeed = defaultScrollSpeed,
|
||||
scrollDistance;
|
||||
|
||||
int16 viewSize = kTileRectHeight;
|
||||
int16 mapSectors = curMap->mapSize * 8 * 16 / kSectorSize;
|
||||
TilePoint trackPos,
|
||||
mCoords;
|
||||
|
||||
@@ -4396,11 +4375,6 @@ void updateMainDisplay(void) {
|
||||
|
||||
// Compute the largest U/V rectangle which completely
|
||||
// encloses the view area, and convert to sector coords.
|
||||
minSector.u = clamp(0, (viewCenter.u - viewSize) / kSectorSize, mapSectors - 1);
|
||||
minSector.v = clamp(0, (viewCenter.v - viewSize) / kSectorSize, mapSectors - 1);
|
||||
maxSector.u = clamp(0, (viewCenter.u + viewSize) / kSectorSize, mapSectors - 1);
|
||||
maxSector.v = clamp(0, (viewCenter.v + viewSize) / kSectorSize, mapSectors - 1);
|
||||
|
||||
buildRoofTable();
|
||||
|
||||
mCoords.u = trackPos.u >> (kTileUVShift + kPlatShift);
|
||||
@@ -4427,7 +4401,7 @@ void updateMainDisplay(void) {
|
||||
void drawMainDisplay(void) {
|
||||
|
||||
|
||||
// draws tiles to tileDrawMap.data
|
||||
// draws tiles to g_vm->_tileDrawMap.data
|
||||
drawMetaTiles();
|
||||
|
||||
// Draw sprites onto back buffer
|
||||
@@ -4445,10 +4419,10 @@ void drawMainDisplay(void) {
|
||||
// Blit it all onto the screen
|
||||
drawPage->writePixels(
|
||||
rect,
|
||||
tileDrawMap.data
|
||||
g_vm->_tileDrawMap.data
|
||||
+ fineScroll.x
|
||||
+ fineScroll.y * tileDrawMap.size.x,
|
||||
tileDrawMap.size.x);
|
||||
+ fineScroll.y * g_vm->_tileDrawMap.size.x,
|
||||
g_vm->_tileDrawMap.size.x);
|
||||
|
||||
updateFrameCount();
|
||||
}
|
||||
|
||||
@@ -973,9 +973,6 @@ extern StaticTilePoint viewCenter; // coordinates of view on map
|
||||
|
||||
// These two variables define which sectors overlap the view rect.
|
||||
|
||||
extern TilePoint minSector,
|
||||
maxSector;
|
||||
|
||||
extern uint16 rippedRoofID;
|
||||
|
||||
/* ===================================================================== *
|
||||
|
||||
@@ -40,7 +40,6 @@ const uint16 tileBankCount = 64;
|
||||
const uint32 tileImageID = MKTAG('T', 'I', 'L', 0);
|
||||
|
||||
|
||||
extern gPixelMap tileDrawMap;
|
||||
extern int16 currentMapNum;
|
||||
extern hResource *objResFile;
|
||||
extern hResContext *tileRes; // tile resource handle
|
||||
@@ -70,8 +69,8 @@ void drawPlatform(
|
||||
int16 uOrg, // for TAG search
|
||||
int16 vOrg) { // for TAG search
|
||||
|
||||
int16 right = tileDrawMap.size.x,
|
||||
bottom = tileDrawMap.size.y;
|
||||
int16 right = g_vm->_tileDrawMap.size.x,
|
||||
bottom = g_vm->_tileDrawMap.size.y;
|
||||
|
||||
Point16 tilePos;
|
||||
|
||||
@@ -128,7 +127,7 @@ void drawPlatform(
|
||||
int16 y = tilePos.y - h;
|
||||
|
||||
if (ti->attrs.height > 0 && y < bottom + ti->attrs.height - 1) {
|
||||
drawTile(&tileDrawMap, tilePos.x, y, ti->attrs.height, imageData);
|
||||
drawTile(&g_vm->_tileDrawMap, tilePos.x, y, ti->attrs.height, imageData);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user