mirror of
https://github.com/scummvm/scummvm.git
synced 2026-06-20 05:45:29 +00:00
Some IHNM changes:
o Fix status text color. (Though text is all ITE-specific) o Enable inventory drawing o Load inventory sprites o Hid now unneeded actor loading debug output svn-id: r19011
This commit is contained in:
+2
-2
@@ -414,7 +414,7 @@ void Actor::loadActorList(int protagonistIdx, int actorCount, int actorsResource
|
||||
actor = _actors[i] = new ActorData();
|
||||
actor->_id = objectIndexToId(kGameObjectActor, i); //actorIndexToId(i);
|
||||
actor->_index = i;
|
||||
debug(0, "init actor id=0x%x index=%d", actor->_id, actor->_index);
|
||||
debug(4, "init actor id=0x%x index=%d", actor->_id, actor->_index);
|
||||
actorS.readUint32LE(); //next displayed
|
||||
actorS.readByte(); //type
|
||||
actor->_flags = actorS.readByte();
|
||||
@@ -427,7 +427,7 @@ void Actor::loadActorList(int protagonistIdx, int actorCount, int actorsResource
|
||||
actor->_screenDepth = actorS.readUint16LE();
|
||||
actor->_spriteListResourceId = actorS.readUint32LE();
|
||||
actor->_frameListResourceId = actorS.readUint32LE();
|
||||
debug(0, "%d: %d, %d [%d]", i, actor->_spriteListResourceId, actor->_frameListResourceId, actor->_nameIndex);
|
||||
debug(4, "%d: %d, %d [%d]", i, actor->_spriteListResourceId, actor->_frameListResourceId, actor->_nameIndex);
|
||||
actor->_scriptEntrypointNumber = actorS.readUint32LE();
|
||||
actorS.readUint32LE(); // xSprite *dSpr;
|
||||
actorS.readUint16LE(); //LEFT
|
||||
|
||||
+11
-13
@@ -534,19 +534,17 @@ static PanelButton IHNM_MainPanelButtons[] = {
|
||||
{kPanelButtonVerb, 223,76, 114,30, kVerbGive,'g',0, 12,13,0},
|
||||
{kPanelButtonVerb, 223,108, 114,30, kVerbPush,'p',0, 14,15,0},
|
||||
{kPanelButtonArrow, 606,22, 20,25, -1,'[',0, 0,0,0}, //TODO: arrow Sprite Numbers
|
||||
{kPanelButtonArrow, 606,108, 20,25, 1,']',0, 0,0,0}
|
||||
//TODO:inventory
|
||||
/*
|
||||
{kPanelButtonInventory, 181 + 32*0,6, 27,18, 0,'-',0, 0,0,0},
|
||||
{kPanelButtonInventory, 181 + 32*1,6, 27,18, 1,'-',0, 0,0,0},
|
||||
{kPanelButtonInventory, 181 + 32*2,6, 27,18, 2,'-',0, 0,0,0},
|
||||
{kPanelButtonInventory, 181 + 32*3,6, 27,18, 3,'-',0, 0,0,0},
|
||||
{kPanelButtonArrow, 606,108, 20,25, 1,']',0, 0,0,0},
|
||||
|
||||
{kPanelButtonInventory, 181 + 32*0,27, 27,18, 4,'-',0, 0,0,0},
|
||||
{kPanelButtonInventory, 181 + 32*1,27, 27,18, 5,'-',0, 0,0,0},
|
||||
{kPanelButtonInventory, 181 + 32*2,27, 27,18, 6,'-',0, 0,0,0},
|
||||
{kPanelButtonInventory, 181 + 32*3,27, 27,18, 7,'-',0, 0,0,0}
|
||||
*/
|
||||
{kPanelButtonInventory, 357 + 64*0,18, 54,54, 0,'-',0, 0,0,0},
|
||||
{kPanelButtonInventory, 357 + 64*1,18, 54,54, 1,'-',0, 0,0,0},
|
||||
{kPanelButtonInventory, 357 + 64*2,18, 54,54, 2,'-',0, 0,0,0},
|
||||
{kPanelButtonInventory, 357 + 64*3,18, 54,54, 3,'-',0, 0,0,0},
|
||||
|
||||
{kPanelButtonInventory, 357 + 64*0,80, 54,54, 4,'-',0, 0,0,0},
|
||||
{kPanelButtonInventory, 357 + 64*1,80, 54,54, 5,'-',0, 0,0,0},
|
||||
{kPanelButtonInventory, 357 + 64*2,80, 54,54, 6,'-',0, 0,0,0},
|
||||
{kPanelButtonInventory, 357 + 64*3,80, 54,54, 7,'-',0, 0,0,0}
|
||||
};
|
||||
|
||||
static PanelButton IHNM_ConversePanelButtons[] = {
|
||||
@@ -587,7 +585,7 @@ static GameDisplayInfo IHNM_DisplayInfo = { //TODO: fill it all
|
||||
616, // status width
|
||||
24, // status height
|
||||
8, // status text y offset
|
||||
186, // status text color
|
||||
253, // status text color
|
||||
250, // status BG color
|
||||
616, 303, // save reminder pos
|
||||
24, 24, // save reminder w&h
|
||||
|
||||
+2
-1
@@ -1689,6 +1689,7 @@ int Interface::inventoryItemPosition(int objectId) {
|
||||
void Interface::drawInventory(Surface *backBuffer) {
|
||||
if (!isInMainMode())
|
||||
return;
|
||||
|
||||
int i;
|
||||
Rect rect;
|
||||
int ci;
|
||||
@@ -1712,7 +1713,7 @@ void Interface::drawInventory(Surface *backBuffer) {
|
||||
|
||||
if (ci < _inventoryCount) {
|
||||
obj = _vm->_actor->getObj(_inventory[ci]);
|
||||
_vm->_sprite->draw(backBuffer, _vm->getDisplayClip(), _vm->_sprite->_mainSprites, obj->_spriteListResourceId, rect, 256);
|
||||
_vm->_sprite->draw(backBuffer, _vm->getDisplayClip(), _vm->_sprite->_inventorySprites, obj->_spriteListResourceId, rect, 256);
|
||||
}
|
||||
|
||||
ci++;
|
||||
|
||||
+1
-1
@@ -98,7 +98,7 @@ namespace Saga {
|
||||
#define RID_IHNM_CONVERSE_PANEL 10
|
||||
#define RID_IHNM_HOURGLASS_CURSOR 11
|
||||
#define RID_IHNM_MAIN_SPRITES 12 // TODO: verify this
|
||||
#define RID_IHNM_MAIN_PANEL_SPRITES 12 // TODO: verify this
|
||||
#define RID_IHNM_MAIN_PANEL_SPRITES 12
|
||||
#define RID_IHNM_ARROW_SPRITES 13
|
||||
#define RID_IHNM_SAVEREMINDER_SPRITES 14
|
||||
#define RID_IHNM_OPTION_PANEL 15
|
||||
|
||||
+3
-2
@@ -469,7 +469,7 @@ void Resource::loadGlobalResources(int chapter, int actorsEntrance) {
|
||||
_metaResource.sceneIndex = metaS.readSint16LE();
|
||||
_metaResource.objectCount = metaS.readSint16LE();
|
||||
_metaResource.objectsStringsResourceID = metaS.readSint32LE();
|
||||
_metaResource.field_8 = metaS.readSint32LE();
|
||||
_metaResource.inventorySpritesID = metaS.readSint32LE();
|
||||
_metaResource.mainSpritesID = metaS.readSint32LE();
|
||||
_metaResource.objectsResourceID = metaS.readSint32LE();
|
||||
_metaResource.actorCount = metaS.readSint16LE();
|
||||
@@ -531,7 +531,8 @@ void Resource::loadGlobalResources(int chapter, int actorsEntrance) {
|
||||
_vm->loadStrings(_vm->_actor->_actorsStrings, resourcePointer, resourceLength);
|
||||
free(resourcePointer);
|
||||
|
||||
// TODO: field_8. Inventory-related
|
||||
_vm->_sprite->_inventorySprites.freeMem();
|
||||
_vm->_sprite->loadList(_metaResource.inventorySpritesID, _vm->_sprite->_inventorySprites);
|
||||
|
||||
_vm->_sprite->_mainSprites.freeMem();
|
||||
_vm->_sprite->loadList(_metaResource.mainSpritesID, _vm->_sprite->_mainSprites);
|
||||
|
||||
+1
-1
@@ -93,7 +93,7 @@ struct MetaResource {
|
||||
int16 sceneIndex;
|
||||
int16 objectCount;
|
||||
int32 objectsStringsResourceID;
|
||||
int32 field_8;
|
||||
int32 inventorySpritesID;
|
||||
int32 mainSpritesID;
|
||||
int32 objectsResourceID;
|
||||
int16 actorCount;
|
||||
|
||||
+2
-2
@@ -610,7 +610,7 @@ void Scene::loadScene(LoadSceneParams *loadSceneParams) {
|
||||
|
||||
_vm->_interface->clearInventory();
|
||||
_vm->_resource->loadGlobalResources(loadSceneParams->chapter, loadSceneParams->actorsEntrance);
|
||||
_vm->_interface->addToInventory(IHNM_OBJ_PROFILE);
|
||||
_vm->_interface->addToInventory(0x4000); //IHNM_OBJ_PROFILE);
|
||||
_vm->_interface->activate();
|
||||
|
||||
if (loadSceneParams->chapter == 8 || loadSceneParams->chapter == -1)
|
||||
@@ -620,7 +620,7 @@ void Scene::loadScene(LoadSceneParams *loadSceneParams) {
|
||||
|
||||
_inGame = true;
|
||||
|
||||
//_vm->_script->setVerb(kVerbIHNMWalkTo); uncomment then panel will be done
|
||||
_vm->_script->setVerb(kVerbWalkTo);
|
||||
|
||||
if (loadSceneParams->sceneDescriptor == -2) {
|
||||
return;
|
||||
|
||||
+1
-1
@@ -53,7 +53,7 @@ Sprite::Sprite(SagaEngine *vm) : _vm(vm) {
|
||||
|
||||
if (_vm->getGameType() == GType_ITE) {
|
||||
loadList(_vm->getResourceDescription()->mainSpritesResourceId, _mainSprites);
|
||||
_arrowSprites = _saveReminderSprites = _mainSprites;
|
||||
_arrowSprites = _saveReminderSprites = _inventorySprites = _mainSprites;
|
||||
} else {
|
||||
loadList(RID_IHNM_ARROW_SPRITES, _arrowSprites);
|
||||
loadList(RID_IHNM_SAVEREMINDER_SPRITES, _saveReminderSprites);
|
||||
|
||||
@@ -66,6 +66,7 @@ public:
|
||||
SpriteList _mainSprites;
|
||||
SpriteList _saveReminderSprites;
|
||||
SpriteList _arrowSprites;
|
||||
SpriteList _inventorySprites;
|
||||
|
||||
Sprite(SagaEngine *vm);
|
||||
~Sprite(void);
|
||||
|
||||
Reference in New Issue
Block a user