Finished V1
Dependencies: mbed wave_player 4DGL-uLCD-SE MMA8452
main.cpp@5:2fb023cdc666, 2019-11-24 (annotated)
- Committer:
- trich9
- Date:
- Sun Nov 24 03:22:35 2019 +0000
- Revision:
- 5:2fb023cdc666
- Parent:
- 4:2297a714936f
finished V1
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
rconnorlawson | 0:35660d7952f7 | 1 | // Project includes |
rconnorlawson | 0:35660d7952f7 | 2 | #include "globals.h" |
rconnorlawson | 0:35660d7952f7 | 3 | #include "hardware.h" |
rconnorlawson | 0:35660d7952f7 | 4 | #include "map.h" |
rconnorlawson | 0:35660d7952f7 | 5 | #include "graphics.h" |
rconnorlawson | 0:35660d7952f7 | 6 | #include "speech.h" |
rconnorlawson | 0:35660d7952f7 | 7 | |
trich9 | 5:2fb023cdc666 | 8 | |
rconnorlawson | 0:35660d7952f7 | 9 | // Functions in this file |
rconnorlawson | 0:35660d7952f7 | 10 | int get_action (GameInputs inputs); |
rconnorlawson | 0:35660d7952f7 | 11 | int update_game (int action); |
rconnorlawson | 0:35660d7952f7 | 12 | void draw_game (int init); |
rconnorlawson | 0:35660d7952f7 | 13 | void init_main_map (); |
rconnorlawson | 0:35660d7952f7 | 14 | int main (); |
rconnorlawson | 0:35660d7952f7 | 15 | |
trich9 | 4:2297a714936f | 16 | |
trich9 | 4:2297a714936f | 17 | //MYCODE |
trich9 | 4:2297a714936f | 18 | GameInputs gInputs; |
trich9 | 4:2297a714936f | 19 | int action; |
trich9 | 4:2297a714936f | 20 | int gUpdate; |
trich9 | 4:2297a714936f | 21 | int omnipotent; |
trich9 | 5:2fb023cdc666 | 22 | int hasSonar; |
trich9 | 4:2297a714936f | 23 | |
trich9 | 4:2297a714936f | 24 | int dialogueNumNPC = 0; |
trich9 | 5:2fb023cdc666 | 25 | int dialogueNumPris = 0; |
trich9 | 4:2297a714936f | 26 | //animationstuff |
trich9 | 4:2297a714936f | 27 | int updateCount = 0; |
trich9 | 4:2297a714936f | 28 | |
trich9 | 4:2297a714936f | 29 | //NPC |
trich9 | 4:2297a714936f | 30 | int NPCx = 6; |
trich9 | 4:2297a714936f | 31 | int NPCy = 5; |
trich9 | 4:2297a714936f | 32 | int walkCycleNPC = 0; |
trich9 | 4:2297a714936f | 33 | |
trich9 | 5:2fb023cdc666 | 34 | //speech |
trich9 | 5:2fb023cdc666 | 35 | char *talk1 = ""; |
trich9 | 5:2fb023cdc666 | 36 | |
trich9 | 4:2297a714936f | 37 | int go_up(int x, int y); |
trich9 | 4:2297a714936f | 38 | int go_down(int x, int y); |
trich9 | 4:2297a714936f | 39 | int go_right(int x, int y); |
trich9 | 4:2297a714936f | 40 | int go_left(int x, int y); |
trich9 | 4:2297a714936f | 41 | int action_button(int x, int y); |
trich9 | 4:2297a714936f | 42 | void init_map2(); |
trich9 | 4:2297a714936f | 43 | void animation_update(); |
trich9 | 4:2297a714936f | 44 | void moveNPC(); |
trich9 | 4:2297a714936f | 45 | |
trich9 | 5:2fb023cdc666 | 46 | void spawnTreasure(); |
trich9 | 5:2fb023cdc666 | 47 | void spawnLakeTreasure(); |
trich9 | 5:2fb023cdc666 | 48 | void treasureSparkle(); |
trich9 | 5:2fb023cdc666 | 49 | int fakeLakeTreasure = 1; |
trich9 | 5:2fb023cdc666 | 50 | int fakeTreasure = 1; |
trich9 | 5:2fb023cdc666 | 51 | int hasBoat = 0; |
trich9 | 5:2fb023cdc666 | 52 | int treasureX; |
trich9 | 5:2fb023cdc666 | 53 | int treasureY; |
trich9 | 5:2fb023cdc666 | 54 | |
trich9 | 5:2fb023cdc666 | 55 | int lakeTreasureX; |
trich9 | 5:2fb023cdc666 | 56 | int lakeTreasureY; |
trich9 | 5:2fb023cdc666 | 57 | |
trich9 | 5:2fb023cdc666 | 58 | int needBoat = 0; |
trich9 | 5:2fb023cdc666 | 59 | void checkNeedBoat(); |
trich9 | 5:2fb023cdc666 | 60 | |
trich9 | 5:2fb023cdc666 | 61 | void startScreen(); |
trich9 | 5:2fb023cdc666 | 62 | void endScreen(); |
trich9 | 5:2fb023cdc666 | 63 | |
trich9 | 5:2fb023cdc666 | 64 | void pickUpSound(); |
trich9 | 5:2fb023cdc666 | 65 | void ladderSound(); |
trich9 | 4:2297a714936f | 66 | |
trich9 | 4:2297a714936f | 67 | |
trich9 | 4:2297a714936f | 68 | |
rconnorlawson | 0:35660d7952f7 | 69 | /** |
rconnorlawson | 0:35660d7952f7 | 70 | * The main game state. Must include Player locations and previous locations for |
rconnorlawson | 0:35660d7952f7 | 71 | * drawing to work properly. Other items can be added as needed. |
rconnorlawson | 0:35660d7952f7 | 72 | */ |
rconnorlawson | 0:35660d7952f7 | 73 | struct { |
rconnorlawson | 0:35660d7952f7 | 74 | int x,y; // Current locations |
rconnorlawson | 0:35660d7952f7 | 75 | int px, py; // Previous locations |
rconnorlawson | 0:35660d7952f7 | 76 | int has_key; |
trich9 | 4:2297a714936f | 77 | |
trich9 | 4:2297a714936f | 78 | //MYCODE |
trich9 | 4:2297a714936f | 79 | //int omnipotent; |
rashidi1saeed | 2:1ca97843a334 | 80 | // You can add other properties for the player here |
rconnorlawson | 0:35660d7952f7 | 81 | } Player; |
rconnorlawson | 0:35660d7952f7 | 82 | |
trich9 | 4:2297a714936f | 83 | |
rconnorlawson | 0:35660d7952f7 | 84 | /** |
rconnorlawson | 0:35660d7952f7 | 85 | * Given the game inputs, determine what kind of update needs to happen. |
rconnorlawson | 0:35660d7952f7 | 86 | * Possbile return values are defined below. |
rconnorlawson | 0:35660d7952f7 | 87 | */ |
rconnorlawson | 0:35660d7952f7 | 88 | #define NO_ACTION 0 |
rconnorlawson | 0:35660d7952f7 | 89 | #define ACTION_BUTTON 1 |
rconnorlawson | 0:35660d7952f7 | 90 | #define MENU_BUTTON 2 |
rconnorlawson | 0:35660d7952f7 | 91 | #define GO_LEFT 3 |
rconnorlawson | 0:35660d7952f7 | 92 | #define GO_RIGHT 4 |
rconnorlawson | 0:35660d7952f7 | 93 | #define GO_UP 5 |
rconnorlawson | 0:35660d7952f7 | 94 | #define GO_DOWN 6 |
trich9 | 5:2fb023cdc666 | 95 | //#define ACTION_BUTTON 7 |
rconnorlawson | 0:35660d7952f7 | 96 | int get_action(GameInputs inputs) |
rconnorlawson | 0:35660d7952f7 | 97 | { |
trich9 | 4:2297a714936f | 98 | //MYCODE |
trich9 | 4:2297a714936f | 99 | //accelerometer cases |
trich9 | 4:2297a714936f | 100 | if(inputs.ax >= 0.4){ |
trich9 | 4:2297a714936f | 101 | return GO_RIGHT; |
trich9 | 4:2297a714936f | 102 | } |
trich9 | 4:2297a714936f | 103 | if(inputs.ax < -0.4){ |
trich9 | 4:2297a714936f | 104 | return GO_LEFT; |
trich9 | 4:2297a714936f | 105 | } |
trich9 | 4:2297a714936f | 106 | if(inputs.ay >= 0.4){ |
trich9 | 4:2297a714936f | 107 | return GO_UP; |
trich9 | 4:2297a714936f | 108 | } |
trich9 | 4:2297a714936f | 109 | if(inputs.ay < -0.15){ |
trich9 | 4:2297a714936f | 110 | return GO_DOWN; |
trich9 | 4:2297a714936f | 111 | } |
trich9 | 4:2297a714936f | 112 | |
trich9 | 4:2297a714936f | 113 | if(!inputs.b1){ |
trich9 | 4:2297a714936f | 114 | if(omnipotent != 1){ |
trich9 | 4:2297a714936f | 115 | omnipotent = 1; |
trich9 | 4:2297a714936f | 116 | } |
trich9 | 4:2297a714936f | 117 | else{ |
trich9 | 4:2297a714936f | 118 | omnipotent = 0; |
trich9 | 4:2297a714936f | 119 | } |
trich9 | 4:2297a714936f | 120 | wait(1); |
trich9 | 4:2297a714936f | 121 | } |
trich9 | 4:2297a714936f | 122 | |
trich9 | 4:2297a714936f | 123 | if(!inputs.b3){ |
trich9 | 4:2297a714936f | 124 | return ACTION_BUTTON; |
trich9 | 4:2297a714936f | 125 | } |
trich9 | 4:2297a714936f | 126 | |
trich9 | 4:2297a714936f | 127 | //ENDMYCODE |
rconnorlawson | 0:35660d7952f7 | 128 | return NO_ACTION; |
rconnorlawson | 0:35660d7952f7 | 129 | } |
rconnorlawson | 0:35660d7952f7 | 130 | |
rconnorlawson | 0:35660d7952f7 | 131 | /** |
rconnorlawson | 0:35660d7952f7 | 132 | * Update the game state based on the user action. For example, if the user |
rconnorlawson | 0:35660d7952f7 | 133 | * requests GO_UP, then this function should determine if that is possible by |
rconnorlawson | 0:35660d7952f7 | 134 | * consulting the map, and update the Player position accordingly. |
rconnorlawson | 0:35660d7952f7 | 135 | * |
rconnorlawson | 0:35660d7952f7 | 136 | * Return values are defined below. FULL_DRAW indicates that for this frame, |
rconnorlawson | 0:35660d7952f7 | 137 | * draw_game should not optimize drawing and should draw every tile, even if |
rconnorlawson | 0:35660d7952f7 | 138 | * the player has not moved. |
rconnorlawson | 0:35660d7952f7 | 139 | */ |
rconnorlawson | 0:35660d7952f7 | 140 | #define NO_RESULT 0 |
rconnorlawson | 0:35660d7952f7 | 141 | #define GAME_OVER 1 |
rconnorlawson | 0:35660d7952f7 | 142 | #define FULL_DRAW 2 |
rconnorlawson | 0:35660d7952f7 | 143 | int update_game(int action) |
rconnorlawson | 0:35660d7952f7 | 144 | { |
rconnorlawson | 0:35660d7952f7 | 145 | // Save player previous location before updating |
rconnorlawson | 0:35660d7952f7 | 146 | Player.px = Player.x; |
rconnorlawson | 0:35660d7952f7 | 147 | Player.py = Player.y; |
rconnorlawson | 0:35660d7952f7 | 148 | |
trich9 | 4:2297a714936f | 149 | //MYCODE |
trich9 | 4:2297a714936f | 150 | animation_update(); |
trich9 | 4:2297a714936f | 151 | //ENDMYCODE |
trich9 | 4:2297a714936f | 152 | |
rconnorlawson | 0:35660d7952f7 | 153 | // Do different things based on the each action. |
rconnorlawson | 0:35660d7952f7 | 154 | // You can define functions like "go_up()" that get called for each case. |
rconnorlawson | 0:35660d7952f7 | 155 | switch(action) |
rconnorlawson | 0:35660d7952f7 | 156 | { |
trich9 | 4:2297a714936f | 157 | case GO_UP: |
trich9 | 4:2297a714936f | 158 | //MYCODE |
trich9 | 4:2297a714936f | 159 | if(go_up(Player.px, Player.py)){ |
trich9 | 4:2297a714936f | 160 | return FULL_DRAW; |
trich9 | 4:2297a714936f | 161 | } |
trich9 | 4:2297a714936f | 162 | else{ |
trich9 | 4:2297a714936f | 163 | break; |
trich9 | 4:2297a714936f | 164 | } |
trich9 | 4:2297a714936f | 165 | case GO_LEFT: |
trich9 | 4:2297a714936f | 166 | if(go_left(Player.px, Player.py)){ |
trich9 | 4:2297a714936f | 167 | return FULL_DRAW; |
trich9 | 4:2297a714936f | 168 | } |
trich9 | 4:2297a714936f | 169 | else{ |
trich9 | 4:2297a714936f | 170 | break; |
trich9 | 4:2297a714936f | 171 | } |
trich9 | 4:2297a714936f | 172 | case GO_DOWN: |
trich9 | 4:2297a714936f | 173 | if(go_down(Player.px, Player.py)){ |
trich9 | 4:2297a714936f | 174 | return FULL_DRAW; |
trich9 | 4:2297a714936f | 175 | } |
trich9 | 4:2297a714936f | 176 | else{ |
trich9 | 4:2297a714936f | 177 | break; |
trich9 | 4:2297a714936f | 178 | } |
trich9 | 4:2297a714936f | 179 | case GO_RIGHT: |
trich9 | 4:2297a714936f | 180 | if(go_right(Player.px, Player.py)){ |
trich9 | 4:2297a714936f | 181 | return FULL_DRAW; |
trich9 | 4:2297a714936f | 182 | } |
trich9 | 4:2297a714936f | 183 | else{ |
trich9 | 4:2297a714936f | 184 | break; |
trich9 | 4:2297a714936f | 185 | } |
trich9 | 4:2297a714936f | 186 | case ACTION_BUTTON: |
trich9 | 4:2297a714936f | 187 | if(action_button(Player.px, Player.py)){ |
trich9 | 4:2297a714936f | 188 | return FULL_DRAW; |
trich9 | 4:2297a714936f | 189 | } |
trich9 | 4:2297a714936f | 190 | else{ |
trich9 | 4:2297a714936f | 191 | break; |
trich9 | 4:2297a714936f | 192 | } |
rconnorlawson | 0:35660d7952f7 | 193 | case MENU_BUTTON: break; |
rconnorlawson | 0:35660d7952f7 | 194 | default: break; |
rconnorlawson | 0:35660d7952f7 | 195 | } |
trich9 | 4:2297a714936f | 196 | return FULL_DRAW; |
trich9 | 4:2297a714936f | 197 | } |
trich9 | 4:2297a714936f | 198 | |
trich9 | 4:2297a714936f | 199 | //MYCODE |
trich9 | 4:2297a714936f | 200 | int go_up(int x, int y){ |
trich9 | 4:2297a714936f | 201 | MapItem *northItem = get_north(x, y); |
trich9 | 5:2fb023cdc666 | 202 | if(northItem->walkable || omnipotent || (hasBoat && northItem->type == water)){ |
trich9 | 4:2297a714936f | 203 | Player.y--; |
trich9 | 5:2fb023cdc666 | 204 | |
trich9 | 5:2fb023cdc666 | 205 | checkNeedBoat(); |
trich9 | 4:2297a714936f | 206 | return 1; |
trich9 | 4:2297a714936f | 207 | } |
trich9 | 4:2297a714936f | 208 | return 0; |
trich9 | 4:2297a714936f | 209 | } |
trich9 | 4:2297a714936f | 210 | int go_down(int x, int y){ |
trich9 | 4:2297a714936f | 211 | MapItem *southItem = get_south(x, y); |
trich9 | 5:2fb023cdc666 | 212 | if(southItem->walkable || omnipotent || (hasBoat && southItem->type == water)){ |
trich9 | 4:2297a714936f | 213 | Player.y++; |
trich9 | 5:2fb023cdc666 | 214 | checkNeedBoat(); |
trich9 | 4:2297a714936f | 215 | return 1; |
trich9 | 4:2297a714936f | 216 | } |
trich9 | 4:2297a714936f | 217 | return 0; |
trich9 | 4:2297a714936f | 218 | } |
trich9 | 4:2297a714936f | 219 | int go_left(int x, int y){ |
trich9 | 4:2297a714936f | 220 | MapItem *westItem = get_west(x, y); |
trich9 | 5:2fb023cdc666 | 221 | if(westItem->walkable || omnipotent || (hasBoat && westItem->type == water)){ |
trich9 | 4:2297a714936f | 222 | Player.x--; |
trich9 | 5:2fb023cdc666 | 223 | checkNeedBoat(); |
trich9 | 4:2297a714936f | 224 | return 1; |
trich9 | 4:2297a714936f | 225 | } |
trich9 | 4:2297a714936f | 226 | return 0; |
trich9 | 4:2297a714936f | 227 | } |
trich9 | 4:2297a714936f | 228 | int go_right(int x, int y){ |
trich9 | 4:2297a714936f | 229 | MapItem *eastItem = get_east(x, y); |
trich9 | 5:2fb023cdc666 | 230 | if(eastItem->walkable || omnipotent || (hasBoat && eastItem->type == water)){ |
trich9 | 4:2297a714936f | 231 | Player.x++; |
trich9 | 5:2fb023cdc666 | 232 | checkNeedBoat(); |
trich9 | 4:2297a714936f | 233 | return 1; |
trich9 | 4:2297a714936f | 234 | } |
trich9 | 4:2297a714936f | 235 | return 0; |
trich9 | 4:2297a714936f | 236 | } |
trich9 | 4:2297a714936f | 237 | |
trich9 | 5:2fb023cdc666 | 238 | // || (hasBoat && eastItem->type == water) |
trich9 | 5:2fb023cdc666 | 239 | |
trich9 | 4:2297a714936f | 240 | int action_button(int x, int y){ |
trich9 | 4:2297a714936f | 241 | MapItem *eastItem = get_east(x, y); |
trich9 | 4:2297a714936f | 242 | MapItem *westItem = get_west(x, y); |
trich9 | 4:2297a714936f | 243 | MapItem *southItem = get_south(x, y); |
trich9 | 4:2297a714936f | 244 | MapItem *northItem = get_north(x, y); |
trich9 | 4:2297a714936f | 245 | MapItem *hereItem = get_here(x, y); |
trich9 | 4:2297a714936f | 246 | |
trich9 | 4:2297a714936f | 247 | |
trich9 | 4:2297a714936f | 248 | |
trich9 | 4:2297a714936f | 249 | //eastItem || westItem || northItem || southItem || hereItem |
trich9 | 4:2297a714936f | 250 | if(eastItem -> type == NPC || westItem -> type == NPC || northItem -> type == NPC || southItem -> type == NPC || hereItem -> type == NPC){ |
trich9 | 4:2297a714936f | 251 | |
trich9 | 4:2297a714936f | 252 | if(dialogueNumNPC == 0){ |
trich9 | 5:2fb023cdc666 | 253 | //1234567890123456X8901234567890123X5679012345678901X1234567890 |
trich9 | 5:2fb023cdc666 | 254 | char *talk2 = "There's a ladder SOUTH of here where you can geta sonar."; |
trich9 | 4:2297a714936f | 255 | speech(talk1, talk2); |
trich9 | 5:2fb023cdc666 | 256 | add_ladder(8, 40); |
trich9 | 4:2297a714936f | 257 | dialogueNumNPC = 1; |
trich9 | 5:2fb023cdc666 | 258 | |
trich9 | 4:2297a714936f | 259 | } |
trich9 | 4:2297a714936f | 260 | else if(dialogueNumNPC == 1){ |
trich9 | 5:2fb023cdc666 | 261 | //1234567890123456X8901234567890123X567901234567890 |
trich9 | 5:2fb023cdc666 | 262 | char *talk2 = "It's around the lake, between two rocks."; |
trich9 | 4:2297a714936f | 263 | speech(talk1, talk2); |
trich9 | 5:2fb023cdc666 | 264 | |
trich9 | 4:2297a714936f | 265 | } |
trich9 | 5:2fb023cdc666 | 266 | //map_erase(NPCx,NPCy-1); |
trich9 | 4:2297a714936f | 267 | |
trich9 | 4:2297a714936f | 268 | } |
trich9 | 4:2297a714936f | 269 | //ladder interaction |
trich9 | 5:2fb023cdc666 | 270 | else if(eastItem -> type == ladder || westItem -> type == ladder || northItem -> type == ladder || southItem -> type == ladder || hereItem -> type == ladder){ |
trich9 | 4:2297a714936f | 271 | //add_ladder(8, 8); |
trich9 | 5:2fb023cdc666 | 272 | |
trich9 | 5:2fb023cdc666 | 273 | ladderSound(); |
trich9 | 5:2fb023cdc666 | 274 | map_erase(8, 40); |
trich9 | 4:2297a714936f | 275 | init_map2(); |
trich9 | 4:2297a714936f | 276 | } |
trich9 | 5:2fb023cdc666 | 277 | //sonar interation |
trich9 | 5:2fb023cdc666 | 278 | else if(eastItem -> type == sonar || westItem -> type == sonar || northItem -> type == sonar || southItem -> type == sonar || hereItem -> type == sonar){ |
trich9 | 5:2fb023cdc666 | 279 | |
trich9 | 5:2fb023cdc666 | 280 | pickUpSound(); |
trich9 | 5:2fb023cdc666 | 281 | //1234567890123456789012345678901234567901234567890 |
trich9 | 5:2fb023cdc666 | 282 | char *talk2 = "You found the sonar!!!"; |
trich9 | 5:2fb023cdc666 | 283 | speech(talk1, talk2); |
trich9 | 5:2fb023cdc666 | 284 | |
trich9 | 5:2fb023cdc666 | 285 | map_erase(14, 8); //erase the sonar |
trich9 | 5:2fb023cdc666 | 286 | init_main_map(); //switch back to main map |
trich9 | 5:2fb023cdc666 | 287 | Player.x = 8; //CHANGE to cords of new ladder when done |
trich9 | 5:2fb023cdc666 | 288 | Player.y = 40; |
trich9 | 5:2fb023cdc666 | 289 | |
trich9 | 5:2fb023cdc666 | 290 | spawnTreasure(); //spawn the treasure |
trich9 | 5:2fb023cdc666 | 291 | hasSonar = 1; //allow player to use sonar |
trich9 | 5:2fb023cdc666 | 292 | } |
trich9 | 5:2fb023cdc666 | 293 | |
trich9 | 5:2fb023cdc666 | 294 | else if(eastItem -> type == keyItem || westItem -> type == keyItem || northItem -> type == keyItem || southItem -> type == keyItem || hereItem -> type == keyItem){ |
trich9 | 5:2fb023cdc666 | 295 | |
trich9 | 5:2fb023cdc666 | 296 | pickUpSound(); |
trich9 | 5:2fb023cdc666 | 297 | //1234567890123456789012345678901234567901234567890 |
trich9 | 5:2fb023cdc666 | 298 | char *talk2 = "You found a key. I wonder what it opens?"; |
trich9 | 5:2fb023cdc666 | 299 | speech(talk1, talk2); |
trich9 | 5:2fb023cdc666 | 300 | map_erase(18, 8); |
trich9 | 5:2fb023cdc666 | 301 | Player.has_key = 1; |
trich9 | 5:2fb023cdc666 | 302 | } |
trich9 | 5:2fb023cdc666 | 303 | |
trich9 | 5:2fb023cdc666 | 304 | else if(eastItem -> type == treasure || westItem -> type == treasure || northItem -> type == treasure || southItem -> type == treasure || hereItem -> type == treasure){ |
trich9 | 5:2fb023cdc666 | 305 | //add_ladder(8, 8); |
trich9 | 5:2fb023cdc666 | 306 | if(fakeTreasure == 1){//first treasure found so it is fake |
trich9 | 5:2fb023cdc666 | 307 | //1234567890123456789012345678901234567901234567890 |
trich9 | 5:2fb023cdc666 | 308 | char *talk2 = "That treasure was fake."; |
trich9 | 5:2fb023cdc666 | 309 | speech(talk1, talk2); |
trich9 | 5:2fb023cdc666 | 310 | |
trich9 | 5:2fb023cdc666 | 311 | map_erase(treasureX, treasureY); |
trich9 | 5:2fb023cdc666 | 312 | spawnTreasure(); |
trich9 | 5:2fb023cdc666 | 313 | fakeTreasure = 0; |
trich9 | 5:2fb023cdc666 | 314 | } |
trich9 | 5:2fb023cdc666 | 315 | else{ //do a game over screen |
trich9 | 5:2fb023cdc666 | 316 | endScreen(); |
trich9 | 5:2fb023cdc666 | 317 | } |
trich9 | 5:2fb023cdc666 | 318 | } |
trich9 | 5:2fb023cdc666 | 319 | |
trich9 | 5:2fb023cdc666 | 320 | //gate stuff |
trich9 | 5:2fb023cdc666 | 321 | else if(eastItem -> type == gate || westItem -> type == gate || northItem -> type == gate || southItem -> type == gate || hereItem -> type == gate){ |
trich9 | 5:2fb023cdc666 | 322 | if(Player.has_key){ |
trich9 | 5:2fb023cdc666 | 323 | pickUpSound(); |
trich9 | 5:2fb023cdc666 | 324 | //123456789012345678901234567890123X567901234567890 |
trich9 | 5:2fb023cdc666 | 325 | char *talk2 = "You used your keyto unlock the gate."; |
trich9 | 5:2fb023cdc666 | 326 | speech(talk1, talk2); |
trich9 | 5:2fb023cdc666 | 327 | |
trich9 | 5:2fb023cdc666 | 328 | map_erase(33, 5); |
trich9 | 5:2fb023cdc666 | 329 | } |
trich9 | 5:2fb023cdc666 | 330 | else{ |
trich9 | 5:2fb023cdc666 | 331 | char *talk2 = "It's locked."; |
trich9 | 5:2fb023cdc666 | 332 | speech(talk1, talk2); |
trich9 | 5:2fb023cdc666 | 333 | } |
trich9 | 5:2fb023cdc666 | 334 | } |
trich9 | 5:2fb023cdc666 | 335 | |
trich9 | 5:2fb023cdc666 | 336 | else if(eastItem -> type == prisoner || westItem -> type == prisoner || northItem -> type == prisoner || southItem -> type == prisoner || hereItem -> type == prisoner){ |
trich9 | 5:2fb023cdc666 | 337 | if(dialogueNumPris == 0){ |
trich9 | 5:2fb023cdc666 | 338 | //1234567890123456X8901234567890123X5679012345678901X1234567890123456X1234567890123456X1234567890123456X |
trich9 | 5:2fb023cdc666 | 339 | char *talk2 = "Hey... you just like freed me from this jail..."; |
trich9 | 5:2fb023cdc666 | 340 | speech(talk1, talk2); |
trich9 | 5:2fb023cdc666 | 341 | //1234567890123456X8901234567890123X5679012345678901X1234567890123456X1234567890123456X1234567890123456X |
trich9 | 5:2fb023cdc666 | 342 | char *talk3 = "I was going to use this BOAT to bust out... But I guess you can have it now."; |
trich9 | 5:2fb023cdc666 | 343 | speech(talk1, talk3); |
trich9 | 5:2fb023cdc666 | 344 | |
trich9 | 5:2fb023cdc666 | 345 | pickUpSound(); |
trich9 | 5:2fb023cdc666 | 346 | char *talk4 = "You got a BOAT! You can travel over water now!"; |
trich9 | 5:2fb023cdc666 | 347 | speech(talk1, talk4); |
trich9 | 5:2fb023cdc666 | 348 | |
trich9 | 5:2fb023cdc666 | 349 | spawnLakeTreasure(); |
trich9 | 5:2fb023cdc666 | 350 | |
trich9 | 5:2fb023cdc666 | 351 | hasBoat = 1; |
trich9 | 5:2fb023cdc666 | 352 | dialogueNumPris = 1; |
trich9 | 5:2fb023cdc666 | 353 | map_erase(33,1); |
trich9 | 5:2fb023cdc666 | 354 | } |
trich9 | 5:2fb023cdc666 | 355 | else if(dialogueNumPris == 1){ |
trich9 | 5:2fb023cdc666 | 356 | //1234567890123456X8901234567890123X5679012345678901X1234567890123456X1234567890123456X1234567890123456X |
trich9 | 5:2fb023cdc666 | 357 | char *talk2 = "Kinda forgot why I made a boat in the first place..."; |
trich9 | 5:2fb023cdc666 | 358 | speech(talk1, talk2); |
trich9 | 5:2fb023cdc666 | 359 | //1234567890123456X8901234567890123X5679012345678901X1234567890123456X |
trich9 | 5:2fb023cdc666 | 360 | char *talk3 = "Something to do with a lake and treasure... "; |
trich9 | 5:2fb023cdc666 | 361 | speech(talk1, talk3); |
trich9 | 5:2fb023cdc666 | 362 | } |
trich9 | 5:2fb023cdc666 | 363 | |
trich9 | 5:2fb023cdc666 | 364 | |
trich9 | 5:2fb023cdc666 | 365 | |
trich9 | 5:2fb023cdc666 | 366 | } |
trich9 | 5:2fb023cdc666 | 367 | |
trich9 | 5:2fb023cdc666 | 368 | |
trich9 | 5:2fb023cdc666 | 369 | //no items found so give the speech based on whether he has the sonar or not |
trich9 | 5:2fb023cdc666 | 370 | else{ |
trich9 | 5:2fb023cdc666 | 371 | if(!hasSonar){ |
trich9 | 5:2fb023cdc666 | 372 | //1234567890123456X8901234567890123X567901234567890 |
trich9 | 5:2fb023cdc666 | 373 | char *talk2 = "You do not have the sonar."; |
trich9 | 5:2fb023cdc666 | 374 | speech(talk1, talk2); |
trich9 | 5:2fb023cdc666 | 375 | } |
trich9 | 5:2fb023cdc666 | 376 | else{ |
trich9 | 5:2fb023cdc666 | 377 | |
trich9 | 5:2fb023cdc666 | 378 | //char buffer[50]; |
trich9 | 5:2fb023cdc666 | 379 | //sprintf(buffer, "%d, %d", treasureX, treasureY); |
trich9 | 5:2fb023cdc666 | 380 | if(get_here(Player.x, Player.y) -> type != water){//player is in the water |
trich9 | 5:2fb023cdc666 | 381 | //1234567890123456X8901234567890123X567901234567890 |
trich9 | 5:2fb023cdc666 | 382 | char *talk2 = "The sonar says:"; |
trich9 | 5:2fb023cdc666 | 383 | char *talkWest = "West"; |
trich9 | 5:2fb023cdc666 | 384 | char *talkEast = "East"; |
trich9 | 5:2fb023cdc666 | 385 | char *talkNorth = "North"; |
trich9 | 5:2fb023cdc666 | 386 | char *talkSouth = "South"; |
trich9 | 5:2fb023cdc666 | 387 | speech(talk1, talk2); |
trich9 | 5:2fb023cdc666 | 388 | |
trich9 | 5:2fb023cdc666 | 389 | if(treasureX > Player.x) speech(talk1, talkEast); |
trich9 | 5:2fb023cdc666 | 390 | if(treasureX < Player.x) speech(talk1, talkWest); |
trich9 | 5:2fb023cdc666 | 391 | if(treasureY > Player.y) speech(talk1, talkSouth); |
trich9 | 5:2fb023cdc666 | 392 | if(treasureY < Player.y) speech(talk1, talkNorth); |
trich9 | 5:2fb023cdc666 | 393 | } |
trich9 | 5:2fb023cdc666 | 394 | else{ |
trich9 | 5:2fb023cdc666 | 395 | if(Player.x == lakeTreasureX && Player.y == lakeTreasureY){//player is on the treasure |
trich9 | 5:2fb023cdc666 | 396 | //1234567890123456X8901234567890123X567901234567890 |
trich9 | 5:2fb023cdc666 | 397 | char *talk2 = "There's something down here!"; |
trich9 | 5:2fb023cdc666 | 398 | speech(talk1, talk2); |
trich9 | 5:2fb023cdc666 | 399 | |
trich9 | 5:2fb023cdc666 | 400 | if(fakeLakeTreasure){//tres is fake |
trich9 | 5:2fb023cdc666 | 401 | //1234567890123456X8901234567890123X567901234567890 |
trich9 | 5:2fb023cdc666 | 402 | char *talk3 = "It's just an old boot :("; |
trich9 | 5:2fb023cdc666 | 403 | speech(talk1, talk3); |
trich9 | 5:2fb023cdc666 | 404 | fakeLakeTreasure = 0; |
trich9 | 5:2fb023cdc666 | 405 | spawnLakeTreasure(); |
trich9 | 5:2fb023cdc666 | 406 | } |
trich9 | 5:2fb023cdc666 | 407 | else{//tres is real |
trich9 | 5:2fb023cdc666 | 408 | //1234567890123456X8901234567890123X1234567890123456X1234567890123456X |
trich9 | 5:2fb023cdc666 | 409 | char *talk3 = "It's a giant treasure chest! You gleefully throw it onto theshore!"; |
trich9 | 5:2fb023cdc666 | 410 | speech(talk1, talk3); |
trich9 | 5:2fb023cdc666 | 411 | |
trich9 | 5:2fb023cdc666 | 412 | fakeTreasure = 0; |
trich9 | 5:2fb023cdc666 | 413 | add_treasure(13,11); |
trich9 | 5:2fb023cdc666 | 414 | } |
trich9 | 5:2fb023cdc666 | 415 | |
trich9 | 5:2fb023cdc666 | 416 | } |
trich9 | 5:2fb023cdc666 | 417 | else{ |
trich9 | 5:2fb023cdc666 | 418 | char *talk2 = "The sonar says:"; |
trich9 | 5:2fb023cdc666 | 419 | speech(talk1, talk2); |
trich9 | 5:2fb023cdc666 | 420 | //1234567890123456X8901234567890123X567901234567890 |
trich9 | 5:2fb023cdc666 | 421 | char *talk3 = "Look for a shimmer in the sea..."; |
trich9 | 5:2fb023cdc666 | 422 | speech(talk1, talk3); |
trich9 | 5:2fb023cdc666 | 423 | //char buffer[50]; |
trich9 | 5:2fb023cdc666 | 424 | //sprintf(buffer, "%d, %d", lakeTreasureX, lakeTreasureY); |
trich9 | 5:2fb023cdc666 | 425 | //speech(talk1, buffer); |
trich9 | 5:2fb023cdc666 | 426 | treasureSparkle(); |
trich9 | 5:2fb023cdc666 | 427 | } |
trich9 | 5:2fb023cdc666 | 428 | } |
trich9 | 5:2fb023cdc666 | 429 | } |
trich9 | 5:2fb023cdc666 | 430 | |
trich9 | 5:2fb023cdc666 | 431 | } |
trich9 | 5:2fb023cdc666 | 432 | |
trich9 | 4:2297a714936f | 433 | return 1; |
rconnorlawson | 0:35660d7952f7 | 434 | } |
rconnorlawson | 0:35660d7952f7 | 435 | |
rconnorlawson | 0:35660d7952f7 | 436 | /** |
rconnorlawson | 0:35660d7952f7 | 437 | * Entry point for frame drawing. This should be called once per iteration of |
rconnorlawson | 0:35660d7952f7 | 438 | * the game loop. This draws all tiles on the screen, followed by the status |
rconnorlawson | 0:35660d7952f7 | 439 | * bars. Unless init is nonzero, this function will optimize drawing by only |
rconnorlawson | 0:35660d7952f7 | 440 | * drawing tiles that have changed from the previous frame. |
rconnorlawson | 0:35660d7952f7 | 441 | */ |
rconnorlawson | 0:35660d7952f7 | 442 | void draw_game(int init) |
rconnorlawson | 0:35660d7952f7 | 443 | { |
rconnorlawson | 0:35660d7952f7 | 444 | // Draw game border first |
rconnorlawson | 0:35660d7952f7 | 445 | if(init) draw_border(); |
rconnorlawson | 0:35660d7952f7 | 446 | |
rconnorlawson | 0:35660d7952f7 | 447 | // Iterate over all visible map tiles |
rconnorlawson | 0:35660d7952f7 | 448 | for (int i = -5; i <= 5; i++) // Iterate over columns of tiles |
rconnorlawson | 0:35660d7952f7 | 449 | { |
rconnorlawson | 0:35660d7952f7 | 450 | for (int j = -4; j <= 4; j++) // Iterate over one column of tiles |
rconnorlawson | 0:35660d7952f7 | 451 | { |
rconnorlawson | 0:35660d7952f7 | 452 | // Here, we have a given (i,j) |
rconnorlawson | 0:35660d7952f7 | 453 | |
rconnorlawson | 0:35660d7952f7 | 454 | // Compute the current map (x,y) of this tile |
rconnorlawson | 0:35660d7952f7 | 455 | int x = i + Player.x; |
rconnorlawson | 0:35660d7952f7 | 456 | int y = j + Player.y; |
rconnorlawson | 0:35660d7952f7 | 457 | |
rconnorlawson | 0:35660d7952f7 | 458 | // Compute the previous map (px, py) of this tile |
rconnorlawson | 0:35660d7952f7 | 459 | int px = i + Player.px; |
rconnorlawson | 0:35660d7952f7 | 460 | int py = j + Player.py; |
rconnorlawson | 0:35660d7952f7 | 461 | |
rconnorlawson | 0:35660d7952f7 | 462 | // Compute u,v coordinates for drawing |
rconnorlawson | 0:35660d7952f7 | 463 | int u = (i+5)*11 + 3; |
rconnorlawson | 0:35660d7952f7 | 464 | int v = (j+4)*11 + 15; |
rconnorlawson | 0:35660d7952f7 | 465 | |
rconnorlawson | 0:35660d7952f7 | 466 | // Figure out what to draw |
rconnorlawson | 0:35660d7952f7 | 467 | DrawFunc draw = NULL; |
rconnorlawson | 0:35660d7952f7 | 468 | if (init && i == 0 && j == 0) // Only draw the player on init |
rconnorlawson | 0:35660d7952f7 | 469 | { |
trich9 | 5:2fb023cdc666 | 470 | draw_player(u, v, Player.has_key, needBoat); |
rconnorlawson | 0:35660d7952f7 | 471 | continue; |
rconnorlawson | 0:35660d7952f7 | 472 | } |
rconnorlawson | 0:35660d7952f7 | 473 | else if (x >= 0 && y >= 0 && x < map_width() && y < map_height()) // Current (i,j) in the map |
rconnorlawson | 0:35660d7952f7 | 474 | { |
rconnorlawson | 0:35660d7952f7 | 475 | MapItem* curr_item = get_here(x, y); |
rconnorlawson | 0:35660d7952f7 | 476 | MapItem* prev_item = get_here(px, py); |
rconnorlawson | 0:35660d7952f7 | 477 | if (init || curr_item != prev_item) // Only draw if they're different |
rconnorlawson | 0:35660d7952f7 | 478 | { |
rconnorlawson | 0:35660d7952f7 | 479 | if (curr_item) // There's something here! Draw it |
rconnorlawson | 0:35660d7952f7 | 480 | { |
rconnorlawson | 0:35660d7952f7 | 481 | draw = curr_item->draw; |
rconnorlawson | 0:35660d7952f7 | 482 | } |
rconnorlawson | 0:35660d7952f7 | 483 | else // There used to be something, but now there isn't |
rconnorlawson | 0:35660d7952f7 | 484 | { |
rconnorlawson | 0:35660d7952f7 | 485 | draw = draw_nothing; |
rconnorlawson | 0:35660d7952f7 | 486 | } |
rconnorlawson | 0:35660d7952f7 | 487 | } |
rconnorlawson | 0:35660d7952f7 | 488 | } |
rconnorlawson | 0:35660d7952f7 | 489 | else if (init) // If doing a full draw, but we're out of bounds, draw the walls. |
rconnorlawson | 0:35660d7952f7 | 490 | { |
rconnorlawson | 0:35660d7952f7 | 491 | draw = draw_wall; |
rconnorlawson | 0:35660d7952f7 | 492 | } |
rconnorlawson | 0:35660d7952f7 | 493 | |
rconnorlawson | 0:35660d7952f7 | 494 | // Actually draw the tile |
rconnorlawson | 0:35660d7952f7 | 495 | if (draw) draw(u, v); |
rconnorlawson | 0:35660d7952f7 | 496 | } |
rconnorlawson | 0:35660d7952f7 | 497 | } |
rconnorlawson | 0:35660d7952f7 | 498 | |
trich9 | 4:2297a714936f | 499 | // Draw status bars |
trich9 | 4:2297a714936f | 500 | if(Player.x != Player.px || Player.y != Player.py){ |
trich9 | 4:2297a714936f | 501 | draw_upper_status(Player.x, Player.y); |
trich9 | 4:2297a714936f | 502 | } |
trich9 | 4:2297a714936f | 503 | |
rconnorlawson | 0:35660d7952f7 | 504 | draw_lower_status(); |
rconnorlawson | 0:35660d7952f7 | 505 | } |
rconnorlawson | 0:35660d7952f7 | 506 | |
rconnorlawson | 0:35660d7952f7 | 507 | |
rconnorlawson | 0:35660d7952f7 | 508 | /** |
rconnorlawson | 0:35660d7952f7 | 509 | * Initialize the main world map. Add walls around the edges, interior chambers, |
rashidi1saeed | 2:1ca97843a334 | 510 | * and plants in the background so you can see motion. Note: using the similar |
rashidi1saeed | 3:e4690ad5a4d2 | 511 | * procedure you can init the secondary map(s). |
rconnorlawson | 0:35660d7952f7 | 512 | */ |
rconnorlawson | 0:35660d7952f7 | 513 | void init_main_map() |
rconnorlawson | 0:35660d7952f7 | 514 | { |
rconnorlawson | 0:35660d7952f7 | 515 | // "Random" plants |
rconnorlawson | 0:35660d7952f7 | 516 | Map* map = set_active_map(0); |
trich9 | 5:2fb023cdc666 | 517 | |
trich9 | 5:2fb023cdc666 | 518 | /*OGCODE |
rconnorlawson | 0:35660d7952f7 | 519 | for(int i = map_width() + 3; i < map_area(); i += 39) |
rconnorlawson | 0:35660d7952f7 | 520 | { |
rconnorlawson | 0:35660d7952f7 | 521 | add_plant(i % map_width(), i / map_width()); |
rconnorlawson | 0:35660d7952f7 | 522 | } |
rconnorlawson | 0:35660d7952f7 | 523 | pc.printf("plants\r\n"); |
trich9 | 5:2fb023cdc666 | 524 | */ |
trich9 | 5:2fb023cdc666 | 525 | |
trich9 | 5:2fb023cdc666 | 526 | //adds plants in random locations |
trich9 | 5:2fb023cdc666 | 527 | int numberOfPlants = 75; |
trich9 | 5:2fb023cdc666 | 528 | |
trich9 | 5:2fb023cdc666 | 529 | srand (time(NULL)); |
trich9 | 5:2fb023cdc666 | 530 | while(numberOfPlants > 0){ |
trich9 | 5:2fb023cdc666 | 531 | add_plant((rand()%70 + 2), (rand()%45+2));\ |
trich9 | 5:2fb023cdc666 | 532 | numberOfPlants--; |
trich9 | 5:2fb023cdc666 | 533 | } |
trich9 | 5:2fb023cdc666 | 534 | |
trich9 | 5:2fb023cdc666 | 535 | |
rconnorlawson | 0:35660d7952f7 | 536 | pc.printf("Adding walls!\r\n"); |
rconnorlawson | 0:35660d7952f7 | 537 | add_wall(0, 0, HORIZONTAL, map_width()); |
rconnorlawson | 0:35660d7952f7 | 538 | add_wall(0, map_height()-1, HORIZONTAL, map_width()); |
rconnorlawson | 0:35660d7952f7 | 539 | add_wall(0, 0, VERTICAL, map_height()); |
rconnorlawson | 0:35660d7952f7 | 540 | add_wall(map_width()-1, 0, VERTICAL, map_height()); |
rconnorlawson | 0:35660d7952f7 | 541 | pc.printf("Walls done!\r\n"); |
trich9 | 4:2297a714936f | 542 | |
trich9 | 5:2fb023cdc666 | 543 | |
trich9 | 4:2297a714936f | 544 | //MYCODE |
trich9 | 4:2297a714936f | 545 | add_NPC(6, 5); |
trich9 | 5:2fb023cdc666 | 546 | |
trich9 | 5:2fb023cdc666 | 547 | |
trich9 | 5:2fb023cdc666 | 548 | //TESTING |
trich9 | 5:2fb023cdc666 | 549 | //ENDTESTING |
trich9 | 5:2fb023cdc666 | 550 | //lake1 |
trich9 | 5:2fb023cdc666 | 551 | add_water(4, 8, HORIZONTAL, 5); |
trich9 | 5:2fb023cdc666 | 552 | add_water(3, 9, HORIZONTAL, 7); |
trich9 | 5:2fb023cdc666 | 553 | add_water(3, 10, HORIZONTAL, 9); |
trich9 | 5:2fb023cdc666 | 554 | add_water(3, 11, HORIZONTAL, 9); |
trich9 | 5:2fb023cdc666 | 555 | add_water(3, 12, HORIZONTAL, 9); |
trich9 | 5:2fb023cdc666 | 556 | add_water(3, 13, HORIZONTAL, 7); |
trich9 | 5:2fb023cdc666 | 557 | add_water(4, 14, HORIZONTAL, 5); |
trich9 | 5:2fb023cdc666 | 558 | |
trich9 | 5:2fb023cdc666 | 559 | |
trich9 | 5:2fb023cdc666 | 560 | //ROCKS!!! |
trich9 | 5:2fb023cdc666 | 561 | |
trich9 | 5:2fb023cdc666 | 562 | add_rock(4, 39, HORIZONTAL, 2); |
trich9 | 5:2fb023cdc666 | 563 | add_rock(3, 40, HORIZONTAL, 3); |
trich9 | 5:2fb023cdc666 | 564 | |
trich9 | 5:2fb023cdc666 | 565 | add_rock(9, 39, HORIZONTAL, 2); |
trich9 | 5:2fb023cdc666 | 566 | add_rock(9, 40, HORIZONTAL, 3); |
trich9 | 5:2fb023cdc666 | 567 | |
trich9 | 5:2fb023cdc666 | 568 | //WOOD "HOUSE" |
trich9 | 5:2fb023cdc666 | 569 | add_wood(30, 1, HORIZONTAL, 1); |
trich9 | 5:2fb023cdc666 | 570 | add_wood(36, 1, HORIZONTAL, 1); |
trich9 | 5:2fb023cdc666 | 571 | |
trich9 | 5:2fb023cdc666 | 572 | add_wood(30, 2, HORIZONTAL, 1); |
trich9 | 5:2fb023cdc666 | 573 | add_wood(36, 2, HORIZONTAL, 1); |
trich9 | 5:2fb023cdc666 | 574 | |
trich9 | 5:2fb023cdc666 | 575 | add_wood(30, 3, HORIZONTAL, 1); |
trich9 | 5:2fb023cdc666 | 576 | add_wood(36, 3, HORIZONTAL, 1); |
trich9 | 5:2fb023cdc666 | 577 | |
trich9 | 5:2fb023cdc666 | 578 | add_wood(30, 4, HORIZONTAL, 1); |
trich9 | 5:2fb023cdc666 | 579 | add_wood(36, 4, HORIZONTAL, 1); |
trich9 | 5:2fb023cdc666 | 580 | |
trich9 | 5:2fb023cdc666 | 581 | add_wood(30, 5, HORIZONTAL, 3); |
trich9 | 5:2fb023cdc666 | 582 | add_wood(34, 5, HORIZONTAL, 3); |
trich9 | 5:2fb023cdc666 | 583 | |
trich9 | 5:2fb023cdc666 | 584 | add_gate(33,5); |
trich9 | 5:2fb023cdc666 | 585 | |
trich9 | 5:2fb023cdc666 | 586 | add_prisoner(33, 2); |
trich9 | 5:2fb023cdc666 | 587 | add_expPnt(33, 1); |
trich9 | 5:2fb023cdc666 | 588 | |
trich9 | 5:2fb023cdc666 | 589 | //TESTING |
trich9 | 5:2fb023cdc666 | 590 | |
rconnorlawson | 0:35660d7952f7 | 591 | print_map(); |
rconnorlawson | 0:35660d7952f7 | 592 | } |
rconnorlawson | 0:35660d7952f7 | 593 | |
rconnorlawson | 0:35660d7952f7 | 594 | /** |
rconnorlawson | 0:35660d7952f7 | 595 | * Program entry point! This is where it all begins. |
rconnorlawson | 0:35660d7952f7 | 596 | * This function orchestrates all the parts of the game. Most of your |
rconnorlawson | 0:35660d7952f7 | 597 | * implementation should be elsewhere - this holds the game loop, and should |
rconnorlawson | 0:35660d7952f7 | 598 | * read like a road map for the rest of the code. |
rconnorlawson | 0:35660d7952f7 | 599 | */ |
rconnorlawson | 0:35660d7952f7 | 600 | int main() |
rconnorlawson | 0:35660d7952f7 | 601 | { |
rconnorlawson | 0:35660d7952f7 | 602 | // First things first: initialize hardware |
rconnorlawson | 0:35660d7952f7 | 603 | ASSERT_P(hardware_init() == ERROR_NONE, "Hardware init failed!"); |
trich9 | 5:2fb023cdc666 | 604 | |
trich9 | 5:2fb023cdc666 | 605 | //MYCODE |
trich9 | 5:2fb023cdc666 | 606 | startScreen(); |
rconnorlawson | 0:35660d7952f7 | 607 | // Initialize the maps |
rconnorlawson | 0:35660d7952f7 | 608 | maps_init(); |
rconnorlawson | 0:35660d7952f7 | 609 | init_main_map(); |
rconnorlawson | 0:35660d7952f7 | 610 | |
rconnorlawson | 0:35660d7952f7 | 611 | // Initialize game state |
rconnorlawson | 0:35660d7952f7 | 612 | set_active_map(0); |
rconnorlawson | 0:35660d7952f7 | 613 | Player.x = Player.y = 5; |
trich9 | 4:2297a714936f | 614 | |
trich9 | 4:2297a714936f | 615 | //MYCODE |
trich9 | 4:2297a714936f | 616 | omnipotent = 0; |
trich9 | 5:2fb023cdc666 | 617 | hasSonar = 0; |
trich9 | 4:2297a714936f | 618 | |
rconnorlawson | 0:35660d7952f7 | 619 | // Initial drawing |
rconnorlawson | 0:35660d7952f7 | 620 | draw_game(true); |
rconnorlawson | 0:35660d7952f7 | 621 | |
rconnorlawson | 0:35660d7952f7 | 622 | // Main game loop |
rconnorlawson | 0:35660d7952f7 | 623 | while(1) |
rconnorlawson | 0:35660d7952f7 | 624 | { |
rconnorlawson | 0:35660d7952f7 | 625 | // Timer to measure game update speed |
rconnorlawson | 0:35660d7952f7 | 626 | Timer t; t.start(); |
rconnorlawson | 0:35660d7952f7 | 627 | |
rconnorlawson | 0:35660d7952f7 | 628 | // Actuall do the game update: |
trich9 | 4:2297a714936f | 629 | // 1. Read inputs |
trich9 | 4:2297a714936f | 630 | //MYCODE |
trich9 | 4:2297a714936f | 631 | gInputs = read_inputs(); |
trich9 | 4:2297a714936f | 632 | |
trich9 | 4:2297a714936f | 633 | // 2. Determine action (get_action) |
trich9 | 4:2297a714936f | 634 | //MYCODE |
trich9 | 4:2297a714936f | 635 | action = get_action(gInputs); |
trich9 | 4:2297a714936f | 636 | |
rconnorlawson | 0:35660d7952f7 | 637 | // 3. Update game (update_game) |
trich9 | 4:2297a714936f | 638 | //MYCODE |
trich9 | 4:2297a714936f | 639 | gUpdate = update_game(action); |
rconnorlawson | 0:35660d7952f7 | 640 | // 3b. Check for game over |
trich9 | 4:2297a714936f | 641 | |
trich9 | 4:2297a714936f | 642 | |
rconnorlawson | 0:35660d7952f7 | 643 | // 4. Draw frame (draw_game) |
trich9 | 4:2297a714936f | 644 | draw_game(gUpdate); |
rconnorlawson | 0:35660d7952f7 | 645 | |
rconnorlawson | 0:35660d7952f7 | 646 | // 5. Frame delay |
rconnorlawson | 0:35660d7952f7 | 647 | t.stop(); |
rconnorlawson | 0:35660d7952f7 | 648 | int dt = t.read_ms(); |
rconnorlawson | 0:35660d7952f7 | 649 | if (dt < 100) wait_ms(100 - dt); |
rconnorlawson | 0:35660d7952f7 | 650 | } |
rconnorlawson | 0:35660d7952f7 | 651 | } |
trich9 | 4:2297a714936f | 652 | |
trich9 | 4:2297a714936f | 653 | //MYCODE |
trich9 | 4:2297a714936f | 654 | void init_map2() |
trich9 | 4:2297a714936f | 655 | { |
trich9 | 4:2297a714936f | 656 | Map* map = set_active_map(1); |
trich9 | 4:2297a714936f | 657 | |
trich9 | 4:2297a714936f | 658 | Player.x = 2; |
trich9 | 4:2297a714936f | 659 | Player.y = 2; |
trich9 | 4:2297a714936f | 660 | |
trich9 | 4:2297a714936f | 661 | pc.printf("Adding walls!\r\n"); |
trich9 | 4:2297a714936f | 662 | add_wall(0, 0, HORIZONTAL, map_width()); |
trich9 | 4:2297a714936f | 663 | add_wall(0, map_height()-1, HORIZONTAL, map_width()); |
trich9 | 4:2297a714936f | 664 | add_wall(0, 0, VERTICAL, map_height()); |
trich9 | 4:2297a714936f | 665 | add_wall(map_width()-1, 0, VERTICAL, map_height()); |
trich9 | 4:2297a714936f | 666 | pc.printf("Walls done!\r\n"); |
trich9 | 4:2297a714936f | 667 | |
trich9 | 5:2fb023cdc666 | 668 | //INTERIOR WALLS |
trich9 | 5:2fb023cdc666 | 669 | add_wall(4, 1, VERTICAL, 5); |
trich9 | 5:2fb023cdc666 | 670 | |
trich9 | 5:2fb023cdc666 | 671 | add_wall(8, 1, VERTICAL, 3); |
trich9 | 5:2fb023cdc666 | 672 | add_wall(8, 5, VERTICAL, 3); |
trich9 | 5:2fb023cdc666 | 673 | |
trich9 | 5:2fb023cdc666 | 674 | add_wall(9, 5, HORIZONTAL, 4); |
trich9 | 5:2fb023cdc666 | 675 | add_wall(12, 5, VERTICAL, 4); |
trich9 | 5:2fb023cdc666 | 676 | |
trich9 | 5:2fb023cdc666 | 677 | add_wall(9, 5, HORIZONTAL, 4); |
trich9 | 5:2fb023cdc666 | 678 | add_wall(12, 2, VERTICAL, 9); |
trich9 | 5:2fb023cdc666 | 679 | |
trich9 | 5:2fb023cdc666 | 680 | add_wall(15, 4, VERTICAL, 9); |
trich9 | 5:2fb023cdc666 | 681 | add_wall(16, 4, VERTICAL, 9); |
trich9 | 5:2fb023cdc666 | 682 | |
trich9 | 5:2fb023cdc666 | 683 | add_sonar(14, 8); |
trich9 | 5:2fb023cdc666 | 684 | add_key(18, 8); |
trich9 | 4:2297a714936f | 685 | |
trich9 | 4:2297a714936f | 686 | print_map(); |
trich9 | 4:2297a714936f | 687 | } |
trich9 | 4:2297a714936f | 688 | |
trich9 | 5:2fb023cdc666 | 689 | //STARTSCREEN |
trich9 | 5:2fb023cdc666 | 690 | void startScreen(){ |
trich9 | 5:2fb023cdc666 | 691 | uLCD.filled_rectangle(0, 0, 128, 128, BLACK); |
trich9 | 5:2fb023cdc666 | 692 | |
trich9 | 5:2fb023cdc666 | 693 | uLCD.locate(2, 1); |
trich9 | 5:2fb023cdc666 | 694 | uLCD.color(WHITE); |
trich9 | 5:2fb023cdc666 | 695 | uLCD.text_width(1); |
trich9 | 5:2fb023cdc666 | 696 | uLCD.text_height(1); |
trich9 | 5:2fb023cdc666 | 697 | |
trich9 | 5:2fb023cdc666 | 698 | uLCD.printf(" GET THAT\n TREASURE!!\n\n Press The\n Action Button\n To START"); |
trich9 | 5:2fb023cdc666 | 699 | |
trich9 | 5:2fb023cdc666 | 700 | uLCD.filled_rectangle(0, 0, 128, 2, BLUE);//top |
trich9 | 5:2fb023cdc666 | 701 | uLCD.filled_rectangle(0, 0, 2, 128, BLUE);//bottom |
trich9 | 5:2fb023cdc666 | 702 | |
trich9 | 5:2fb023cdc666 | 703 | uLCD.filled_rectangle(0, 126, 128, 128, BLUE); |
trich9 | 5:2fb023cdc666 | 704 | uLCD.filled_rectangle(126, 0, 128, 128, BLUE); |
trich9 | 5:2fb023cdc666 | 705 | |
trich9 | 5:2fb023cdc666 | 706 | GameInputs startInputs = read_inputs(); |
trich9 | 5:2fb023cdc666 | 707 | while(startInputs.b3){//while button not pressed |
trich9 | 5:2fb023cdc666 | 708 | startInputs = read_inputs(); |
trich9 | 5:2fb023cdc666 | 709 | } |
trich9 | 5:2fb023cdc666 | 710 | |
trich9 | 5:2fb023cdc666 | 711 | uLCD.filled_rectangle(0, 0, 128, 128, BLACK); |
trich9 | 5:2fb023cdc666 | 712 | |
trich9 | 5:2fb023cdc666 | 713 | } |
trich9 | 5:2fb023cdc666 | 714 | |
trich9 | 5:2fb023cdc666 | 715 | |
trich9 | 5:2fb023cdc666 | 716 | |
trich9 | 4:2297a714936f | 717 | //once every 10 in game cycles the aniamtions and npc movements will happen |
trich9 | 4:2297a714936f | 718 | void animation_update(){ |
trich9 | 4:2297a714936f | 719 | updateCount++; |
trich9 | 4:2297a714936f | 720 | if(updateCount > 9){ |
trich9 | 4:2297a714936f | 721 | moveNPC(); |
trich9 | 4:2297a714936f | 722 | updateCount = 0; |
trich9 | 4:2297a714936f | 723 | } |
trich9 | 4:2297a714936f | 724 | } |
trich9 | 4:2297a714936f | 725 | |
trich9 | 4:2297a714936f | 726 | void moveNPC(){ |
trich9 | 4:2297a714936f | 727 | if(map_width() == 75){ |
trich9 | 4:2297a714936f | 728 | map_erase(NPCx, NPCy); |
trich9 | 5:2fb023cdc666 | 729 | |
trich9 | 5:2fb023cdc666 | 730 | |
trich9 | 5:2fb023cdc666 | 731 | map_erase(NPCx, NPCy-1); |
trich9 | 4:2297a714936f | 732 | //walkCycleNPC = 0 => go right |
trich9 | 4:2297a714936f | 733 | //wCNPC = 1 => go left |
trich9 | 4:2297a714936f | 734 | if(NPCx < 10 && !walkCycleNPC) NPCx++; |
trich9 | 4:2297a714936f | 735 | else if(NPCx > 2) NPCx--; |
trich9 | 4:2297a714936f | 736 | |
trich9 | 4:2297a714936f | 737 | if(NPCx == 10) walkCycleNPC = 1; |
trich9 | 4:2297a714936f | 738 | else if(NPCx == 2) walkCycleNPC = 0; |
trich9 | 4:2297a714936f | 739 | |
trich9 | 4:2297a714936f | 740 | add_NPC(NPCx, NPCy); |
trich9 | 5:2fb023cdc666 | 741 | if(dialogueNumNPC == 0) add_expPnt(NPCx,NPCy-1);//NPC has something important to say |
trich9 | 5:2fb023cdc666 | 742 | |
trich9 | 4:2297a714936f | 743 | } |
trich9 | 4:2297a714936f | 744 | |
trich9 | 4:2297a714936f | 745 | } |
trich9 | 5:2fb023cdc666 | 746 | |
trich9 | 5:2fb023cdc666 | 747 | void spawnTreasure(){ |
trich9 | 5:2fb023cdc666 | 748 | |
trich9 | 5:2fb023cdc666 | 749 | srand (time(NULL)); |
trich9 | 5:2fb023cdc666 | 750 | treasureX = (rand()%45) + 25; //rand x cord for treasure |
trich9 | 5:2fb023cdc666 | 751 | treasureY = (rand()%30) + 15; //rand y cord for treasure |
trich9 | 5:2fb023cdc666 | 752 | |
trich9 | 5:2fb023cdc666 | 753 | add_treasure(treasureX, treasureY); |
trich9 | 5:2fb023cdc666 | 754 | } |
trich9 | 5:2fb023cdc666 | 755 | |
trich9 | 5:2fb023cdc666 | 756 | void spawnLakeTreasure(){ |
trich9 | 5:2fb023cdc666 | 757 | |
trich9 | 5:2fb023cdc666 | 758 | srand (time(NULL)); |
trich9 | 5:2fb023cdc666 | 759 | lakeTreasureX = (rand()%5) + 4; //rand x cord for treasure |
trich9 | 5:2fb023cdc666 | 760 | lakeTreasureY = (rand()%7) + 8; //rand y cord for treasure |
trich9 | 5:2fb023cdc666 | 761 | |
trich9 | 5:2fb023cdc666 | 762 | } |
trich9 | 5:2fb023cdc666 | 763 | |
trich9 | 5:2fb023cdc666 | 764 | void treasureSparkle(){ |
trich9 | 5:2fb023cdc666 | 765 | |
trich9 | 5:2fb023cdc666 | 766 | add_waterS1(lakeTreasureX, lakeTreasureY); |
trich9 | 5:2fb023cdc666 | 767 | draw_game(FULL_DRAW); |
trich9 | 5:2fb023cdc666 | 768 | wait_ms(500); |
trich9 | 5:2fb023cdc666 | 769 | |
trich9 | 5:2fb023cdc666 | 770 | add_waterS2(lakeTreasureX, lakeTreasureY); |
trich9 | 5:2fb023cdc666 | 771 | draw_game(FULL_DRAW); |
trich9 | 5:2fb023cdc666 | 772 | wait_ms(500); |
trich9 | 5:2fb023cdc666 | 773 | add_water(lakeTreasureX, lakeTreasureY, HORIZONTAL, 1); |
trich9 | 5:2fb023cdc666 | 774 | } |
trich9 | 5:2fb023cdc666 | 775 | |
trich9 | 5:2fb023cdc666 | 776 | void checkNeedBoat(){ |
trich9 | 5:2fb023cdc666 | 777 | if(get_here(Player.x, Player.y) -> type == water){ |
trich9 | 5:2fb023cdc666 | 778 | needBoat = 1; |
trich9 | 5:2fb023cdc666 | 779 | } |
trich9 | 5:2fb023cdc666 | 780 | else{ |
trich9 | 5:2fb023cdc666 | 781 | needBoat = 0; |
trich9 | 5:2fb023cdc666 | 782 | } |
trich9 | 5:2fb023cdc666 | 783 | } |
trich9 | 5:2fb023cdc666 | 784 | |
trich9 | 5:2fb023cdc666 | 785 | |
trich9 | 5:2fb023cdc666 | 786 | void pickUpSound(){ |
trich9 | 5:2fb023cdc666 | 787 | speaker.period(1.0/98); |
trich9 | 5:2fb023cdc666 | 788 | speaker = 0.01; |
trich9 | 5:2fb023cdc666 | 789 | wait_ms(100); |
trich9 | 5:2fb023cdc666 | 790 | speaker = 0; |
trich9 | 5:2fb023cdc666 | 791 | wait_ms(50); |
trich9 | 5:2fb023cdc666 | 792 | |
trich9 | 5:2fb023cdc666 | 793 | speaker.period(1.0/110); |
trich9 | 5:2fb023cdc666 | 794 | speaker = 0.01; |
trich9 | 5:2fb023cdc666 | 795 | wait_ms(100); |
trich9 | 5:2fb023cdc666 | 796 | speaker = 0; |
trich9 | 5:2fb023cdc666 | 797 | wait_ms(50); |
trich9 | 5:2fb023cdc666 | 798 | |
trich9 | 5:2fb023cdc666 | 799 | speaker.period(1.0/123); |
trich9 | 5:2fb023cdc666 | 800 | speaker = 0.01; |
trich9 | 5:2fb023cdc666 | 801 | wait_ms(100); |
trich9 | 5:2fb023cdc666 | 802 | speaker = 0; |
trich9 | 5:2fb023cdc666 | 803 | wait_ms(50); |
trich9 | 5:2fb023cdc666 | 804 | |
trich9 | 5:2fb023cdc666 | 805 | speaker.period(1.0/130); |
trich9 | 5:2fb023cdc666 | 806 | speaker = 0.01; |
trich9 | 5:2fb023cdc666 | 807 | wait_ms(100); |
trich9 | 5:2fb023cdc666 | 808 | speaker = 0; |
trich9 | 5:2fb023cdc666 | 809 | } |
trich9 | 5:2fb023cdc666 | 810 | |
trich9 | 5:2fb023cdc666 | 811 | void ladderSound(){ |
trich9 | 5:2fb023cdc666 | 812 | speaker.period(1.0/130); |
trich9 | 5:2fb023cdc666 | 813 | speaker = 0.01; |
trich9 | 5:2fb023cdc666 | 814 | wait_ms(100); |
trich9 | 5:2fb023cdc666 | 815 | speaker = 0; |
trich9 | 5:2fb023cdc666 | 816 | wait_ms(50); |
trich9 | 5:2fb023cdc666 | 817 | |
trich9 | 5:2fb023cdc666 | 818 | speaker.period(1.0/123); |
trich9 | 5:2fb023cdc666 | 819 | speaker = 0.01; |
trich9 | 5:2fb023cdc666 | 820 | wait_ms(100); |
trich9 | 5:2fb023cdc666 | 821 | speaker = 0; |
trich9 | 5:2fb023cdc666 | 822 | wait_ms(50); |
trich9 | 5:2fb023cdc666 | 823 | |
trich9 | 5:2fb023cdc666 | 824 | speaker.period(1.0/110); |
trich9 | 5:2fb023cdc666 | 825 | speaker = 0.01; |
trich9 | 5:2fb023cdc666 | 826 | wait_ms(100); |
trich9 | 5:2fb023cdc666 | 827 | speaker = 0; |
trich9 | 5:2fb023cdc666 | 828 | wait_ms(50); |
trich9 | 5:2fb023cdc666 | 829 | |
trich9 | 5:2fb023cdc666 | 830 | speaker.period(1.0/98); |
trich9 | 5:2fb023cdc666 | 831 | speaker = 0.01; |
trich9 | 5:2fb023cdc666 | 832 | wait_ms(100); |
trich9 | 5:2fb023cdc666 | 833 | speaker = 0; |
trich9 | 5:2fb023cdc666 | 834 | } |
trich9 | 5:2fb023cdc666 | 835 | |
trich9 | 5:2fb023cdc666 | 836 | void endScreen(){ |
trich9 | 5:2fb023cdc666 | 837 | uLCD.filled_rectangle(0, 0, 128, 128, BLACK); |
trich9 | 5:2fb023cdc666 | 838 | |
trich9 | 5:2fb023cdc666 | 839 | |
trich9 | 5:2fb023cdc666 | 840 | |
trich9 | 5:2fb023cdc666 | 841 | uLCD.locate(2, 1); |
trich9 | 5:2fb023cdc666 | 842 | uLCD.color(WHITE); |
trich9 | 5:2fb023cdc666 | 843 | uLCD.text_width(1); |
trich9 | 5:2fb023cdc666 | 844 | uLCD.text_height(1); |
trich9 | 5:2fb023cdc666 | 845 | |
trich9 | 5:2fb023cdc666 | 846 | uLCD.printf(" YOU WON!\n\n Thanks\n For\n Playing!!"); |
trich9 | 5:2fb023cdc666 | 847 | |
trich9 | 5:2fb023cdc666 | 848 | uLCD.filled_rectangle(0, 0, 128, 2, BLUE);//top |
trich9 | 5:2fb023cdc666 | 849 | uLCD.filled_rectangle(0, 0, 2, 128, BLUE);//bottom |
trich9 | 5:2fb023cdc666 | 850 | |
trich9 | 5:2fb023cdc666 | 851 | uLCD.filled_rectangle(0, 126, 128, 128, BLUE); |
trich9 | 5:2fb023cdc666 | 852 | uLCD.filled_rectangle(126, 0, 128, 128, BLUE); |
trich9 | 5:2fb023cdc666 | 853 | |
trich9 | 5:2fb023cdc666 | 854 | |
trich9 | 5:2fb023cdc666 | 855 | |
trich9 | 5:2fb023cdc666 | 856 | |
trich9 | 5:2fb023cdc666 | 857 | int nWait = 100; |
trich9 | 5:2fb023cdc666 | 858 | //int speakerVolume = 0.1; |
trich9 | 5:2fb023cdc666 | 859 | while(true){ |
trich9 | 5:2fb023cdc666 | 860 | //MEME |
trich9 | 5:2fb023cdc666 | 861 | |
trich9 | 5:2fb023cdc666 | 862 | //intro1 |
trich9 | 5:2fb023cdc666 | 863 | |
trich9 | 5:2fb023cdc666 | 864 | speaker.period(1.0/369); |
trich9 | 5:2fb023cdc666 | 865 | speaker = 0.01; |
trich9 | 5:2fb023cdc666 | 866 | wait_ms(350); |
trich9 | 5:2fb023cdc666 | 867 | speaker = 0; |
trich9 | 5:2fb023cdc666 | 868 | wait_ms(nWait); |
trich9 | 5:2fb023cdc666 | 869 | |
trich9 | 5:2fb023cdc666 | 870 | speaker = 0.01; |
trich9 | 5:2fb023cdc666 | 871 | speaker.period(1.0/293); |
trich9 | 5:2fb023cdc666 | 872 | wait_ms(350); |
trich9 | 5:2fb023cdc666 | 873 | speaker = 0; |
trich9 | 5:2fb023cdc666 | 874 | wait_ms(nWait); |
trich9 | 5:2fb023cdc666 | 875 | |
trich9 | 5:2fb023cdc666 | 876 | speaker = 0.01; |
trich9 | 5:2fb023cdc666 | 877 | speaker.period(1.0/293); |
trich9 | 5:2fb023cdc666 | 878 | wait_ms(100); |
trich9 | 5:2fb023cdc666 | 879 | speaker = 0; |
trich9 | 5:2fb023cdc666 | 880 | wait_ms(nWait); |
trich9 | 5:2fb023cdc666 | 881 | |
trich9 | 5:2fb023cdc666 | 882 | speaker = 0.01; |
trich9 | 5:2fb023cdc666 | 883 | speaker.period(1.0/329); |
trich9 | 5:2fb023cdc666 | 884 | wait_ms(100); |
trich9 | 5:2fb023cdc666 | 885 | speaker = 0; |
trich9 | 5:2fb023cdc666 | 886 | wait_ms(nWait); |
trich9 | 5:2fb023cdc666 | 887 | |
trich9 | 5:2fb023cdc666 | 888 | speaker = 0.01; |
trich9 | 5:2fb023cdc666 | 889 | speaker.period(1.0/349); |
trich9 | 5:2fb023cdc666 | 890 | wait_ms(200); |
trich9 | 5:2fb023cdc666 | 891 | speaker = 0; |
trich9 | 5:2fb023cdc666 | 892 | wait_ms(nWait); |
trich9 | 5:2fb023cdc666 | 893 | |
trich9 | 5:2fb023cdc666 | 894 | speaker = 0.01; |
trich9 | 5:2fb023cdc666 | 895 | speaker.period(1.0/329); |
trich9 | 5:2fb023cdc666 | 896 | wait_ms(250); |
trich9 | 5:2fb023cdc666 | 897 | speaker = 0; |
trich9 | 5:2fb023cdc666 | 898 | wait_ms(nWait); |
trich9 | 5:2fb023cdc666 | 899 | |
trich9 | 5:2fb023cdc666 | 900 | speaker = 0.01; |
trich9 | 5:2fb023cdc666 | 901 | speaker.period(1.0/293); |
trich9 | 5:2fb023cdc666 | 902 | wait_ms(200); |
trich9 | 5:2fb023cdc666 | 903 | speaker = 0; |
trich9 | 5:2fb023cdc666 | 904 | wait_ms(nWait); |
trich9 | 5:2fb023cdc666 | 905 | |
trich9 | 5:2fb023cdc666 | 906 | speaker = 0.01; |
trich9 | 5:2fb023cdc666 | 907 | speaker.period(1.0/277); |
trich9 | 5:2fb023cdc666 | 908 | wait_ms(250); |
trich9 | 5:2fb023cdc666 | 909 | speaker = 0; |
trich9 | 5:2fb023cdc666 | 910 | wait_ms(nWait); |
trich9 | 5:2fb023cdc666 | 911 | |
trich9 | 5:2fb023cdc666 | 912 | speaker = 0.01; |
trich9 | 5:2fb023cdc666 | 913 | speaker.period(1.0/293); |
trich9 | 5:2fb023cdc666 | 914 | wait_ms(250); |
trich9 | 5:2fb023cdc666 | 915 | speaker = 0; |
trich9 | 5:2fb023cdc666 | 916 | wait_ms(nWait); |
trich9 | 5:2fb023cdc666 | 917 | |
trich9 | 5:2fb023cdc666 | 918 | speaker = 0.01; |
trich9 | 5:2fb023cdc666 | 919 | speaker.period(1.0/329); |
trich9 | 5:2fb023cdc666 | 920 | wait_ms(150); |
trich9 | 5:2fb023cdc666 | 921 | speaker = 0; |
trich9 | 5:2fb023cdc666 | 922 | wait_ms(nWait); |
trich9 | 5:2fb023cdc666 | 923 | |
trich9 | 5:2fb023cdc666 | 924 | speaker = 0.01; |
trich9 | 5:2fb023cdc666 | 925 | speaker.period(1.0/369); |
trich9 | 5:2fb023cdc666 | 926 | wait_ms(250); |
trich9 | 5:2fb023cdc666 | 927 | speaker = 0; |
trich9 | 5:2fb023cdc666 | 928 | wait_ms(nWait); |
trich9 | 5:2fb023cdc666 | 929 | |
trich9 | 5:2fb023cdc666 | 930 | speaker = 0.01; |
trich9 | 5:2fb023cdc666 | 931 | speaker.period(1.0/369); |
trich9 | 5:2fb023cdc666 | 932 | wait_ms(100); |
trich9 | 5:2fb023cdc666 | 933 | speaker = 0; |
trich9 | 5:2fb023cdc666 | 934 | wait_ms(nWait); |
trich9 | 5:2fb023cdc666 | 935 | |
trich9 | 5:2fb023cdc666 | 936 | speaker = 0.01; |
trich9 | 5:2fb023cdc666 | 937 | speaker.period(1.0/493); |
trich9 | 5:2fb023cdc666 | 938 | wait_ms(350); |
trich9 | 5:2fb023cdc666 | 939 | speaker = 0; |
trich9 | 5:2fb023cdc666 | 940 | wait_ms(nWait); |
trich9 | 5:2fb023cdc666 | 941 | |
trich9 | 5:2fb023cdc666 | 942 | //endintro1 |
trich9 | 5:2fb023cdc666 | 943 | //intro1-2 |
trich9 | 5:2fb023cdc666 | 944 | speaker = 0.01; |
trich9 | 5:2fb023cdc666 | 945 | speaker.period(1.0/246); |
trich9 | 5:2fb023cdc666 | 946 | wait_ms(150); |
trich9 | 5:2fb023cdc666 | 947 | speaker = 0; |
trich9 | 5:2fb023cdc666 | 948 | wait_ms(nWait); |
trich9 | 5:2fb023cdc666 | 949 | |
trich9 | 5:2fb023cdc666 | 950 | speaker = 0.01; |
trich9 | 5:2fb023cdc666 | 951 | speaker.period(1.0/277); |
trich9 | 5:2fb023cdc666 | 952 | wait_ms(150); |
trich9 | 5:2fb023cdc666 | 953 | speaker = 0; |
trich9 | 5:2fb023cdc666 | 954 | wait_ms(nWait); |
trich9 | 5:2fb023cdc666 | 955 | |
trich9 | 5:2fb023cdc666 | 956 | speaker = 0.01; |
trich9 | 5:2fb023cdc666 | 957 | speaker.period(1.0/293); |
trich9 | 5:2fb023cdc666 | 958 | wait_ms(250); |
trich9 | 5:2fb023cdc666 | 959 | speaker = 0; |
trich9 | 5:2fb023cdc666 | 960 | wait_ms(nWait); |
trich9 | 5:2fb023cdc666 | 961 | |
trich9 | 5:2fb023cdc666 | 962 | speaker = 0.01; |
trich9 | 5:2fb023cdc666 | 963 | speaker.period(1.0/329); |
trich9 | 5:2fb023cdc666 | 964 | wait_ms(250); |
trich9 | 5:2fb023cdc666 | 965 | speaker = 0; |
trich9 | 5:2fb023cdc666 | 966 | wait_ms(nWait); |
trich9 | 5:2fb023cdc666 | 967 | |
trich9 | 5:2fb023cdc666 | 968 | speaker = 0.01; |
trich9 | 5:2fb023cdc666 | 969 | speaker.period(1.0/293); |
trich9 | 5:2fb023cdc666 | 970 | wait_ms(150); |
trich9 | 5:2fb023cdc666 | 971 | speaker = 0; |
trich9 | 5:2fb023cdc666 | 972 | wait_ms(nWait); |
trich9 | 5:2fb023cdc666 | 973 | |
trich9 | 5:2fb023cdc666 | 974 | speaker = 0.01; |
trich9 | 5:2fb023cdc666 | 975 | speaker.period(1.0/277); |
trich9 | 5:2fb023cdc666 | 976 | wait_ms(200); |
trich9 | 5:2fb023cdc666 | 977 | speaker = 0; |
trich9 | 5:2fb023cdc666 | 978 | wait_ms(nWait); |
trich9 | 5:2fb023cdc666 | 979 | |
trich9 | 5:2fb023cdc666 | 980 | speaker = 0.01; |
trich9 | 5:2fb023cdc666 | 981 | speaker.period(1.0/440); |
trich9 | 5:2fb023cdc666 | 982 | wait_ms(200); |
trich9 | 5:2fb023cdc666 | 983 | speaker = 0; |
trich9 | 5:2fb023cdc666 | 984 | wait_ms(nWait); |
trich9 | 5:2fb023cdc666 | 985 | |
trich9 | 5:2fb023cdc666 | 986 | speaker = 0.01; |
trich9 | 5:2fb023cdc666 | 987 | speaker.period(1.0/391); |
trich9 | 5:2fb023cdc666 | 988 | wait_ms(150); |
trich9 | 5:2fb023cdc666 | 989 | speaker = 0; |
trich9 | 5:2fb023cdc666 | 990 | wait_ms(nWait); |
trich9 | 5:2fb023cdc666 | 991 | //endintro1-2 |
trich9 | 5:2fb023cdc666 | 992 | //END MEME |
trich9 | 5:2fb023cdc666 | 993 | } |
trich9 | 5:2fb023cdc666 | 994 | } |