25 #include "common/file.h" 26 #include "common/savefile.h" 27 #include "common/serializer.h" 29 #include "cryo/sound.h" 30 #include "cryo/defs.h" 57 void useBank(int16 bank);
59 void fademusica0(int16 delay);
60 void wait(
int howlong);
61 bool isObjectHere(int16
id);
64 void setMouseCenterX(uint16 xpos);
65 void setMouseCenterY(uint16 ypos);
69 uint16 getMouseCenterX();
70 uint16 getMouseCenterY();
72 bool dialoscansvmas(
Dialog *dial);
74 void preloadDialogs(int16 vid);
76 bool personIsTalking();
77 bool animationIsActive();
79 byte *getPlaceRawBuf();
80 byte getActionCursor(byte value);
81 int16 getNumTextLines();
88 int16 getGameIconY(int16 index);
89 int16 getGameIconX(int16 index);
91 byte *getGameDialogs();
93 bool getSpecialTextMode();
94 void setSpecialTextMode(
bool value);
96 void setCursorSaved(
bool cursorSaved);
97 bool getCursorSaved();
99 int16 getCurBankNum();
100 byte *getCurKeepBuf();
103 void setCurPosX(int16 xpos);
105 void setCurPosY(int16 ypos);
106 byte *getGlowBuffer();
107 void setMusicFade(byte value);
110 void setMouseNotHeld();
116 void removeConsole();
119 void scrollFrescoes();
120 void displayFrescoes();
121 void gametofresques();
123 void actionEndFrescoes();
126 void displayFollower(
Follower *follower, int16 x, int16 y);
127 void characterInMirror();
128 void gameToMirror(byte arg1);
132 void actionClickValleyPlan();
133 void gotoPlace(
Goto *go);
134 void deplaval(uint16 roomNum);
135 void move(Direction dir);
136 void move2(Direction dir);
137 void actionDinoBlow();
138 void actionPlateMonk();
139 void actionGraaFrescoe();
140 void actionLascFrescoe();
141 void actionPushStone();
142 void actionMummyHead();
143 void actionSkelettonHead();
144 void actionSkelettonMoorkong();
146 void handleDinaDialog();
147 void handleKingDialog();
148 void actionKingDialog1();
149 void actionKingDialog2();
150 void actionKingDialog3();
151 void actionGetKnife();
152 void actionGetPrism();
153 void actionGetMushroom();
154 void actionGetBadMushroom();
155 void actionGetGold();
156 void actionGetFullNest();
157 void actionGetEmptyNest();
158 void actionGetHorn();
159 void actionGetSunStone();
161 void actionGetTablet();
162 void actionLookLake();
163 void actionGotoHall();
164 void actionLabyrinthTurnAround();
165 void actionGotoFullNest();
166 void actionGotoVal();
169 void actionMoveNorth();
170 void actionMoveEast();
171 void actionMoveSouth();
172 void actionMoveWest();
177 void restoreFriezes();
180 void useCharacterBank();
182 void drawTopScreen();
183 void displayValleyMap();
184 void displayMapMark(int16 index, int16 location);
185 void displayAdamMapMark(int16 location);
186 void restoreAdamMapMark();
187 void saveAdamMapMark(int16 x, int16 y);
188 bool istrice(int16 roomNum);
189 bool istyran(int16 roomNum);
190 void istyranval(
Area *area);
191 char getDirection(
perso_t *perso);
192 bool canMoveThere(
char loc,
perso_t *perso);
193 void scramble1(uint8 elem[4]);
194 void scramble2(uint8 elem[4]);
195 void scrambleDirections();
196 bool naitredino(
char persoType);
197 void newCitadel(
char area, int16 level,
Room *room);
198 void evolveCitadel(int16 level);
199 void destroyCitadelRoom(int16 roomNum);
200 void narratorBuildCitadel();
201 void citadelFalls(
char level);
207 bool isCita(int16 loc);
208 void placeVava(
Area *area);
210 void vivreval(int16 areaNum);
212 void addTime(int16 t);
213 void animCharacter();
216 void removeMouthSprite();
217 void AnimEndCharacter();
218 void setCharacterSprite(byte *spr);
219 void displayCharacter1();
220 void displayCharacter();
222 void loadCharacter(
perso_t *perso);
223 void loadCurrCharacter();
226 void closeCharacterScreen();
227 void displayBackgroundFollower();
228 void displayNoFollower(int16 bank);
229 void displayCharacterBackground1();
230 void displayCharacterBackground();
231 void setCharacterIcon();
232 void showCharacter();
233 void displayCharacterPanel();
235 int16 readFrameNumber();
239 void drawSubtitleChar(byte c, byte color, int16 width);
241 void patchSentence();
248 void parlemoi_normal();
250 void initCharacterPointers(
perso_t *perso);
252 void perso_normal(
perso_t *perso);
253 void handleCharacterDialog(int16 pers);
258 void actionTormentor();
259 void actionMessenger();
276 void specialMushroom(
perso_t *perso);
277 void specialEmptyNest(
perso_t *perso);
278 void specialNestWithEggs(
perso_t *perso);
279 void specialApple(
perso_t *perso);
280 void specialGold(
perso_t *perso);
281 void specialPrism(
perso_t *perso);
282 void specialTalisman(
perso_t *perso);
283 void specialMask(
perso_t *perso);
284 void specialBag(
perso_t *perso);
285 void specialTrumpet(
perso_t *perso);
286 void specialWeapons(
perso_t *perso);
287 void specialInstrument(
perso_t *perso);
288 void specialEgg(
perso_t *perso);
289 void tyranDies(
perso_t *perso);
290 void specialObjects(
perso_t *perso,
char objid);
295 void abortDialogue();
296 void subHandleNarrator();
297 void handleNarrator();
298 void checkPhraseFile();
299 byte *getPhrase(int16
id);
300 void actionGotoMap();
302 bool dial_scan(
Dialog *dial);
304 bool dialogEvent(
perso_t *perso);
305 void characterStayHere();
306 void endDeath(int16 vid);
308 void setChrono(int16 t);
311 void verifh(byte *ptr);
314 void loadRawFile(uint16 num, byte *buffer);
315 void loadIconFile(uint16 num,
Icon *buffer);
316 void loadRoomFile(uint16 num,
Room *buffer);
317 int loadSound(uint16 num);
318 void convertMacToPC();
319 void loadpermfiles();
320 bool ReadDataSyncVOC(
unsigned int num);
321 bool ReadDataSync(uint16 num);
322 void loadpartoffile(uint16 num,
void *buffer, int32 pos, int32 len);
323 void expandHSQ(byte *input, byte *output);
324 void addInfo(byte info);
327 void removeInfo(byte info);
328 void updateInfoList();
333 void loadPlace(int16 num);
334 void specialoutside();
338 void getdino(
Room *room);
339 Room *getRoom(int16 loc);
340 void initPlace(int16 roomNum);
342 void updateRoom1(int16 roomNum);
343 void updateRoom(uint16 roomNum);
344 void allocateBuffers();
346 void EmergencyExit();
350 void signon(
const char *s);
352 Icon *scan_icon_list(int16 x, int16 y, int16 index);
356 void startmusique(byte num);
358 int loadmusicfile(int16 num);
360 void endCharacterSpeech();
364 void winObject(int16
id);
365 void loseObject(int16
id);
368 void objectmain(int16
id);
369 void getObject(int16
id);
371 void newObject(int16
id, int16 arg2);
372 void giveobjectal(int16
id);
374 void actionTakeObject();
377 void newNestWithEggs();
385 void initafterload();
387 void desktopcolors();
390 void confirmer(
char mode,
char yesId);
395 void choseSubtitleOption();
398 void newvol(byte *volptr, int16 delta);
401 void moveTapeCursor();
402 void displayTapeCursor();
405 void clickTapeCursor();
407 void displayLanguage();
408 void displayVolCursor(int16 x, int16 vol1, int16 vol2);
409 void displayCursors();
410 void selectCursor(
int itemId);
411 void displayTopPanel();
412 void displayResult();
413 void restrictCursorArea(int16 xmin, int16 xmax, int16 ymin, int16 ymax);
415 void habitants(
perso_t *perso);
417 void evenements(
perso_t *perso);
420 void perso_ici(int16 action);
421 void setCharacterHere();
422 void faire_suivre(int16 roomNum);
423 void AddCharacterToParty();
424 void addToParty(int16 index);
425 void removeCharacterFromParty();
426 void removeFromParty(int16 index);
427 void handleEloiDeparture();
428 bool checkEloiReturn();
429 void handleEloiReturn();
485 void saveGame(
char *name);
487 void loadgame(
char *name);
493 char testCondition(int16 index);
494 uint16 operAdd(uint16 v1, uint16 v2);
495 uint16 operSub(uint16 v1, uint16 v2);
496 uint16 operLogicalAnd(uint16 v1, uint16 v2);
497 uint16 operLogicalOr(uint16 v1, uint16 v2);
498 uint16 operIsEqual(uint16 v1, uint16 v2);
499 uint16 operIsSmaller(uint16 v1, uint16 v2);
500 uint16 operIsGreater(uint16 v1, uint16 v2);
501 uint16 operIsDifferent(uint16 v1, uint16 v2);
502 uint16 operIsSmallerOrEqual(uint16 v1, uint16 v2);
503 uint16 operIsGreaterOrEqual(uint16 v1, uint16 v2);
504 uint16 operFalse(uint16 v1, uint16 v2);
505 uint16 operation(byte op, uint16 v1, uint16 v2);
507 uint8 getByteVar(uint16 offset);
508 uint16 getWordVar(uint16 offset);
510 void initSinCosTable();
511 void makeMatriceFix();
512 void projectionFix(
Cube *cube,
int n);
515 void displayObject(
Cube *cube);
516 void loadMap(
int file_id, byte *buffer);
517 void NEWcharge_objet_mob(
Cube *cube,
int fileNum, byte *texturePtr);
518 void DELETEcharge_objet_mob(
Cube *cubep);
519 static int nextVal(
char **ptr,
char *
error);
520 void selectMap(int16 num);
521 void Eden_dep_and_rot();
523 void displayPolygoneMapping(
Cube *cube,
CubeFace *face);
524 void drawMappingLine(int16 r3, int16 r4, int16 r5, int16 r6, int16 r7, int16 r8, int16 r9, int16 r10, int16 *lines);
525 void displayMappingLine(int16 r3, int16 r4, byte *target, byte *texture);
526 void LostEdenMac_InitPrefs();
530 void selectPCMap(int16 num);
533 void getSinCosTables(
unsigned short angle,
signed char **cos_table,
signed char **sin_table);
534 void rotatePoint(
XYZ *point,
XYZ *rpoint);
535 void mapPoint(
XYZ *point,
short *x,
short *y);
536 short calcFaceArea(
XYZ *face);
537 void paintPixel(
XYZ *point,
unsigned char pixel);
538 void paintFace0(
XYZ *point);
539 void paintFace1(
XYZ *point);
540 void paintFace2(
XYZ *point);
541 void paintFace3(
XYZ *point);
542 void paintFace4(
XYZ *point);
543 void paintFace5(
XYZ *point);
547 void incAngleX(
int step);
549 void incAngleY(
int step);
559 int16 _angleX, _angleY, _angleZ, _zoomZ, _zoomZStep;
565 uint8 *_face[6], *_newface[6];
568 uint8 _cursor[40 * 40];
569 uint8 *_cursorCenter;
571 byte _ownObjects[128];
579 byte _cursKeepBuf[2500];
582 bool _paletteUpdateRequired;
584 bool _backgroundSaved;
587 int _lastAnimFrameNumb;
588 int _curAnimFrameNumb;
590 int16 _numAnimFrames;
593 bool _restartAnimation;
594 bool _animationActive;
595 byte _animationDelay;
596 byte _animationIndex;
597 byte _lastAnimationIndex;
601 byte *_mouthAnimations;
602 byte *_animationTable;
603 byte _imageDesc[512];
604 byte *_characterBankData;
606 byte _sentenceBuffer[400];
607 byte phraseIconsBuffer[10];
608 byte _sentenceCoordsBuffer[22];
612 bool _lastDialogChoice;
613 bool parlemoiNormalFlag;
615 bool _closeCharacterDialog;
618 char _lastPhrasesFile;
619 byte _dialogSkipFlags;
621 byte *_voiceSamplesBuffer;
629 byte *_gameConditions;
639 uint16 _mouseCenterX;
640 uint16 _mouseCenterY;
641 bool _bufferAllocationErrorFl;
645 bool _soundAllocated;
650 int _demoCurrentTicks;
654 int16 _inventoryScrollDelay;
663 bool _specialTextMode;
664 int _voiceSamplesSize;
665 int16 _musicRightVol;
668 bool _animateTalking;
672 char _musicSequencePos;
673 bool _musicPlayingFlag;
675 byte *_musicSamplesPtr;
676 byte *_musicPatternsPtr;
677 byte *_musSequencePtr;
678 bool _musicEnabledFlag;
679 uint16 *_currentObjectLocation;
687 byte *_curSliderValuePtr;
688 byte _lastMenuItemIdLo;
689 int16 _lastTapeRoomNum;
692 int16 _destinationRoom;
703 int16 _cosTable[361];
704 int16 _sinTable[361];
705 int _passMat31, _passMat21, _passMat11;
706 int _passMat32, _passMat22, _passMat12;
707 int _passMat33, _passMat23, _passMat13;
708 int16 _rotationAngleY;
709 int16 _rotationAngleX, _rotationAngleZ;
710 float _translationY, _translationX;
713 int16 _lines[200 * 8];
714 byte _cubeTexture[0x4000];
716 uint32 _cursorOldTick, _cursorNewTick;
719 uint8 tab_2CB1E[8][4];
721 const unsigned int kMaxMusicSize;
725 byte _labyrinthPath[70];
726 char _dinoSpeedForCitadelLevel[16];
727 char _tabletView[12];
728 char _personRoomBankTable[84];
733 uint16 _objectLocations[45];
739 byte _characterArray[20][5];
740 Area _areasTable[12];
743 byte _actionCursors[299];
745 byte _cubeTextureCoords[3][6 * 2 * 3 * 2];
753 int16 _torchCurIndex;
Definition: serializer.h:79
Definition: eden_graphics.h:32
void NORETURN_PRE error(MSVC_PRINTF const char *s,...) GCC_PRINTF(1