diff --git a/Standard Gaming Platform/himage.cpp b/Standard Gaming Platform/himage.cpp index 0fc9a86e..84aa5a15 100644 --- a/Standard Gaming Platform/himage.cpp +++ b/Standard Gaming Platform/himage.cpp @@ -783,8 +783,8 @@ UINT16 *Create16BPPPaletteShaded( SGPPaletteEntry *pPalette, UINT32 rscale, UINT // Convert from RGB to 16 bit value UINT16 Get16BPPColor( UINT32 RGBValue ) { - UINT16 r16, g16, b16, usColor; - UINT8 r,g,b; + UINT16 r16, g16, b16, usColor = 0; + UINT8 r, g, b; r = SGPGetRValue( RGBValue ); g = SGPGetGValue( RGBValue ); diff --git a/Standard Gaming Platform/shading.cpp b/Standard Gaming Platform/shading.cpp index e29de175..d2f6abf1 100644 --- a/Standard Gaming Platform/shading.cpp +++ b/Standard Gaming Platform/shading.cpp @@ -211,7 +211,8 @@ NotThisCol: void BuildShadeTable(void) { UINT16 red, green, blue; - UINT16 index; + UINT16 index = 0; + for(red=0; red < 256; red+=4) for(green=0; green < 256; green+=4) @@ -238,11 +239,12 @@ void BuildShadeTable(void) **********************************************************************************************/ void BuildIntensityTable(void) { - UINT16 red, green, blue; - UINT16 index; + UINT16 red, green, blue = 0; + UINT16 index = 0; FLOAT dShadedPercent = (FLOAT)0.80; + #if 0 UINT32 lumin; diff --git a/Tactical/Interface Items.cpp b/Tactical/Interface Items.cpp index 632db14c..737cc988 100644 --- a/Tactical/Interface Items.cpp +++ b/Tactical/Interface Items.cpp @@ -1066,7 +1066,7 @@ void RenderInvBodyPanel( SOLDIERTYPE *pSoldier, INT16 sX, INT16 sY ) void HandleRenderInvSlots( SOLDIERTYPE *pSoldier, UINT8 fDirtyLevel ) { INT32 cnt; - static CHAR16 pStr[ 150 ]; + static CHAR16 pStr[ 512 ]; if ( InItemDescriptionBox( ) || InItemStackPopup( ) || InKeyRingPopup( ) ) { diff --git a/Tactical/Interface Panels.cpp b/Tactical/Interface Panels.cpp index 3e207ec5..f839b957 100644 --- a/Tactical/Interface Panels.cpp +++ b/Tactical/Interface Panels.cpp @@ -3798,7 +3798,7 @@ void RenderTEAMPanel( BOOLEAN fDirty ) INT16 sFontX, sFontY; UINT32 cnt, posIndex; SOLDIERTYPE *pSoldier; - static CHAR16 pStr[ 200 ], pMoraleStr[ 20 ]; + static CHAR16 pStr[ 512 ], pMoraleStr[ 20 ]; // WANNE 2 if ( fDirty == DIRTYLEVEL2 ) diff --git a/Tactical/LOS.cpp b/Tactical/LOS.cpp index b1ce5e9c..c01a41d1 100644 --- a/Tactical/LOS.cpp +++ b/Tactical/LOS.cpp @@ -4148,7 +4148,7 @@ void MoveBullet( INT32 iBullet ) { iAdjGridNo = iGridNo + DirIncrementer[bDir]; - if ( gubWorldMovementCosts[ iAdjGridNo ][ sDesiredLevel ][ bDir ] < TRAVELCOST_BLOCKED) + if ( gubWorldMovementCosts[ iAdjGridNo ][ bDir ][ sDesiredLevel ] < TRAVELCOST_BLOCKED) { ubTargetID = WhoIsThere2( (INT16) iAdjGridNo, (INT8) sDesiredLevel ); if (ubTargetID != NOBODY) diff --git a/Tactical/Soldier Control.cpp b/Tactical/Soldier Control.cpp index 255dab58..92c99b3d 100644 --- a/Tactical/Soldier Control.cpp +++ b/Tactical/Soldier Control.cpp @@ -235,7 +235,11 @@ Inventory::Inventory() { slotCnt = NUM_INV_SLOTS; inv.reserve(slotCnt); for (int idx=0; idx < slotCnt; ++idx) { - OBJECTTYPE *filler = new OBJECTTYPE; // Use MEMALLOC? + //OBJECTTYPE *filler = new OBJECTTYPE; // Use MEMALLOC? + OBJECTTYPE *filler = NULL; + filler = (OBJECTTYPE*)MemAlloc( sizeof( OBJECTTYPE ) ); + memset( filler, 0, sizeof( OBJECTTYPE ) ); + inv.push_back(*filler); } clear(); @@ -246,7 +250,11 @@ Inventory::Inventory(int slotCount) { slotCnt = slotCount; inv.reserve(slotCnt); for (int idx=0; idx < slotCnt; ++idx) { - OBJECTTYPE *filler = new OBJECTTYPE; // Use MEMALLOC? + //OBJECTTYPE *filler = new OBJECTTYPE; // Use MEMALLOC? + OBJECTTYPE *filler = NULL; + filler = (OBJECTTYPE*)MemAlloc( sizeof( OBJECTTYPE ) ); + memset( filler, 0, sizeof( OBJECTTYPE ) ); + inv.push_back(*filler); } clear(); diff --git a/Tactical/opplist.cpp b/Tactical/opplist.cpp index d6d15aed..fe0701b6 100644 --- a/Tactical/opplist.cpp +++ b/Tactical/opplist.cpp @@ -125,7 +125,7 @@ UINT8 gubKnowledgeValue[10][10] = { // P E R S O N A L O P P L I S T // // -4 -3 -2 -1 0 1 2 3 4 5 // - { 0, 1, 2, 3, 0, 5, 4, 3, 2, 1}, // -4 + { 0, 1, 2, 3, 0, 5, 4, 3, 2, 1}, // -4 { 0, 0, 1, 2, 0, 4, 3, 2, 1, 0}, // -3 O { 0, 0, 0, 1, 0, 3, 2, 1, 0, 0}, // -2 P P { 0, 0, 0, 0, 0, 2, 1, 0, 0, 0}, // -1 U P diff --git a/TileEngine/Tile Animation.cpp b/TileEngine/Tile Animation.cpp index 1afb32f5..6286ff49 100644 --- a/TileEngine/Tile Animation.cpp +++ b/TileEngine/Tile Animation.cpp @@ -71,6 +71,8 @@ ANITILE *CreateAnimationTile( ANITILE_PARAMS *pAniParams ) // Allocate head pNewAniNode = (ANITILE *) MemAlloc( sizeof( ANITILE ) ); + memset( pNewAniNode, 0, sizeof( ANITILE ) ); + if ( (uiFlags & ANITILE_EXISTINGTILE ) ) { pNewAniNode->pLevelNode = pGivenNode; diff --git a/TileEngine/lighting.cpp b/TileEngine/lighting.cpp index 6ef72c2c..5a756863 100644 --- a/TileEngine/lighting.cpp +++ b/TileEngine/lighting.cpp @@ -3266,6 +3266,11 @@ BOOLEAN LightSpriteFake(INT32 iSprite) ********************************************************************************/ BOOLEAN LightSpriteDestroy(INT32 iSprite) { + if ( (iSprite >= MAX_LIGHT_SPRITES ) || (iSprite < 0) ) + { + return FALSE; + } + if(LightSprites[iSprite].uiFlags&LIGHT_SPR_ACTIVE) { if(LightSprites[iSprite].uiFlags&LIGHT_SPR_ERASE) @@ -3377,6 +3382,11 @@ BOOLEAN fRenderLights=FALSE; ********************************************************************************/ BOOLEAN LightSpritePosition(INT32 iSprite, INT16 iX, INT16 iY) { + if ( (iSprite >= MAX_LIGHT_SPRITES ) || (iSprite < 0) ) + { + return FALSE; + } + if(LightSprites[iSprite].uiFlags&LIGHT_SPR_ACTIVE) { if((LightSprites[iSprite].iX==iX) && (LightSprites[iSprite].iY==iY)) @@ -3468,6 +3478,11 @@ BOOLEAN LightSpriteRoofStatus(INT32 iSprite, BOOLEAN fOnRoof) ********************************************************************************/ BOOLEAN LightSpritePower(INT32 iSprite, BOOLEAN fOn) { + if ( (iSprite >= MAX_LIGHT_SPRITES ) || (iSprite < 0) ) + { + return FALSE; + } + if(fOn) { //LightSprites[iSprite].uiFlags|=(LIGHT_SPR_ON|LIGHT_SPR_REDRAW);