aboutsummaryrefslogtreecommitdiff
path: root/devtools/create_cryo/eden.h
diff options
context:
space:
mode:
authorFilippos Karapetis2017-02-11 22:40:00 +0100
committerGitHub2017-02-11 22:40:00 +0100
commit7739d0c5c11021e0c3b28509181f052d573bf4ff (patch)
treea249cd617acc07f29b834d2c00b89f33291a18d2 /devtools/create_cryo/eden.h
parent2af9ab6f612214cd00aa16e83db3ca5e8b0c7f19 (diff)
parent8eb38c09330159b66eca4dee1889f120cb844923 (diff)
downloadscummvm-rg350-7739d0c5c11021e0c3b28509181f052d573bf4ff.tar.gz
scummvm-rg350-7739d0c5c11021e0c3b28509181f052d573bf4ff.tar.bz2
scummvm-rg350-7739d0c5c11021e0c3b28509181f052d573bf4ff.zip
Merge pull request #899 from bluegr/cryo_dat
CRYO: Move all static engine data into cryo.dat
Diffstat (limited to 'devtools/create_cryo/eden.h')
-rw-r--r--devtools/create_cryo/eden.h249
1 files changed, 249 insertions, 0 deletions
diff --git a/devtools/create_cryo/eden.h b/devtools/create_cryo/eden.h
index dfbe7cae52..771c8309a2 100644
--- a/devtools/create_cryo/eden.h
+++ b/devtools/create_cryo/eden.h
@@ -25,6 +25,8 @@
typedef unsigned char byte;
typedef short int16;
typedef unsigned short uint16;
+typedef int int32;
+typedef unsigned int uint32;
struct icon_t {
int16 sx;
@@ -49,3 +51,250 @@ struct room_t {
byte background;
};
#define END_ROOMS {0xFF, {0xFF, 0xFF, 0xFF, 0xFF}, 0xFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0xFF, 0xFF}
+
+struct Follower { // Characters on Mirror screen
+ char _id; // character
+ char _spriteNum; // sprite number
+ int16 sx;
+ int16 sy;
+ int16 ex;
+ int16 ey;
+ int16 _spriteBank;
+ int16 ff_C;
+ int16 ff_E;
+};
+
+namespace PersonId {
+enum PersonId {
+ pidGregor = 0, // The King
+ pidDina, // Pink dino
+ pidTau, // Late grandpa
+ pidMonk, // Old wizard
+ pidJabber, // Executioner
+ pidEloi, // Evergreen ptero
+ pidMungo, // Dina's husband
+ pidEve, // Blonde girl
+ pidShazia, // Big boobs sis
+ pidLeadersBegin, // 9
+ pidChongOfChamaar = pidLeadersBegin, // Dogface
+ pidKommalaOfKoto, // Clones
+ pidUlanOfUlele, // Shaman
+ pidCabukaOfCantura, // Stone people
+ pidMarindaOfEmbalmers, // Gods
+ pidFuggOfTamara, // Boar-like
+ pidThugg, // Bodyguard
+ pidNarrator, // 16, Old Eloi, also BGM
+ pidNarrim, // Sea snake
+ pidMorkus, // Vicious tyran
+ pidDinosaur, // different species of friendly dino
+ pidEnemy // different species of enemy dino
+};
+}
+
+namespace PersonMask {
+enum PersonMask {
+ pmGregor = 1,
+ pmDina = 2,
+ pmTau = 4,
+ pmMonk = 8,
+ pmJabber = 0x10,
+ pmEloi = 0x20,
+ pmMungo = 0x40,
+ pmEve = 0x80,
+ pmShazia = 0x100,
+ pmLeader = 0x200, // valley tribe leader
+ pmThugg = 0x400,
+ pmQuest = 0x800, // special quest person
+ pmDino = 0x1000,
+ pmEnemy = 0x2000,
+ pmMorkus = 0x4000
+};
+}
+
+namespace PersonFlags {
+enum PersonFlags {
+ pfType0 = 0,
+ pftTyrann,
+ pfType2,
+ pfType3,
+ pfType4,
+ pfType5,
+ pfType6,
+ pfType7,
+ pfType8,
+ pftMosasaurus,
+ pftTriceraptor,
+ pftVelociraptor,
+ pfType12,
+ pfType13,
+ pfType14,
+ pfType15,
+ pfTypeMask = 0xF,
+ pf10 = 0x10,
+ pf20 = 0x20,
+ pfInParty = 0x40,
+ pf80 = 0x80
+};
+}
+
+namespace Objects {
+enum Objects {
+ obNone,
+ obWayStone,
+ obShell,
+ obTalisman,
+ obTooth,
+ obPrism, // 5
+ obFlute,
+ obApple,
+ obEgg, // 8
+ obRoot,
+ obUnused10,
+ obShroom, // 11
+ obBadShroom, // 12
+ obKnife, // 13
+ obNest, // 14
+ obFullNest, // 15
+ obGold, // 16
+ obMoonStone,
+ obBag,
+ obSunStone, // 19
+ obHorn, // 20
+ obSword,
+
+ obMaskOfDeath,
+ obMaskOfBonding,
+ obMaskOfBirth,
+
+ obEyeInTheStorm, // 25
+ obSkyHammer,
+ obFireInTheClouds,
+ obWithinAndWithout,
+ obEyeInTheCyclone,
+ obRiverThatWinds,
+
+ obTrumpet, // 31
+ obUnused32,
+ obDrum,
+ obUnused34,
+ obUnused35,
+ obRing,
+
+ obTablet1, // 37 is 1st plaque, 6 total
+ obTablet2,
+ obTablet3, // 39
+ obTablet4,
+ obTablet5,
+ obTablet6
+};
+}
+
+struct Goto {
+ byte _areaNum; // target area
+ byte _curAreaNum; // current area
+ byte _enterVideoNum;
+ byte _travelTime; // time to skip while in travel
+ byte _arriveVideoNum;
+};
+
+struct object_t {
+ byte _id;
+ byte _flags;
+ int _locations; // index in kObjectLocations
+ uint16 _itemMask;
+ uint16 _powerMask; // object of power bitmask
+ int16 _count;
+};
+
+struct perso_t {
+ uint16 _roomNum; // room this person currently in
+ uint16 _actionId; // TODO: checkme
+ uint16 _partyMask; // party bit mask
+ byte _id; // character
+ byte _flags; // flags and kind
+ byte _roomBankId;// index in kPersoRoomBankTable for specific room banks
+ byte _spriteBank; // sprite bank
+ uint16 _items; // inventory
+ uint16 _powers; // obj of power bitmask
+ byte _targetLoc; // For party member this is mini sprite index
+ byte _lastLoc; // For party member this is mini sprite x offset
+ byte _speed; // num ticks per step
+ byte _steps; // current ticks
+};
+
+struct Citadel {
+ int16 _id;
+ int16 _bank[8];
+ int16 _video[8];
+};
+
+// A struct to hold the struct members of Common::Rect
+struct Rect {
+ int16 left, top, right, bottom;
+};
+
+namespace Areas {
+enum Areas {
+ arMo = 1,
+ arTausCave,
+ arChamaar,
+ arUluru,
+ arKoto,
+ arTamara,
+ arCantura,
+ arShandovra,
+ arNarimsCave,
+ arEmbalmersCave,
+ arWhiteArch,
+ arMoorkusLair
+};
+}
+
+namespace AreaFlags {
+enum AreaFlags {
+ afFlag1 = 1,
+ afFlag2 = 2,
+ afFlag4 = 4,
+ afFlag8 = 8,
+ afGaveGold = 0x10,
+ afFlag20 = 0x20,
+
+ HasTriceraptors = 0x100,
+ HasVelociraptors = 0x200,
+ HasTyrann = 0x400,
+
+ TyrannSighted = 0x4000,
+ afFlag8000 = 0x8000
+};
+}
+
+struct Room {
+ byte _id;
+ byte _exits[4]; //TODO: signed?
+ byte _flags;
+ uint16 _bank;
+ uint16 _party;
+ byte _level; // Citadel level
+ byte _video;
+ byte _location;
+ byte _backgroundBankNum; // bg/mirror image number (relative)
+};
+
+struct Area {
+ byte _num;
+ byte _type;
+ uint16 _flags;
+ uint16 _firstRoomIdx;
+ byte _citadelLevel;
+ byte _placeNum;
+ Room *_citadelRoomPtr;
+ int16 _visitCount;
+};
+
+namespace AreaType {
+enum AreaType {
+ atCitadel = 1,
+ atValley = 2,
+ atCave = 3
+};
+}