summaryrefslogtreecommitdiffhomepage
path: root/games/transmission/screens/screens.h
diff options
context:
space:
mode:
Diffstat (limited to 'games/transmission/screens/screens.h')
-rw-r--r--games/transmission/screens/screens.h143
1 files changed, 143 insertions, 0 deletions
diff --git a/games/transmission/screens/screens.h b/games/transmission/screens/screens.h
new file mode 100644
index 00000000..27560d8b
--- /dev/null
+++ b/games/transmission/screens/screens.h
@@ -0,0 +1,143 @@
+/**********************************************************************************************
+*
+* raylib - transmission mission
+*
+* Screens Functions Declarations (Init, Update, Draw, Unload)
+*
+* Copyright (c) 2014-2018 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;
+
+SpriteFont 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 \ No newline at end of file