diff options
Diffstat (limited to 'titlestate.cpp')
-rw-r--r-- | titlestate.cpp | 216 |
1 files changed, 99 insertions, 117 deletions
diff --git a/titlestate.cpp b/titlestate.cpp index 014b138..166a55b 100644 --- a/titlestate.cpp +++ b/titlestate.cpp | |||
@@ -1,134 +1,116 @@ | |||
1 | #include "titlestate.h" | 1 | #include "titlestate.h" |
2 | #include "util.h" | 2 | |
3 | #include "gamestate.h" | 3 | #include "gamestate.h" |
4 | #include "hslist.h" | 4 | #include "hslist.h" |
5 | #include "util.h" | ||
5 | 6 | ||
6 | State* TitleState::operator() (SDL_Window* window, SDL_Renderer* renderer) | 7 | State* TitleState::operator()(SDL_Window* window, SDL_Renderer* renderer) { |
7 | { | 8 | SDL_Texture* background = loadImage(renderer, "resources/title.bmp"); |
8 | SDL_Texture* background = loadImage(renderer, "resources/title.bmp"); | 9 | SDL_Texture* pointer = loadImage(renderer, "resources/pointer.bmp"); |
9 | SDL_Texture* pointer = loadImage(renderer, "resources/pointer.bmp"); | 10 | int selection = 0; |
10 | int selection = 0; | 11 | SDL_Event e; |
11 | SDL_Event e; | ||
12 | 12 | ||
13 | for (;;) | 13 | for (;;) { |
14 | { | 14 | SDL_RenderClear(renderer); |
15 | SDL_RenderClear(renderer); | 15 | SDL_RenderCopy(renderer, background, NULL, NULL); |
16 | SDL_RenderCopy(renderer, background, NULL, NULL); | 16 | applyTexture(renderer, pointer, 136, |
17 | applyTexture(renderer, pointer, 136, selection==0?316:(selection==1?350:(selection==2?381:417))); | 17 | selection == 0 |
18 | SDL_RenderPresent(renderer); | 18 | ? 316 |
19 | : (selection == 1 ? 350 : (selection == 2 ? 381 : 417))); | ||
20 | SDL_RenderPresent(renderer); | ||
19 | 21 | ||
20 | while (SDL_PollEvent(&e)) | 22 | while (SDL_PollEvent(&e)) { |
21 | { | 23 | if (e.type == SDL_QUIT) { |
22 | if (e.type == SDL_QUIT) | 24 | return NULL; |
23 | { | 25 | } else if (e.type == SDL_KEYDOWN) { |
24 | return NULL; | 26 | if ((e.key.keysym.sym == SDLK_UP) && (selection != 0)) { |
25 | } else if (e.type == SDL_KEYDOWN) | 27 | selection--; |
26 | { | 28 | } else if ((e.key.keysym.sym == SDLK_DOWN) && (selection != 3)) { |
27 | if ((e.key.keysym.sym == SDLK_UP) && (selection != 0)) | 29 | selection++; |
28 | { | 30 | } else if (e.key.keysym.sym == SDLK_RETURN) { |
29 | selection--; | 31 | switch (selection) { |
30 | } else if ((e.key.keysym.sym == SDLK_DOWN) && (selection != 3)) | 32 | case 0: |
31 | { | 33 | return new GameState(); |
32 | selection++; | 34 | case 1: |
33 | } else if (e.key.keysym.sym == SDLK_RETURN) | 35 | return new HowToPlayState(); |
34 | { | 36 | case 2: |
35 | switch (selection) | 37 | return new ChooseHighscoreListState(); |
36 | { | 38 | case 3: |
37 | case 0: return new GameState(); | 39 | return NULL; |
38 | case 1: return new HowToPlayState(); | 40 | } |
39 | case 2: return new ChooseHighscoreListState(); | 41 | } |
40 | case 3: return NULL; | 42 | } |
41 | } | 43 | } |
42 | } | 44 | } |
43 | } | ||
44 | } | ||
45 | } | ||
46 | } | 45 | } |
47 | 46 | ||
48 | State* HowToPlayState::operator() (SDL_Window* window, SDL_Renderer* renderer) | 47 | State* HowToPlayState::operator()(SDL_Window* window, SDL_Renderer* renderer) { |
49 | { | 48 | SDL_Texture* background = loadImage(renderer, "resources/htp1.bmp"); |
50 | SDL_Texture* background = loadImage(renderer, "resources/htp1.bmp"); | 49 | SDL_Texture* pointer = loadImage(renderer, "resources/pointer.bmp"); |
51 | SDL_Texture* pointer = loadImage(renderer, "resources/pointer.bmp"); | 50 | int selection = 0; |
52 | int selection = 0; | 51 | SDL_Event e; |
53 | SDL_Event e; | ||
54 | 52 | ||
55 | for (;;) | 53 | for (;;) { |
56 | { | 54 | SDL_RenderClear(renderer); |
57 | SDL_RenderClear(renderer); | 55 | SDL_RenderCopy(renderer, background, NULL, NULL); |
58 | SDL_RenderCopy(renderer, background, NULL, NULL); | 56 | applyTexture(renderer, pointer, selection == 0 ? 74 : 216, 430); |
59 | applyTexture(renderer, pointer, selection==0?74:216, 430); | 57 | SDL_RenderPresent(renderer); |
60 | SDL_RenderPresent(renderer); | ||
61 | 58 | ||
62 | while (SDL_PollEvent(&e)) | 59 | while (SDL_PollEvent(&e)) { |
63 | { | 60 | if (e.type == SDL_QUIT) { |
64 | if (e.type == SDL_QUIT) | 61 | return NULL; |
65 | { | 62 | } else if (e.type == SDL_KEYDOWN) { |
66 | return NULL; | 63 | if ((e.key.keysym.sym == SDLK_LEFT) && (selection != 0)) { |
67 | } else if (e.type == SDL_KEYDOWN) | 64 | selection--; |
68 | { | 65 | } else if ((e.key.keysym.sym == SDLK_RIGHT) && (selection != 1)) { |
69 | if ((e.key.keysym.sym == SDLK_LEFT) && (selection != 0)) | 66 | selection++; |
70 | { | 67 | } else if (e.key.keysym.sym == SDLK_RETURN) { |
71 | selection--; | 68 | switch (selection) { |
72 | } else if ((e.key.keysym.sym == SDLK_RIGHT) && (selection != 1)) | 69 | case 0: |
73 | { | 70 | return new HowToPlayPageTwoState(); |
74 | selection++; | ||
75 | } else if (e.key.keysym.sym == SDLK_RETURN) | ||
76 | { | ||
77 | switch (selection) | ||
78 | { | ||
79 | case 0: | ||
80 | return new HowToPlayPageTwoState(); | ||
81 | 71 | ||
82 | break; | 72 | break; |
83 | case 1: | 73 | case 1: |
84 | return new TitleState(); | 74 | return new TitleState(); |
85 | } | 75 | } |
86 | } | 76 | } |
87 | } | 77 | } |
88 | } | 78 | } |
89 | } | 79 | } |
90 | } | 80 | } |
91 | 81 | ||
92 | State* HowToPlayPageTwoState::operator() (SDL_Window* window, SDL_Renderer* renderer) | 82 | State* HowToPlayPageTwoState::operator()(SDL_Window* window, |
93 | { | 83 | SDL_Renderer* renderer) { |
94 | SDL_Texture* background = loadImage(renderer, "resources/htp2.bmp"); | 84 | SDL_Texture* background = loadImage(renderer, "resources/htp2.bmp"); |
95 | SDL_Texture* pointer = loadImage(renderer, "resources/pointer.bmp"); | 85 | SDL_Texture* pointer = loadImage(renderer, "resources/pointer.bmp"); |
96 | int selection = 0; | 86 | int selection = 0; |
97 | SDL_Event e; | 87 | SDL_Event e; |
98 | 88 | ||
99 | for (;;) | 89 | for (;;) { |
100 | { | 90 | SDL_RenderClear(renderer); |
101 | SDL_RenderClear(renderer); | 91 | SDL_RenderCopy(renderer, background, NULL, NULL); |
102 | SDL_RenderCopy(renderer, background, NULL, NULL); | 92 | applyTexture(renderer, pointer, selection == 0 ? 45 : 238, 430); |
103 | applyTexture(renderer, pointer, selection==0?45:238, 430); | 93 | SDL_RenderPresent(renderer); |
104 | SDL_RenderPresent(renderer); | ||
105 | 94 | ||
106 | while (SDL_PollEvent(&e)) | 95 | while (SDL_PollEvent(&e)) { |
107 | { | 96 | if (e.type == SDL_QUIT) { |
108 | if (e.type == SDL_QUIT) | 97 | return NULL; |
109 | { | 98 | } else if (e.type == SDL_KEYDOWN) { |
110 | return NULL; | 99 | if ((e.key.keysym.sym == SDLK_LEFT) && (selection != 0)) { |
111 | } else if (e.type == SDL_KEYDOWN) | 100 | selection--; |
112 | { | 101 | } else if ((e.key.keysym.sym == SDLK_RIGHT) && (selection != 1)) { |
113 | if ((e.key.keysym.sym == SDLK_LEFT) && (selection != 0)) | 102 | selection++; |
114 | { | 103 | } else if (e.key.keysym.sym == SDLK_RETURN) { |
115 | selection--; | 104 | switch (selection) { |
116 | } else if ((e.key.keysym.sym == SDLK_RIGHT) && (selection != 1)) | 105 | case 0: |
117 | { | 106 | return new HowToPlayState(); |
118 | selection++; | ||
119 | } else if (e.key.keysym.sym == SDLK_RETURN) | ||
120 | { | ||
121 | switch (selection) | ||
122 | { | ||
123 | case 0: | ||
124 | return new HowToPlayState(); | ||
125 | 107 | ||
126 | break; | 108 | break; |
127 | case 1: | 109 | case 1: |
128 | return new TitleState(); | 110 | return new TitleState(); |
129 | } | 111 | } |
130 | } | 112 | } |
131 | } | 113 | } |
132 | } | 114 | } |
133 | } | 115 | } |
134 | } | 116 | } |