DM: Add warning with repeat parameter

This commit is contained in:
Bendegúz Nagy 2016-07-11 11:37:01 +02:00
parent 1f73323113
commit 14bef5326a
12 changed files with 120 additions and 100 deletions

View File

@ -157,7 +157,7 @@ bool ChampionMan::f328_isObjectThrown(uint16 champIndex, int16 slotIndex, int16
return false;
}
}
warning("MISSING CODE: F0064_SOUND_RequestPlay_CPSD");
warning(false, "MISSING CODE: F0064_SOUND_RequestPlay_CPSD");
f325_decrementStamine(champIndex, f305_getThrowingStaminaCost(L0996_T_Thing));
f330_disableAction(champIndex, 4);
AL0994_i_Experience = 8;
@ -887,7 +887,7 @@ void ChampionMan::f304_addSkillExperience(uint16 champIndex, uint16 skillIndex,
int16 L0922_i_BaseSkillLevel;
warning("potaneitally dangerous cast of uint32 below");
warning(false, "potaneitally dangerous cast of uint32 below");
if ((skillIndex >= k4_ChampionSkillSwing) && (skillIndex <= k11_ChampionSkillShoot) && ((uint32)_vm->_projexpl->_g361_lastCreatureAttackTime < (_vm->_g313_gameTime - 150))) {
exp >>= 1;
}
@ -902,7 +902,7 @@ void ChampionMan::f304_addSkillExperience(uint16 champIndex, uint16 skillIndex,
L0916_ui_BaseSkillIndex = skillIndex;
}
AL0915_ui_SkillLevelBefore = f303_getSkillLevel(champIndex, L0916_ui_BaseSkillIndex | (k0x4000_IgnoreObjectModifiers | k0x8000_IgnoreTemporaryExperience));
warning("potentially dangerous cast of uint32 below");
warning(false, "potentially dangerous cast of uint32 below");
if ((skillIndex >= k4_ChampionSkillSwing) && ((uint32)_vm->_projexpl->_g361_lastCreatureAttackTime > (_vm->_g313_gameTime - 25))) {
exp <<= 1;
}
@ -1145,7 +1145,7 @@ ChampionIndex ChampionMan::f285_getIndexInCell(int16 cell) {
void ChampionMan::f278_resetDataToStartGame() {
if (!_vm->_g298_newGame) {
warning("MISSING CODE: stuff for resetting for loaded games");
warning(false, "MISSING CODE: stuff for resetting for loaded games");
assert(false);
}
@ -1401,7 +1401,7 @@ uint16 ChampionMan::f306_getStaminaAdjustedValue(Champion *champ, int16 val) {
int16 currStamina = champ->_currStamina;
int16 halfMaxStamina = champ->_maxStamina / 2;
if (currStamina < halfMaxStamina) {
warning("Possible undefined behavior in the original code");
warning(false, "Possible undefined behavior in the original code");
val /= 2;
return val + ((uint32)val * (uint32)currStamina) / halfMaxStamina;
}
@ -1693,7 +1693,7 @@ void ChampionMan::f291_drawSlot(uint16 champIndex, int16 slotIndex) {
}
void ChampionMan::f281_renameChampion(Champion* champ) {
warning("STUB METHOD: Champion::renameChampion, F0281_CHAMPION_Rename");
warning(false, "STUB METHOD: Champion::renameChampion, F0281_CHAMPION_Rename");
DisplayMan &dispMan = *_vm->_displayMan;
TextMan &textMan = *_vm->_textMan;

View File

@ -37,6 +37,8 @@
#include "graphics/palette.h"
#include "common/file.h"
#include "common/events.h"
#include "common/array.h"
#include "common/algorithm.h"
#include "dm/dm.h"
#include "gfx.h"
@ -54,6 +56,24 @@
#include "projexpl.h"
namespace DM {
void warning(bool repeat, const char* s, ...) {
va_list va;
va_start(va, s);
Common::String output = Common::String::vformat(s, va);
va_end(va);
if (repeat) {
::warning(output.c_str());
} else {
static Common::Array<Common::String> stringsPrinted;
if (Common::find(stringsPrinted.begin(), stringsPrinted.end(), s) == stringsPrinted.end()) {
stringsPrinted.push_back(output);
::warning(output.c_str());
}
}
}
void turnDirRight(direction &dir) { dir = (direction)((dir + 1) & 3); }
void turnDirLeft(direction &dir) { dir = (direction)((dir - 1) & 3); }
@ -151,7 +171,7 @@ DMEngine::DMEngine(OSystem *syst) : Engine(syst), _console(nullptr) {
debug("DMEngine::DMEngine");
warning("DUMMY CODE: setting _g298_newGame to true, should be in processEntrance");
warning(false, "DUMMY CODE: setting _g298_newGame to true, should be in processEntrance");
_g298_newGame = true;
}
@ -200,7 +220,7 @@ void DMEngine::f463_initializeGame() {
_eventMan->initMouse();
//F0441_STARTEND_ProcessEntrance();
while (_loadsaveMan->f435_loadgame() != k1_LoadgameSuccess) {
warning("TODO: F0441_STARTEND_ProcessEntrance");
warning(false, "TODO: F0441_STARTEND_ProcessEntrance");
}
//F0396_MENUS_LoadSpellAreaLinesBitmap() is not needed, every bitmap has been loaded
@ -216,7 +236,7 @@ void DMEngine::f463_initializeGame() {
}
void DMEngine::f448_initMemoryManager() {
warning("STUB FUNCTION");
warning(false, "STUB FUNCTION");
for (uint16 i = 0; i < 16; ++i)
_displayMan->_g347_paletteTopAndBottomScreen[i] = g21_PalDungeonView[0][i];
}
@ -246,7 +266,7 @@ void DMEngine::f462_startGame() {
f3_processNewPartyMap(_dungeonMan->_g309_partyMapIndex);
if (!_g298_newGame) {
warning("TODO: loading game");
warning(false, "TODO: loading game");
assert(false);
} else {
_displayMan->_g578_useByteBoxCoordinates = false;
@ -255,7 +275,7 @@ void DMEngine::f462_startGame() {
_displayMan->D24_fillScreenBox(g63_boxScreenBottom, k0_ColorBlack);
}
warning("TODO: build copper");
warning(false, "TODO: build copper");
_menuMan->f395_drawMovementArrows();
_championMan->f278_resetDataToStartGame();
_g301_gameTimeTicking = true;
@ -293,20 +313,20 @@ Common::Error DMEngine::run() {
f463_initializeGame(); // @ F0463_START_InitializeGame_CPSADEF
while (true) {
f2_gameloop();
warning("TODO: F0444_STARTEND_Endgame(G0303_B_PartyDead);");
warning(false, "TODO: F0444_STARTEND_Endgame(G0303_B_PartyDead);");
}
return Common::kNoError;
}
void DMEngine::f2_gameloop() {
warning("DUMMY CODE SETTING PARTY POS AND DIRECTION");
warning(false, "DUMMY CODE SETTING PARTY POS AND DIRECTION");
_dungeonMan->_g306_partyMapX = 10;
_dungeonMan->_g307_partyMapY = 4;
_dungeonMan->_g308_partyDir = kDirNorth;
warning("DUMMY CODE: setting InventoryMan::_g432_inventoryChampionOrdinal to zero");
warning(false, "DUMMY CODE: setting InventoryMan::_g432_inventoryChampionOrdinal to zero");
_inventoryMan->_g432_inventoryChampionOrdinal = 0;
warning("DUMMY CODE: clearing screen to black"); // in loop below
warning(false, "DUMMY CODE: clearing screen to black"); // in loop below
while (true) {
if (_g327_newPartyMapIndex != kM1_mapIndexNone) {
@ -331,7 +351,7 @@ T0002002:
_eventMan->f78_showMouse();
_eventMan->f68_setPointerToObject(_objectMan->_g412_objectIconForMousePointer);
_eventMan->f77_hideMouse();
}
if (_eventMan->_g326_refreshMousePointerInMainLoop) {
_eventMan->_g326_refreshMousePointerInMainLoop = false;

View File

@ -50,7 +50,7 @@ class GroupMan;
class Timeline;
class ProjExpl;
void warning(bool repeat, const char *s, ...);
enum direction {
kDirNorth = 0,

View File

@ -475,7 +475,7 @@ void DungeonMan::f455_decompressDungeonFile() {
}
}
} else {
warning("TODO: if the dungeon is uncompressed, read it here");
warning(false, "TODO: if the dungeon is uncompressed, read it here");
}
f.close();
}

View File

@ -412,7 +412,7 @@ void EventManager::f68_setPointerToObject(byte* bitmap) {
_vm->_displayMan->f129_blitToBitmapShrinkWithPalChange(bitmap, _gK190_mousePointerTempBuffer, 16, 16, 16, 16, g44_palChangesMousePointerIcon);
_vm->_displayMan->f132_blitToBitmap(_gK190_mousePointerTempBuffer, L0051_puc_Bitmap, g620_BoxMousePointerObject, 0, 0, 8, 16, k0_ColorBlack, 16, 18);
*/
warning("TODO - Call f129_blitToBitmapShrinkWithPalChange");
warning(false, "TODO - Call f129_blitToBitmapShrinkWithPalChange");
// dummy code
_vm->_displayMan->f132_blitToBitmap(bitmap, L0051_puc_Bitmap, g619_BoxMousePointerObjectShadow, 0, 0, 8, 16, kM1_ColorNoTransparency, 16, 18);
_vm->_displayMan->f132_blitToBitmap(bitmap, L0051_puc_Bitmap, g620_BoxMousePointerObject, 0, 0, 8, 16, k0_ColorBlack, 16, 18);
@ -797,7 +797,7 @@ void EventManager::f377_commandProcessType80ClickInDungeonView(int16 posX, int16
L1151_ps_Junk = (Junk*)_vm->_dungeonMan->f157_getSquareFirstThingData(L1155_i_MapX, L1156_i_MapY);
if ((((Door*)L1151_ps_Junk)->hasButton()) && _vm->_dungeonMan->_g291_dungeonViewClickableBoxes[k5_ViewCellDoorButtonOrWallOrn].isPointInside(posX, posY - 33)) {
_vm->_g321_stopWaitingForPlayerInput = true;
warning("MISSING CODE: F0064_SOUND_RequestPlay_CPSD");
warning(false, "MISSING CODE: F0064_SOUND_RequestPlay_CPSD");
_vm->_movsens->f268_addEvent(k10_TMEventTypeDoor, L1155_i_MapX, L1156_i_MapY, 0, k2_SensorEffToggle, _vm->_g313_gameTime + 1);
return;
}
@ -954,7 +954,7 @@ void EventManager::f378_commandProcess81ClickInPanel(int16 x, int16 y) {
return;
commandType = f358_getCommandTypeFromMouseInput(g456_MouseInput_PanelChest, Common::Point(x, y), k1_LeftMouseButton);
if (commandType != k0_CommandNone)
warning("MISSING CODE: F0302_CHAMPION_ProcessCommands28To65_ClickOnSlotBox");
warning(false, "MISSING CODE: F0302_CHAMPION_ProcessCommands28To65_ClickOnSlotBox");
break;
case k5_PanelContentResurrectReincarnate:
if (!champMan._g415_leaderEmptyHanded)

View File

@ -703,7 +703,7 @@ DisplayMan::DisplayMan(DMEngine *dmEngine) : _vm(dmEngine) {
_g99_bitmapWall_D0R_Native = nullptr;
_g322_paletteSwitchingEnabled = false;
warning("DUMMY CODE: setting _g304_dungeonViewPaletteIndex");
warning(false, "DUMMY CODE: setting _g304_dungeonViewPaletteIndex");
_g304_dungeonViewPaletteIndex = 0;
g186_doorFrame_D1C = new DoorFrames( // @ G0186_s_Graphic558_Frames_Door_D1C
@ -815,8 +815,8 @@ void DisplayMan::f460_initializeGraphicData() {
_g709_bitmapWallSet_DoorFrameFront = new byte[32 * 123];
_g296_bitmapViewport = new byte[224 * 136];
warning("SKIPPED CODE: G0086_puc_Bitmap_ViewportBlackArea it is useless");
warning("SKIPPED CODE: G0087_puc_Bitmap_ViewportFloorArea it is useless");
warning(false, "SKIPPED CODE: G0086_puc_Bitmap_ViewportBlackArea it is useless");
warning(false, "SKIPPED CODE: G0087_puc_Bitmap_ViewportFloorArea it is useless");
if (!_g639_derivedBitmapByteCount)
_g639_derivedBitmapByteCount = new uint16[k730_DerivedBitmapMaximumCount];
@ -1050,7 +1050,7 @@ void DisplayMan::f565_viewportSetPalette(uint16* middleScreenPalette, uint16* to
}
void DisplayMan::f566_viewportBlitToScreen() {
warning("MISSING FUNCTIONALITY: using correct colorpalette");
warning(false, "MISSING FUNCTIONALITY: using correct colorpalette");
Box box(0, 223, 33, 33 + 135);
f132_blitToBitmap(_g296_bitmapViewport, _g348_bitmapScreen, box, 0, 0, k112_byteWidthViewport, k160_byteWidthScreen, kM1_ColorNoTransparency);
@ -1144,7 +1144,7 @@ void DisplayMan::f133_blitBoxFilledWithMaskedBitmap(byte* src, byte* dest, byte*
int16 lastUnitIndex, int16 firstUnitIndex, int16 destByteWidth, Color transparent,
int16 xPos, int16 yPos, int16 destHeight, int16 height2) {
// make sure to take care of inclusive boundaries
warning("STUB FUNCTION: does nothing at all");
warning(false, "STUB FUNCTION: does nothing at all");
}
@ -2045,7 +2045,7 @@ void DisplayMan::f124_drawSquareD1C(direction dir, int16 posX, int16 posY) {
_g296_bitmapViewport, g106_BoxThievesEye_ViewPortVisibleArea, 0, 0,
48, k112_byteWidthViewport, k9_ColorGold, 95, k136_heightViewport); /* BUG0_74 */
f493_addDerivedBitmap(k1_DerivedBitmapThievesEyeVisibleArea);
warning("MISSING CODE: F0480_CACHE_ReleaseBlock");
warning(false, "MISSING CODE: F0480_CACHE_ReleaseBlock");
}
return;
case k17_DoorFrontElemType:
@ -2265,7 +2265,7 @@ void DisplayMan::f128_drawDungeon(direction dir, int16 posX, int16 posY) {
}
void DisplayMan::f98_drawFloorAndCeiling() {
warning("f98_drawFloorAndCeiling doesn't do anything");
warning(false, "f98_drawFloorAndCeiling doesn't do anything");
_g297_drawFloorAndCeilingRequested = false;
}
@ -2711,9 +2711,9 @@ void DisplayMan::f113_drawField(FieldAspect* fieldAspect, Box& box) {
}
// byte *bitmap = dispMan.f489_getNativeBitmapOrGraphic(k73_FieldTeleporterGraphicIndice + fieldAspect->_nativeBitmapRelativeIndex);
warning("MISSING CODE: F0133_VIDEO_BlitBoxFilledWithMaskedBitmap");
warning(false, "MISSING CODE: F0133_VIDEO_BlitBoxFilledWithMaskedBitmap");
warning("IGNORED CODE: F0491_CACHE_IsDerivedBitmapInCache, F0493_CACHE_AddDerivedBitmap, F0480_CACHE_ReleaseBlock");
warning(false, "IGNORED CODE: F0491_CACHE_IsDerivedBitmapInCache, F0493_CACHE_AddDerivedBitmap, F0480_CACHE_ReleaseBlock");
}
int16 DisplayMan::f459_getScaledBitmapByteCount(int16 byteWidth, int16 height, int16 scale) {
@ -3109,7 +3109,7 @@ T0115015_DrawProjectileAsObject:
if (flipHorizontal) {
f130_flipBitmapHorizontal(AL_6_bitmapRedBanana, M77_getNormalizedByteWidth(byteWidth), heightRedEagle);
}
warning("IGNORED CODE: F0493_CACHE_AddDerivedBitmap");
warning(false, "IGNORED CODE: F0493_CACHE_AddDerivedBitmap");
}
}
AL_4_xPos = coordinateSet[0];
@ -3341,7 +3341,7 @@ T0115077_DrawSecondHalfSquareCreature:
memmove(AL_6_bitmapRedBanana, bitmapGreenAnt, byteWidth * 2 * heightRedEagle * sizeof(byte));
f130_flipBitmapHorizontal(AL_6_bitmapRedBanana, byteWidth, heightRedEagle);
}
warning("IGNORED CODE: F0493_CACHE_AddDerivedBitmap");
warning(false, "IGNORED CODE: F0493_CACHE_AddDerivedBitmap");
}
}
}
@ -3371,7 +3371,7 @@ T0115077_DrawSecondHalfSquareCreature:
bitmapGreenAnt = f489_getNativeBitmapOrGraphic(AL_4_nativeBitmapIndex);
AL_6_bitmapRedBanana = f492_getDerivedBitmap(derivedBitmapIndex);
f129_blitToBitmapShrinkWithPalChange(bitmapGreenAnt, AL_6_bitmapRedBanana, sourceByteWidth * 2, sourceHeight, byteWidth * 2, heightRedEagle, paletteChanges);
warning("IGNORED CODE: F0493_CACHE_AddDerivedBitmap");
warning(false, "IGNORED CODE: F0493_CACHE_AddDerivedBitmap");
}
if ((useCreatureSideBitmap && (creatureDirectionDelta == 1)) || /* If creature is viewed from the right, the side view must be flipped */
(useCreatureAttackBitmap && getFlag(creatureAspectInt, k0x0040_MaskActiveGroupFlipBitmap)) ||
@ -3513,7 +3513,7 @@ continue;
f129_blitToBitmapShrinkWithPalChange(bitmapGreenAnt, AL_6_bitmapRedBanana, ((ProjectileAspect *)objectAspect)->_byteWidth * 2, ((ProjectileAspect *)objectAspect)->_height,
byteWidth * 2, heightRedEagle, _g75_palChangesProjectile[AL_8_projectileScaleIndex >> 1]);
if (doNotScaleWithKineticEnergy) {
warning("IGNORED CODE F0493_CACHE_AddDerivedBitmap");
warning(false, "IGNORED CODE F0493_CACHE_AddDerivedBitmap");
}
}
}
@ -3627,7 +3627,7 @@ T0115171_BackFromT0115015_DrawProjectileAsObject:;
AL_4_explosionAspectIndex++; /* Use third graphic in the pattern for large explosion attack */
}
}
warning("IGNORED CODE: F0491_CACHE_IsDerivedBitmapInCache");
warning(false, "IGNORED CODE: F0491_CACHE_IsDerivedBitmapInCache");
AL_6_bitmapRedBanana = f489_getNativeBitmapOrGraphic(AL_4_explosionAspectIndex + k351_FirstExplosionPatternGraphicIndice);
if (smoke) {
f129_blitToBitmapShrinkWithPalChange(AL_6_bitmapRedBanana, _g74_tmpBitmap, 48, 32, 48, 32, g212_PalChangeSmoke);
@ -3636,8 +3636,8 @@ T0115171_BackFromT0115015_DrawProjectileAsObject:;
f133_blitBoxFilledWithMaskedBitmap(AL_6_bitmapRedBanana, _g296_bitmapViewport, nullptr, f492_getDerivedBitmap(k0_DerivedBitmapViewport), g105_BoxExplosionPattern_D0C,
_vm->_rnd->getRandomNumber(4) + 87, _vm->_rnd->getRandomNumber(64),
224, (Color)(k0x0080_BlitDoNotUseMask | k10_ColorFlesh), 0, 0, 136, 93);
warning("IGNORED CODE: F0493_CACHE_AddDerivedBitmap");
warning("IGNORED CODE: F0493_CACHE_AddDerivedBitmap");
warning(false, "IGNORED CODE: F0493_CACHE_AddDerivedBitmap");
warning(false, "IGNORED CODE: F0493_CACHE_AddDerivedBitmap");
} else {
if (rebirthExplosion) {
explosionCoordinates = g227_RebirthStep2ExplosionCoordinates[AL_1_viewSquareExplosionIndex - 3];
@ -3736,7 +3736,7 @@ byte* DisplayMan::f492_getDerivedBitmap(int16 derivedBitmapIndex) {
}
void DisplayMan::f493_addDerivedBitmap(int16 derivedBitmapIndex) {
warning("f493_addDerivedBitmap DOES NOTHING");
warning(false, "f493_addDerivedBitmap DOES NOTHING");
}
}

View File

@ -145,7 +145,7 @@ void GroupMan::f188_dropGroupPossessions(int16 mapX, int16 mapY, Thing groupThin
_vm->_movsens->f267_getMoveResult(L0365_T_CurrentThing, kM1_MapXNotOnASquare, 0, mapX, mapY);
} while ((L0365_T_CurrentThing = L0366_T_NextThing) != Thing::_endOfList);
if (mode >= k0_soundModePlayImmediately) {
warning("MISSING CODE: F0064_SOUND_RequestPlay_CPSD");
warning(false, "MISSING CODE: F0064_SOUND_RequestPlay_CPSD");
}
}
}
@ -256,7 +256,7 @@ void GroupMan::f186_dropCreatureFixedPossessions(uint16 creatureType, int16 mapX
L0358_T_Thing = M15_thingWithNewCell(L0358_T_Thing, ((cell == k255_CreatureTypeSingleCenteredCreature) || !_vm->getRandomNumber(4)) ? _vm->getRandomNumber(4) : cell);
_vm->_movsens->f267_getMoveResult(L0358_T_Thing, kM1_MapXNotOnASquare, 0, mapX, mapY);
}
warning("MISSING CODE: F0064_SOUND_RequestPlay_CPSD");
warning(false, "MISSING CODE: F0064_SOUND_RequestPlay_CPSD");
}
int16 GroupMan::f228_getDirsWhereDestIsVisibleFromSource(int16 srcMapX, int16 srcMapY, int16 destMapX, int16 destMapY) {
@ -888,7 +888,7 @@ T0209089_DoubleSquareMove:
AL0450_i_DestinationMapX = eventMapX;
AL0451_i_DestinationMapY = eventMapY;
AL0450_i_DestinationMapX += _vm->_dirIntoStepCountEast[AL0446_i_Direction] * 2, AL0451_i_DestinationMapY += _vm->_dirIntoStepCountNorth[AL0446_i_Direction] * 2;
warning("MISSING CODE: F0064_SOUND_RequestPlay_CPSD");
warning(false, "MISSING CODE: F0064_SOUND_RequestPlay_CPSD");
goto T0209061_MoveGroup;
}
}
@ -1269,7 +1269,7 @@ int32 GroupMan::f179_getCreatureAspectUpdateTime(ActiveGroup *activeGroup, int16
if (getFlag(AL0326_ui_Aspect, k0x0080_MaskActiveGroupIsAttacking) && (L0331_ui_CreatureType == k18_CreatureTypeAnimatedArmourDethKnight)) {
if (_vm->getRandomNumber(2)) {
toggleFlag(AL0326_ui_Aspect, k0x0040_MaskActiveGroupFlipBitmap);
warning("MISSING CODE: F0064_SOUND_RequestPlay_CPSD");
warning(false, "MISSING CODE: F0064_SOUND_RequestPlay_CPSD");
}
} else {
if (!getFlag(AL0326_ui_Aspect, k0x0080_MaskActiveGroupIsAttacking) || !getFlag(L0327_ui_CreatureGraphicInfo, k0x0400_CreatureInfoGraphicMaskFlipDuringAttack)) {
@ -1291,7 +1291,7 @@ int32 GroupMan::f179_getCreatureAspectUpdateTime(ActiveGroup *activeGroup, int16
toggleFlag(AL0326_ui_Aspect, k0x0040_MaskActiveGroupFlipBitmap);
L1635_ui_SoundIndex = _vm->_movsens->f514_getSound(k13_CreatureTypeCouatl);
if (L1635_ui_SoundIndex <= k34_D13_soundCount) {
warning("MISSING CODE: F0064_SOUND_RequestPlay_CPSD");
warning(false, "MISSING CODE: F0064_SOUND_RequestPlay_CPSD");
}
}
} else {
@ -1318,7 +1318,7 @@ void GroupMan::f205_setDirection(ActiveGroup *activeGroup, int16 dir, int16 crea
static ActiveGroup *G0396_ps_TwoHalfSquareSizedCreaturesGroupLastDirectionSetActiveGroup;
warning("potentially dangerous cast to uint32 below");
warning(false, "potentially dangerous cast to uint32 below");
if (twoHalfSquareSizedCreatures && (_vm->_g313_gameTime == (uint32)G0395_l_TwoHalfSquareSizedCreaturesGroupLastDirectionSetTime) && (activeGroup == G0396_ps_TwoHalfSquareSizedCreaturesGroupLastDirectionSetActiveGroup)) {
return;
}
@ -1336,7 +1336,7 @@ void GroupMan::f205_setDirection(ActiveGroup *activeGroup, int16 dir, int16 crea
}
void GroupMan::f208_groupAddEvent(TimelineEvent *event, uint32 time) {
warning("potentially dangerous cast to uint32 below");
warning(false, "potentially dangerous cast to uint32 below");
if (time < (uint32)M30_time(event->_mapTime)) {
event->_type -= 5;
event->_C._ticks = M30_time(event->_mapTime) - time;
@ -1484,7 +1484,7 @@ bool GroupMan::f207_isCreatureAttacking(Group *group, int16 mapX, int16 mapY, ui
AL0440_i_KineticEnergy = (L0441_ps_CreatureInfo->_attack >> 2) + 1;
AL0440_i_KineticEnergy += _vm->getRandomNumber(AL0440_i_KineticEnergy);
AL0440_i_KineticEnergy += _vm->getRandomNumber(AL0440_i_KineticEnergy);
warning("MISSING CODE: F0064_SOUND_RequestPlay_CPSD");
warning(false, "MISSING CODE: F0064_SOUND_RequestPlay_CPSD");
_vm->_projexpl->f212_projectileCreate(Thing(AL0437_T_Thing), mapX, mapY, AL0439_i_TargetCell, (direction)_g382_currGroupPrimaryDirToParty, f26_getBoundedValue((int16)20, AL0440_i_KineticEnergy, (int16)255), L0441_ps_CreatureInfo->_dexterity, 8);
} else {
if (getFlag(L0441_ps_CreatureInfo->_attributes, k0x0010_MaskCreatureInfo_attackAnyChamp)) {
@ -1512,7 +1512,7 @@ bool GroupMan::f207_isCreatureAttacking(Group *group, int16 mapX, int16 mapY, ui
}
}
if (AL0440_i_AttackSoundOrdinal = L0441_ps_CreatureInfo->_attackSoundOrdinal) {
warning("MISSING CODE: F0064_SOUND_RequestPlay_CPSD");
warning(false, "MISSING CODE: F0064_SOUND_RequestPlay_CPSD");
}
return true;
}
@ -1635,7 +1635,7 @@ int16 GroupMan::f230_getChampionDamage(Group *group, uint16 champIndex) {
AL0558_i_Attack -= _vm->getRandomNumber((AL0558_i_Attack >> 1) + 1) - 1;
}
if (AL0558_i_Damage = _vm->_championMan->f321_addPendingDamageAndWounds_getDamage(champIndex, AL0558_i_Attack, AL0561_ui_AllowedWound, L0564_s_CreatureInfo._attackType)) {
warning("MISSING CODE: F0064_SOUND_RequestPlay_CPSD");
warning(false, "MISSING CODE: F0064_SOUND_RequestPlay_CPSD");
if ((AL0559_ui_PoisonAttack = L0564_s_CreatureInfo._poisonAttack) && _vm->getRandomNumber(2) && ((AL0559_ui_PoisonAttack = _vm->_championMan->f307_getStatisticAdjustedAttack(L0562_ps_Champion, k4_ChampionStatVitality, AL0559_ui_PoisonAttack)) >= 0)) {
_vm->_championMan->f322_championPoison(champIndex, AL0559_ui_PoisonAttack);
}

View File

@ -97,7 +97,7 @@ void InventoryMan::f355_toggleInventory(ChampionIndex championIndex) {
_vm->_displayMan->_g578_useByteBoxCoordinates = false;
_vm->_inventoryMan->_g432_inventoryChampionOrdinal = _vm->M0_indexToOrdinal(championIndex);
if (!AL1102_ui_InventoryChampionOrdinal) {
warning("MISSING CODE: F0136_VIDEO_ShadeScreenBox");
warning(false, "MISSING CODE: F0136_VIDEO_ShadeScreenBox");
}
L1103_ps_Champion = &_vm->_championMan->_gK71_champions[championIndex];
_vm->_displayMan->f466_loadIntoBitmap(k17_InventoryGraphicIndice, _vm->_displayMan->_g296_bitmapViewport);
@ -177,7 +177,7 @@ void InventoryMan::f346_drawPanelResurrectReincarnate() {
}
void InventoryMan::f347_drawPanel() {
warning("possible reintroduction of BUG0_48");
warning(false, "possible reintroduction of BUG0_48");
f334_closeChest(); // possibility of BUG0_48
ChampionMan &cm = *_vm->_championMan;
@ -235,7 +235,7 @@ void InventoryMan::f334_closeChest() {
}
void InventoryMan::f340_drawPanelScrollTextLine(int16 yPos, char* text) {
warning("CHANGE5_03_IMPROVEMENT");
warning(false, "CHANGE5_03_IMPROVEMENT");
for (char* iter = text; *iter != '\0'; ++iter) {
if ((*iter >= 'A') && (*iter <= 'Z')) {
*iter -= 64;
@ -261,7 +261,7 @@ void InventoryMan::f341_drawPanelScroll(Scroll* scroll) {
charRed++;
char *charGreen = charRed; // first char of the second line
while (*charGreen) {
warning("BUG0_47");
warning(false, "BUG0_47");
/* BUG0_47 Graphical glitch when you open a scroll. If there is a single line of text in a scroll
(with no carriage return) then charGreen points to undefined data. This may result in a graphical
glitch and also corrupt other memory. This is not an issue in the original dungeons where all
@ -300,7 +300,7 @@ void InventoryMan::f333_openAndDrawChest(Thing thingToOpen, Container* chest, bo
if (_g426_openChest == thingToOpen)
return;
warning("CHANGE8_09_FIX");
warning(false, "CHANGE8_09_FIX");
if (_g426_openChest != Thing::_none)
f334_closeChest(); // CHANGE8_09_FIX
@ -314,7 +314,7 @@ void InventoryMan::f333_openAndDrawChest(Thing thingToOpen, Container* chest, bo
Thing thing = chest->getSlot();
int16 thingCount = 0;
while (thing != Thing::_endOfList) {
warning("CHANGE8_08_FIX");
warning(false, "CHANGE8_08_FIX");
if (++thingCount > 8)
break; // CHANGE8_08_FIX, make sure that no more than the first 8 objects in a chest are drawn
@ -428,7 +428,7 @@ void InventoryMan::f342_drawPanelObject(Thing thingToDraw, bool pressingEye) {
TextMan &textMan = *_vm->_textMan;
if (_vm->_g331_pressingEye || _vm->_g333_pressingMouth) {
warning("BUG0_48 The contents of a chest are reorganized when an object with a statistic modifier is placed or removed on a champion");
warning(false, "BUG0_48 The contents of a chest are reorganized when an object with a statistic modifier is placed or removed on a champion");
f334_closeChest();
}

View File

@ -117,24 +117,24 @@ T0386006:
box2._y2 = 110;
dm.f132_blitToBitmap(bitmapIcon, dm._g348_bitmapScreen, box2, 0, 0, 8, k160_byteWidthScreen, kM1_ColorNoTransparency);
if (champion.getAttributes(k0x0008_ChampionAttributeDisableAction) || _vm->_championMan->_g299_candidateChampionOrdinal || _vm->_championMan->_g300_partyIsSleeping) {
warning("MISSING CODE: F0136_VIDEO_ShadeScreenBox");
warning(false, "MISSING CODE: F0136_VIDEO_ShadeScreenBox");
}
}
void MenuMan::f456_drawDisabledMenu() {
if (!_vm->_championMan->_g300_partyIsSleeping) {
warning("MISSING CODE: F0363_COMMAND_HighlightBoxDisable");
warning(false, "MISSING CODE: F0363_COMMAND_HighlightBoxDisable");
_vm->_displayMan->_g578_useByteBoxCoordinates = false;
if (_vm->_inventoryMan->_g432_inventoryChampionOrdinal) {
if (_vm->_inventoryMan->_g424_panelContent == k4_PanelContentChest) {
_vm->_inventoryMan->f334_closeChest();
}
} else {
warning("MISSING CODE: F0136_VIDEO_ShadeScreenBox");
warning(false, "MISSING CODE: F0136_VIDEO_ShadeScreenBox");
}
warning("MISSING CODE: F0136_VIDEO_ShadeScreenBox");
warning("MISSING CODE: F0136_VIDEO_ShadeScreenBox");
warning("MISSING CODE: F0067_MOUSE_SetPointerToNormal");
warning(false, "MISSING CODE: F0136_VIDEO_ShadeScreenBox");
warning(false, "MISSING CODE: F0136_VIDEO_ShadeScreenBox");
warning(false, "MISSING CODE: F0067_MOUSE_SetPointerToNormal");
}
}
@ -175,7 +175,7 @@ void MenuMan::f390_refreshActionAreaAndSetChampDirMaxDamageReceived() {
if (_g508_refreshActionArea) {
if (!champMan._g506_actingChampionOrdinal) {
if (_g513_actionDamage) {
warning("MISSING CODE: F0385_MENUS_DrawActionDamage");
warning(false, "MISSING CODE: F0385_MENUS_DrawActionDamage");
_g513_actionDamage = 0;
} else {
_g509_actionAreaContainsIcons = true;
@ -185,7 +185,7 @@ void MenuMan::f390_refreshActionAreaAndSetChampDirMaxDamageReceived() {
_g509_actionAreaContainsIcons = false;
champ->setAttributeFlag(k0x8000_ChampionAttributeActionHand, true);
champMan.f292_drawChampionState((ChampionIndex)_vm->M1_ordinalToIndex(champMan._g506_actingChampionOrdinal));
warning("MISSING CODE: F0387_MENUS_DrawActionArea");
warning(false, "MISSING CODE: F0387_MENUS_DrawActionArea");
}
}
}
@ -198,7 +198,7 @@ void MenuMan::f387_drawActionArea() {
ChampionMan &champMan = *_vm->_championMan;
TextMan &textMan = *_vm->_textMan;
warning("MISSING CODE: F0077_MOUSE_HidePointer_CPSE");
warning(false, "MISSING CODE: F0077_MOUSE_HidePointer_CPSE");
dispMan._g578_useByteBoxCoordinates = false;
dispMan.D24_fillScreenBox(g1_BoxActionArea, k0_ColorBlack);
if (_g509_actionAreaContainsIcons) {
@ -221,7 +221,7 @@ void MenuMan::f387_drawActionArea() {
k12_ActionNameMaximumLength, k200_heightScreen);
}
}
warning("MISSING CODE: F0078_MOUSE_ShowPointer");
warning(false, "MISSING CODE: F0078_MOUSE_ShowPointer");
_g508_refreshActionArea = false;
}
@ -251,26 +251,26 @@ void MenuMan::f393_drawSpellAreaControls(ChampionIndex champIndex) {
int16 champCurrHealth[4];
for (uint16 i = 0; i < 4; ++i)
champCurrHealth[i] = champMan._gK71_champions[i]._currHealth;
warning("MISSING CODE: F0077_MOUSE_HidePointer_CPSE");
warning(false, "MISSING CODE: F0077_MOUSE_HidePointer_CPSE");
dispMan.D24_fillScreenBox(g504_BoxSpellAreaControls, k0_ColorBlack);
int16 champCount = champMan._g305_partyChampionCount;
switch (champIndex) {
case k0_ChampionFirst:
warning("MISSING CODE: F0006_MAIN_HighlightScreenBox");
warning(false, "MISSING CODE: F0006_MAIN_HighlightScreenBox");
textMan.f53_printToLogicalScreen(235, 48, k0_ColorBlack, k4_ColorCyan, champ._name);
if (champCount) {
if (champCurrHealth[1]) {
warning("MISSING CODE: F0006_MAIN_HighlightScreenBox");
warning(false, "MISSING CODE: F0006_MAIN_HighlightScreenBox");
}
labelChamp2:
if (champCount > 2) {
if (champCurrHealth[2]) {
warning("MISSING CODE: F0006_MAIN_HighlightScreenBox");
warning(false, "MISSING CODE: F0006_MAIN_HighlightScreenBox");
}
labelChamp3:
if (champCount > 3) {
if (champCurrHealth[3]) {
warning("MISSING CODE: F0006_MAIN_HighlightScreenBox");
warning(false, "MISSING CODE: F0006_MAIN_HighlightScreenBox");
}
}
}
@ -278,36 +278,36 @@ labelChamp3:
break;
case k1_ChampionSecond:
if (champCurrHealth[0]) {
warning("MISSING CODE: F0006_MAIN_HighlightScreenBox");
warning(false, "MISSING CODE: F0006_MAIN_HighlightScreenBox");
}
warning("MISSING CODE: F0006_MAIN_HighlightScreenBox");
warning(false, "MISSING CODE: F0006_MAIN_HighlightScreenBox");
textMan.f53_printToLogicalScreen(249, 48, k0_ColorBlack, k4_ColorCyan, champ._name);
goto labelChamp2;
case k2_ChampionThird:
if (champCurrHealth[0]) {
warning("MISSING CODE: F0006_MAIN_HighlightScreenBox");
warning(false, "MISSING CODE: F0006_MAIN_HighlightScreenBox");
}
if (champCurrHealth[1]) {
warning("MISSING CODE: F0006_MAIN_HighlightScreenBox");
warning(false, "MISSING CODE: F0006_MAIN_HighlightScreenBox");
}
warning("MISSING CODE: F0006_MAIN_HighlightScreenBox");
warning(false, "MISSING CODE: F0006_MAIN_HighlightScreenBox");
textMan.f53_printToLogicalScreen(263, 48, k0_ColorBlack, k4_ColorCyan, champ._name);
goto labelChamp3;
case k3_ChampionFourth:
if (champCurrHealth[0]) {
warning("MISSING CODE: F0006_MAIN_HighlightScreenBox");
warning(false, "MISSING CODE: F0006_MAIN_HighlightScreenBox");
}
if (champCurrHealth[1]) {
warning("MISSING CODE: F0006_MAIN_HighlightScreenBox");
warning(false, "MISSING CODE: F0006_MAIN_HighlightScreenBox");
}
if (champCurrHealth[2]) {
warning("MISSING CODE: F0006_MAIN_HighlightScreenBox");
warning(false, "MISSING CODE: F0006_MAIN_HighlightScreenBox");
}
warning("MISSING CODE: F0006_MAIN_HighlightScreenBox");
warning(false, "MISSING CODE: F0006_MAIN_HighlightScreenBox");
textMan.f53_printToLogicalScreen(277, 48, k0_ColorBlack, k4_ColorCyan, champ._name);
break;
}
warning("MISSING CODE: F0078_MOUSE_ShowPointer");
warning(false, "MISSING CODE: F0078_MOUSE_ShowPointer");
}
#define k2_SpellAreaAvailableSymbols 2 // @ C2_SPELL_AREA_AVAILABLE_SYMBOLS
@ -350,28 +350,28 @@ void MenuMan::f394_setMagicCasterAndDrawSpellArea(int16 champIndex) {
|| ((champIndex != kM1_ChampionNone) && !champMan._gK71_champions[champIndex]._currHealth))
return;
if (champMan._g514_magicCasterChampionIndex == kM1_ChampionNone) {
warning("MISSING CODE: F0077_MOUSE_HidePointer_CPSE");
warning(false, "MISSING CODE: F0077_MOUSE_HidePointer_CPSE");
dispMan.f132_blitToBitmap(dispMan.f489_getNativeBitmapOrGraphic(k9_MenuSpellAreaBackground), dispMan._g348_bitmapScreen, g0_BoxSpellArea, 0, 0,
48, k160_byteWidthScreen, kM1_ColorNoTransparency);
warning("MISSING CODE: F0078_MOUSE_ShowPointer");
warning(false, "MISSING CODE: F0078_MOUSE_ShowPointer");
}
if (champIndex == kM1_ChampionNone) {
champMan._g514_magicCasterChampionIndex = kM1_ChampionNone;
warning("MISSING CODE: F0077_MOUSE_HidePointer_CPSE");
warning(false, "MISSING CODE: F0077_MOUSE_HidePointer_CPSE");
dispMan._g578_useByteBoxCoordinates = false;
dispMan.D24_fillScreenBox(g0_BoxSpellArea, k0_ColorBlack);
warning("MISSING CODE: F0078_MOUSE_ShowPointer");
warning(false, "MISSING CODE: F0078_MOUSE_ShowPointer");
return;
}
champMan._g514_magicCasterChampionIndex = (ChampionIndex)champIndex;
f392_buildSpellAreaLine(k2_SpellAreaAvailableSymbols);
warning("MISSING CODE: F0077_MOUSE_HidePointer_CPSE");
warning(false, "MISSING CODE: F0077_MOUSE_HidePointer_CPSE");
f393_drawSpellAreaControls((ChampionIndex)champIndex);
dispMan.f132_blitToBitmap(_gK72_bitmapSpellAreaLine, dispMan._g348_bitmapScreen, gK75_BoxSpellAreaLine2, 0, 0, 48, k160_byteWidthScreen, kM1_ColorNoTransparency);
f392_buildSpellAreaLine(k3_SpellAreaChampionSymbols);
dispMan.f132_blitToBitmap(_gK72_bitmapSpellAreaLine, dispMan._g348_bitmapScreen, gK76_BoxSpellAreaLine3, 0, 0, 48, k160_byteWidthScreen, kM1_ColorNoTransparency);
warning("MISSING CODE: F0078_MOUSE_ShowPointer");
warning(false, "MISSING CODE: F0078_MOUSE_ShowPointer");
}
void MenuMan::f457_drawEnabledMenus() {

View File

@ -181,7 +181,7 @@ bool MovesensMan::f275_sensorIsTriggeredByClickOnWall(int16 mapX, int16 mapY, ui
if (!L0753_B_DoNotTriggerSensor) {
L0759_B_AtLeastOneSensorWasTriggered = true;
if (L0755_ps_Sensor->getAudibleA()) {
warning("MISSING CODE: F0064_SOUND_RequestPlay_CPSD");
warning(false, "MISSING CODE: F0064_SOUND_RequestPlay_CPSD");
}
if (!_vm->_championMan->_g415_leaderEmptyHanded && ((L0757_ui_SensorType == k4_SensorWallOrnClickWithSpecObjRemoved) || (L0757_ui_SensorType == k11_SensorWallOrnClickWithSpecObjRemovedRotateSensors) || (L0757_ui_SensorType == k17_SensorWallOrnClickWithSpecObjRemovedSensor))) {
L0754_ps_Generic = (Thing *)_vm->_dungeonMan->f156_getThingData(L0761_T_LeaderHandObject);
@ -296,7 +296,7 @@ bool MovesensMan::f267_getMoveResult(Thing thing, int16 mapX, int16 mapY, int16
_vm->_dungeonMan->_g306_partyMapX = destMapX;
_vm->_dungeonMan->_g307_partyMapY = destMapY;
if (L0712_ps_Teleporter->isAudible()) {
warning("MISSING CODE: F0064_SOUND_RequestPlay_CPSD");
warning(false, "MISSING CODE: F0064_SOUND_RequestPlay_CPSD");
}
L0723_B_DrawDungeonViewWhileFalling = true;
if (L0712_ps_Teleporter->getAbsoluteRotation()) {
@ -307,7 +307,7 @@ bool MovesensMan::f267_getMoveResult(Thing thing, int16 mapX, int16 mapY, int16
} else {
if (L0710_i_ThingType == k4_GroupThingType) {
if (L0712_ps_Teleporter->isAudible()) {
warning("MISSING CODE: F0064_SOUND_RequestPlay_CPSD");
warning(false, "MISSING CODE: F0064_SOUND_RequestPlay_CPSD");
}
L0720_ui_MoveGroupResult = f262_getTeleporterRotatedGroupResult(L0712_ps_Teleporter, thing, L0714_ui_MapIndexSource);
} else {
@ -349,7 +349,7 @@ bool MovesensMan::f267_getMoveResult(Thing thing, int16 mapX, int16 mapY, int16
}
} else {
if (_vm->_championMan->f324_damageAll_getDamagedChampionCount(20, k0x0010_ChampionWoundLegs | k0x0020_ChampionWoundFeet, k2_attackType_SELF)) {
warning("MISSING CODE: F0064_SOUND_RequestPlay_CPSD");
warning(false, "MISSING CODE: F0064_SOUND_RequestPlay_CPSD");
}
}
}
@ -477,7 +477,7 @@ bool MovesensMan::f267_getMoveResult(Thing thing, int16 mapX, int16 mapY, int16
}
L1638_ui_MovementSoundIndex = f514_getSound(((Group *)_vm->_dungeonMan->_g284_thingData[k4_GroupThingType])[thing.getIndex()]._type);
if (L1638_ui_MovementSoundIndex < k34_D13_soundCount) {
warning("MISSING CODE: F0064_SOUND_RequestPlay_CPSD");
warning(false, "MISSING CODE: F0064_SOUND_RequestPlay_CPSD");
}
if (L0721_B_GroupOnPartyMap && (L0715_ui_MapIndexDestination != _vm->_dungeonMan->_g309_partyMapIndex)) { /* If the group leaves the party map */
_vm->_groupMan->f184_removeActiveGroup(AL0708_i_ActiveGroupIndex);
@ -899,7 +899,7 @@ void MovesensMan::f276_sensorProcessThingAdditionOrRemoval(uint16 mapX, uint16 m
goto T0276079;
}
if (L0769_ps_Sensor->getAudibleA()) {
warning("MISSING CODE: F0064_SOUND_RequestPlay_CPSD");
warning(false, "MISSING CODE: F0064_SOUND_RequestPlay_CPSD");
}
f272_sensorTriggerEffect(L0769_ps_Sensor, L0778_i_Effect, mapX, mapY, (uint16)kM1_CellAny); // this will wrap around
goto T0276079;

View File

@ -230,7 +230,7 @@ T0217004:
AL0507_ui_SoundIndex = k04_soundWOODEN_THUD_ATTACK_TROLIN_ANTMAN_STONE_GOLEM;
}
}
warning("MISSING CODE: F0064_SOUND_RequestPlay_CPSD");
warning(false, "MISSING CODE: F0064_SOUND_RequestPlay_CPSD");
}
T0217044:
if (L0509_B_RemovePotion) {
@ -321,10 +321,10 @@ void ProjExpl::f213_explosionCreate(Thing explThing, uint16 attack, uint16 mapXC
L0470_ps_Explosion->setType(explThing.toUint16() - Thing::_firstExplosion.toUint16());
L0470_ps_Explosion->setAttack(attack);
if (explThing.toUint16() < Thing::_explHarmNonMaterial.toUint16()) {
warning("MISING CODE: F0064_SOUND_RequestPlay_CPSD");
warning(false, "MISING CODE: F0064_SOUND_RequestPlay_CPSD");
} else {
if (explThing != Thing::_explSmoke) {
warning("MISSING CODE: F0064_SOUND_RequestPlay_CPSD");
warning(false, "MISSING CODE: F0064_SOUND_RequestPlay_CPSD");
}
}
_vm->_dungeonMan->f163_linkThingToList(L0473_T_Thing, Thing(0), AP0443_ui_ProjectileMapX, AP0444_ui_ProjectileMapY);

View File

@ -137,9 +137,9 @@ void TextMan::f45_messageAreaCreateNewRow() {
uint16 L0029_ui_RowIndex;
if (_g358_messageAreaCursorRow == 3) {
warning("MISSING CODE: F0561_SCROLLER_IsTextScrolling");
warning(false, "MISSING CODE: F0561_SCROLLER_IsTextScrolling");
memset(_g356_bitmapMessageAreaNewRow, k0_ColorBlack, 320 * 7);
warning("MISSING CODE: F0560_SCROLLER_SetCommand");
warning(false, "MISSING CODE: F0560_SCROLLER_SetCommand");
for (L0029_ui_RowIndex = 0; L0029_ui_RowIndex < 3; L0029_ui_RowIndex++) {
_g360_messageAreaRowExpirationTime[L0029_ui_RowIndex] = _g360_messageAreaRowExpirationTime[L0029_ui_RowIndex + 1];
}
@ -153,13 +153,13 @@ void TextMan::f46_messageAreaPrintString(Color color, const char* string) {
int16 L0030_i_StringLength;
L0030_i_StringLength = strlen(string);
warning("MISSING CODE: F0561_SCROLLER_IsTextScrolling");
warning(false, "MISSING CODE: F0561_SCROLLER_IsTextScrolling");
if (true) { // there is a test here with F0561_SCROLLER_IsTextScrolling
_vm->_textMan->f53_printToLogicalScreen(_g359_messageAreaCursorColumn * 6, (_g358_messageAreaCursorRow * 7) + 177, color, k0_ColorBlack, string);
} else {
f40_printTextToBitmap(_g356_bitmapMessageAreaNewRow, k160_byteWidthScreen, _g359_messageAreaCursorColumn * 6, 5, color, k0_ColorBlack, string, 7);
warning("MISSING CODE: F0561_SCROLLER_IsTextScrolling");
warning("MISSING CODE: F0560_SCROLLER_SetCommand");
warning(false, "MISSING CODE: F0561_SCROLLER_IsTextScrolling");
warning(false, "MISSING CODE: F0560_SCROLLER_SetCommand");
}
_g359_messageAreaCursorColumn += L0030_i_StringLength;
_g360_messageAreaRowExpirationTime[_g358_messageAreaCursorRow] = _vm->_g313_gameTime + 200;