DM: Add F0034_OBJECT_DrawLeaderHandObjectName

This commit is contained in:
Bendegúz Nagy 2016-06-28 20:17:38 +02:00
parent 3442019d94
commit ae6f2d711c
4 changed files with 30 additions and 11 deletions

View File

@ -97,24 +97,24 @@ F0280_CHAMPION_AddCandidateChampionToParty // done, so-so
G0498_auc_Graphic560_PaletteChanges_ActionAreaObjectIcon // done
G0237_as_Graphic559_ObjectInfo // done
G0509_B_ActionAreaContainsIcons // done
F0301_CHAMPION_AddObjectInSlot // skip
F0301_CHAMPION_AddObjectInSlot
F0299_CHAMPION_ApplyObjectModifiersToStatistics // done
F0296_CHAMPION_DrawChangedObjectIcons
F0292_CHAMPION_DrawState // skip
F0034_OBJECT_DrawLeaderHandObjectName // skip
F0068_MOUSE_SetPointerToObject // skip
F0077_MOUSE_HidePointer_CPSE // skip
F0078_MOUSE_ShowPointer // skip
F0034_OBJECT_DrawLeaderHandObjectName // done
F0386_MENUS_DrawActionIcon
F0295_CHAMPION_HasObjectIconInSlotBoxChanged
M70_HAND_SLOT_INDEX
G0423_i_InventoryChampionOrdinal
G0420_B_MousePointerHiddenToDrawChangedObjectIconOnScreen
G0412_puc_Bitmap_ObjectIconForMousePointer
G0424_i_PanelContent
G0425_aT_ChestSlots
G0413_i_LeaderHandObjectIconIndex
G0414_T_LeaderHandObject
F0337_INVENTORY_SetDungeonViewPalette
F0299_CHAMPION_ApplyObjectModifiersToStatistics
F0291_CHAMPION_DrawSlot
G0425_aT_ChestSlots
G0423_i_InventoryChampionOrdinal
G0039_ai_Graphic562_LightPowerToLightAmount
G0407_s_Party
G0039_ai_Graphic562_LightPowerToLightAmount
F0355_INVENTORY_Toggle_CPSE // done
F0292_CHAMPION_DrawState // done
F0334_INVENTORY_CloseChest // done

View File

@ -18,6 +18,7 @@ Todo:
Attend to sev's notes on github
Double check enums with hex literals, I think I screwed the regex when processing them
Double check strcat, strstr usages, I might have messed them up in many places
I forgot to add a bunch of warning for show/hide mouse pointer
Missing functions:
Add missing F0163_DUNGEON_LinkThingToList in MovesensMan::sensorIsTriggeredByClickOnWall (I don't think it's safe yet)

View File

@ -27,6 +27,7 @@
#include "objectman.h"
#include "dungeonman.h"
#include "text.h"
namespace DM {
@ -229,5 +230,21 @@ void ObjectMan::drawIconInSlotBox(uint16 slotBoxIndex, int16 iconIndex) {
box, kColorNoTransparency, gDefultViewPort);
}
}
#define kObjectNameMaximumLength 14 // @ C014_OBJECT_NAME_MAXIMUM_LENGTH
void ObjectMan::drawLeaderObjectName(Thing thing) {
IconIndice iconIndex = getIconIndex(thing);
char *objName;
char objectNameBuffer[16];
if (iconIndex == kIconIndiceJunkChampionBones) {
Junk *junk = (Junk*)_vm->_dungeonMan->getThingData(thing);
strcpy(objectNameBuffer, _vm->_championMan->_champions[junk->getChargeCount()]._name);
strcat(objectNameBuffer, _objectNames[iconIndex]);
objName = objectNameBuffer;
} else {
objName = _objectNames[iconIndex];
}
_vm->_textMan->printWithTrailingSpacesToScreen(233, 37, kColorCyan, kColorBlack, objName, kObjectNameMaximumLength);
}
}

View File

@ -62,6 +62,7 @@ public:
IconIndice getIconIndex(Thing thing); // @ F0033_OBJECT_GetIconIndex
void extractIconFromBitmap(uint16 iconIndex, byte *destBitmap); // F0036_OBJECT_ExtractIconFromBitmap
void drawIconInSlotBox(uint16 slotBoxIndex, int16 iconIndex); // @ F0038_OBJECT_DrawIconInSlotBox
void drawLeaderObjectName(Thing thing); // @ F0034_OBJECT_DrawLeaderHandObjectName
};
}