|  | /********************************************************************************************** | 
						
						
							|  | * | 
						
						
							|  | *   raylib - transmission mission | 
						
						
							|  | * | 
						
						
							|  | *   Screens Functions Declarations (Init, Update, Draw, Unload) | 
						
						
							|  | * | 
						
						
							|  | *   Copyright (c) 2014-2019 Ramon Santamaria (@raysan5) | 
						
						
							|  | * | 
						
						
							|  | *   This software is provided "as-is", without any express or implied warranty. In no event | 
						
						
							|  | *   will the authors be held liable for any damages arising from the use of this software. | 
						
						
							|  | * | 
						
						
							|  | *   Permission is granted to anyone to use this software for any purpose, including commercial | 
						
						
							|  | *   applications, and to alter it and redistribute it freely, subject to the following restrictions: | 
						
						
							|  | * | 
						
						
							|  | *     1. The origin of this software must not be misrepresented; you must not claim that you | 
						
						
							|  | *     wrote the original software. If you use this software in a product, an acknowledgment | 
						
						
							|  | *     in the product documentation would be appreciated but is not required. | 
						
						
							|  | * | 
						
						
							|  | *     2. Altered source versions must be plainly marked as such, and must not be misrepresented | 
						
						
							|  | *     as being the original software. | 
						
						
							|  | * | 
						
						
							|  | *     3. This notice may not be removed or altered from any source distribution. | 
						
						
							|  | * | 
						
						
							|  | **********************************************************************************************/ | 
						
						
							|  | 
 | 
						
						
							|  | #ifndef SCREENS_H | 
						
						
							|  | #define SCREENS_H | 
						
						
							|  |  | 
						
						
							|  | #define MAX_CODING_WORDS    12 | 
						
						
							|  | #define MAX_MISSION_WORDS    8 | 
						
						
							|  |  | 
						
						
							|  | //---------------------------------------------------------------------------------- | 
						
						
							|  | // Types and Structures Definition | 
						
						
							|  | //---------------------------------------------------------------------------------- | 
						
						
							|  | typedef enum GameScreen { LOGO = 0, TITLE, MISSION, GAMEPLAY, ENDING } GameScreen; | 
						
						
							|  | 
 | 
						
						
							|  | // Words to be coded or coding words | 
						
						
							|  | typedef struct Word { | 
						
						
							|  |     int id; | 
						
						
							|  |     Rectangle rec; | 
						
						
							|  |     Rectangle iniRec; | 
						
						
							|  |     bool hover; | 
						
						
							|  |     bool picked; | 
						
						
							|  |     char text[32];          // text | 
						
						
							|  | } Word; | 
						
						
							|  | 
 | 
						
						
							|  | // Mission information | 
						
						
							|  | typedef struct Mission { | 
						
						
							|  |     int id; | 
						
						
							|  |     char brief[512];        // Mission briefing | 
						
						
							|  |     char key[32];           // Mission keyword | 
						
						
							|  |     char msg[256];          // Message to be coded | 
						
						
							|  |     int wordsCount;         // Number of words to coded | 
						
						
							|  |     int sols[10];            // Solution code, depends on wordsCount | 
						
						
							|  | } Mission; | 
						
						
							|  | 
 | 
						
						
							|  | //---------------------------------------------------------------------------------- | 
						
						
							|  | // Global Variables Definition | 
						
						
							|  | //---------------------------------------------------------------------------------- | 
						
						
							|  | GameScreen currentScreen; | 
						
						
							|  | 
 | 
						
						
							|  | Music music; | 
						
						
							|  | Sound fxButton; | 
						
						
							|  | 
 | 
						
						
							|  | //Mission *missions; | 
						
						
							|  |  | 
						
						
							|  | // UI BUTTON | 
						
						
							|  | Rectangle recButton; | 
						
						
							|  | float fadeButton; | 
						
						
							|  | Color colorButton; | 
						
						
							|  | Texture2D texButton; | 
						
						
							|  | Vector2 textPositionButton; | 
						
						
							|  | int fontSizeButton; | 
						
						
							|  | Color textColorButton; | 
						
						
							|  | 
 | 
						
						
							|  | int currentMission; | 
						
						
							|  | int totalMissions; | 
						
						
							|  | 
 | 
						
						
							|  | Font fontMission; | 
						
						
							|  | 
 | 
						
						
							|  | Word messageWords[MAX_MISSION_WORDS]; | 
						
						
							|  | 
 | 
						
						
							|  | #ifdef __cplusplus | 
						
						
							|  | extern "C" {            // Prevents name mangling of functions | 
						
						
							|  | #endif | 
						
						
							|  |  | 
						
						
							|  | //---------------------------------------------------------------------------------- | 
						
						
							|  | // Transmission Functions Declaration | 
						
						
							|  | //---------------------------------------------------------------------------------- | 
						
						
							|  | bool IsButtonPressed(); | 
						
						
							|  | void DrawButton(const char *text); | 
						
						
							|  | Mission *LoadMissions(const char *fileName); | 
						
						
							|  | 
 | 
						
						
							|  | //---------------------------------------------------------------------------------- | 
						
						
							|  | // Logo Screen Functions Declaration | 
						
						
							|  | //---------------------------------------------------------------------------------- | 
						
						
							|  | void InitLogoScreen(void); | 
						
						
							|  | void UpdateLogoScreen(void); | 
						
						
							|  | void DrawLogoScreen(void); | 
						
						
							|  | void UnloadLogoScreen(void); | 
						
						
							|  | int FinishLogoScreen(void); | 
						
						
							|  | 
 | 
						
						
							|  | //---------------------------------------------------------------------------------- | 
						
						
							|  | // Title Screen Functions Declaration | 
						
						
							|  | //---------------------------------------------------------------------------------- | 
						
						
							|  | void InitTitleScreen(void); | 
						
						
							|  | void UpdateTitleScreen(void); | 
						
						
							|  | void DrawTitleScreen(void); | 
						
						
							|  | void UnloadTitleScreen(void); | 
						
						
							|  | int FinishTitleScreen(void); | 
						
						
							|  | 
 | 
						
						
							|  | //---------------------------------------------------------------------------------- | 
						
						
							|  | // Mission Screen Functions Declaration | 
						
						
							|  | //---------------------------------------------------------------------------------- | 
						
						
							|  | void InitMissionScreen(void); | 
						
						
							|  | void UpdateMissionScreen(void); | 
						
						
							|  | void DrawMissionScreen(void); | 
						
						
							|  | void UnloadMissionScreen(void); | 
						
						
							|  | int FinishMissionScreen(void); | 
						
						
							|  | 
 | 
						
						
							|  | //---------------------------------------------------------------------------------- | 
						
						
							|  | // Gameplay Screen Functions Declaration | 
						
						
							|  | //---------------------------------------------------------------------------------- | 
						
						
							|  | void InitGameplayScreen(void); | 
						
						
							|  | void UpdateGameplayScreen(void); | 
						
						
							|  | void DrawGameplayScreen(void); | 
						
						
							|  | void UnloadGameplayScreen(void); | 
						
						
							|  | int FinishGameplayScreen(void); | 
						
						
							|  | 
 | 
						
						
							|  | //---------------------------------------------------------------------------------- | 
						
						
							|  | // Ending Screen Functions Declaration | 
						
						
							|  | //---------------------------------------------------------------------------------- | 
						
						
							|  | void InitEndingScreen(void); | 
						
						
							|  | void UpdateEndingScreen(void); | 
						
						
							|  | void DrawEndingScreen(void); | 
						
						
							|  | void UnloadEndingScreen(void); | 
						
						
							|  | int FinishEndingScreen(void); | 
						
						
							|  | 
 | 
						
						
							|  | #ifdef __cplusplus | 
						
						
							|  | } | 
						
						
							|  | #endif | 
						
						
							|  |  | 
						
						
							|  | #endif // SCREENS_H |