-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathRobinsonCompositor.h
82 lines (61 loc) · 1.84 KB
/
RobinsonCompositor.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#ifndef ROBINSONCOMPOSITOR_H
#define ROBINSONCOMPOSITOR_H
#include "types.h"
#include "SCRFile.h"
#include "BMPFile.h"
#include "TTMPlayer.h"
#ifdef WIN32
#include <SDL_ttf.h>
#else
#include <SDL2/SDL_ttf.h>
#endif
namespace SCRANTIC {
class RobinsonCompositor
{
private:
SDL_Renderer *renderer;
int width;
int height;
bool isLargeIsland;
bool isNight;
RESFile *resources;
BMPFile *backgroundBMP;
BMPFile *holidayBMP;
BMPFile *raftBMP;
BMPFile *cloudsBMP;
SCRFile *splashSCR;
std::vector<SCRFile *> oceanSCRList;
SCRFile *oceanNightSCR;
SCRFile *oceanSCR;
SCRFile *screenSCR;
i8 animationCycle;
i8 islandPos;
SDL_Point islandTrunk;
SDL_Point absoluteIslandTrunkPos;
SDL_Texture *oceanTexture;
SDL_Texture *bgTexture;
SDL_Texture *fgTexture;
SDL_Texture *saveTexture;
SDL_Texture *rendererTarget;
SDL_Rect fullScreenRect;
RobinsonCompositor(const RobinsonCompositor& other);
void renderSpriteNumAtPos(BMPFile *bmp, u16 num, i32 x, i32 y);
void renderFullScreenSCR(SCRFile *scr);
void animateBackground();
void shiftRect(SDL_Rect *rect, int x, int y);
public:
RobinsonCompositor(SDL_Renderer* renderer, int width, int height, RESFile *resources);
~RobinsonCompositor();
void displaySplash();
void reset();
void render(std::list<TTMPlayer *>::iterator begin, std::list<TTMPlayer *>::iterator end);
void setScreen(const std::string &screen);
void setNight(bool night) { isNight = night; }
void setOcean(int num) { oceanSCR = oceanSCRList[num]; }
void setLargeIsland(bool large) { isLargeIsland = large; }
void setAbsoluteIslandPos(SDL_Point *pos) { absoluteIslandTrunkPos = *pos; }
bool getNight() { return isNight; }
bool getLargeIsland() { return isLargeIsland; }
};
}
#endif // ROBINSONCOMPOSITOR_H