22 #ifndef TWINE_HOLOMAP_H 23 #define TWINE_HOLOMAP_H 25 #include "twine/shared.h" 26 #include "common/scummsys.h" 28 #define NUM_HOLOMAPCOLORS 32 29 #define HOLOMAP_PALETTE_INDEX 192 32 class SeekableReadStream;
40 struct ActorMoveStruct;
42 struct AnimTimerDataStruct;
57 TextId textIndex = TextId::kNone;
61 IVec3 _holomapSurface[561];
66 uint16 projectedPosIdx = 0;
68 HolomapSort _holomapSort[16 * 32];
70 struct HolomapProjectedPos {
76 HolomapProjectedPos _projectedSurfacePositions[561];
77 int _projectedSurfaceIndex = 0;
80 int32 _numLocations = 0;
81 Location _locations[NUM_LOCATIONS];
83 int32 _holomapPaletteIndex = 0;
84 uint8 _paletteHolomap[NUMOFCOLORS * 3]{0};
86 void drawHolomapText(int32 centerx, int32 top,
const char *title);
87 int32 searchNextArrow(int32 currentLocation, int32 dir)
const;
89 void drawListPos(
int xRot,
int yRot,
int zRot,
bool lower);
94 void drawHoloObj(
const IVec3 &angle, int32 x, int32 y);
96 void computeCoorMapping();
97 void computeGlobeProj();
98 void drawHoloMap(uint8 *holomapImage, uint32 holomapImageSize);
104 int32 distance(
float distance)
const;
105 int32
scale(
float val)
const;
114 void setHolomapPosition(int32 locationIdx);
116 bool loadLocations();
118 const char *getLocationName(
int index)
const;
124 void clearHolomapPosition(int32 locationIdx);
126 void drawHolomapTrajectory(int32 trajectoryIndex);
129 void initHoloDatas();
Graphics::Surface * scale(const Graphics::Surface &srcImage, int xSize, int ySize)
constexpr remove_reference_t< T > && move(T &&t) noexcept
Definition: util.h:209
Definition: algorithm.h:29
Definition: achievements_tables.h:27
Definition: display_client.h:53