summaryrefslogtreecommitdiffhomepage
path: root/games/transmission/screens/screen_title.c
diff options
context:
space:
mode:
Diffstat (limited to 'games/transmission/screens/screen_title.c')
-rw-r--r--games/transmission/screens/screen_title.c168
1 files changed, 168 insertions, 0 deletions
diff --git a/games/transmission/screens/screen_title.c b/games/transmission/screens/screen_title.c
new file mode 100644
index 00000000..dc062069
--- /dev/null
+++ b/games/transmission/screens/screen_title.c
@@ -0,0 +1,168 @@
+/**********************************************************************************************
+*
+* raylib - transmission mission
+*
+*
+* 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.
+*
+**********************************************************************************************/
+
+#include "raylib.h"
+#include "screens.h"
+
+#include <string.h>
+
+//----------------------------------------------------------------------------------
+// Global Variables Definition (local to this module)
+//----------------------------------------------------------------------------------
+
+// Title screen global variables
+static int framesCounter;
+static int finishScreen;
+
+static Texture2D texBackground;
+static SpriteFont fontTitle;
+static Sound fxTyping;
+
+static float titleSize;
+static Vector2 transmissionPosition;
+static Vector2 missionPositon;
+
+static const char textTitle[20] = "transmissionmission";
+
+static Color titleColor;
+static int speedText;
+
+static int transmissionLenght;
+static int missionLenght;
+static int transmissionMaxLenght;
+static int missionMaxLenght;
+
+static bool writeTransmission;
+static bool writeMission;
+static bool writeEnd;
+
+//----------------------------------------------------------------------------------
+// Title Screen Functions Definition
+//----------------------------------------------------------------------------------
+static void MissionScreen();
+
+// Title Screen Initialization logic
+void InitTitleScreen(void)
+{
+ // TODO: Initialize TITLE screen variables here!
+ framesCounter = 0;
+ finishScreen = 0;
+
+ texBackground = LoadTexture("resources/textures/title_background.png");
+ fxTyping = LoadSound("resources/audio/fx_typing.ogg");
+ fontTitle = LoadSpriteFontEx("resources/fonts/fontTitle.ttf", 96, 0, 0);
+
+ titleSize = 44;
+ transmissionPosition = (Vector2){519, 221};
+ missionPositon = (Vector2){580, 261};
+
+ titleColor = BLACK;
+ speedText = 15;
+
+ missionLenght = 0;
+ transmissionLenght = 0;
+
+ missionMaxLenght = 7;
+ transmissionMaxLenght = 12;
+
+ writeTransmission = true;
+ writeMission = false;
+ writeEnd = false;
+
+ currentMission = 0;
+}
+
+// Title Screen Update logic
+void UpdateTitleScreen(void)
+{
+ if (!writeEnd)
+ {
+ framesCounter ++;
+
+ if (framesCounter%speedText == 0)
+ {
+ framesCounter = 0;
+ if (writeTransmission)
+ {
+ transmissionLenght++;
+ if (transmissionLenght == transmissionMaxLenght)
+ {
+ writeTransmission = false;
+ writeMission = true;
+ }
+ }
+ else if (writeMission)
+ {
+ missionLenght++;
+ if (missionLenght == missionMaxLenght)
+ {
+ writeMission = false;
+ writeEnd = true;
+ }
+ }
+
+ PlaySound(fxTyping);
+ }
+ }
+
+ if(IsButtonPressed())
+ {
+ MissionScreen();
+ }
+ else if (IsKeyPressed(KEY_ENTER)) MissionScreen();
+}
+
+// Title Screen Draw logic
+void DrawTitleScreen(void)
+{
+ DrawTexture(texBackground, 0,0, WHITE);
+ DrawTextEx(fontTitle, SubText(textTitle, 0, transmissionLenght), transmissionPosition, titleSize, 0, titleColor);
+ DrawTextEx(fontTitle, SubText(textTitle, 12, missionLenght), missionPositon, titleSize, 0, titleColor);
+
+ DrawButton("start");
+}
+
+// Title Screen Unload logic
+void UnloadTitleScreen(void)
+{
+ UnloadTexture(texBackground);
+ UnloadSound(fxTyping);
+ UnloadSpriteFont(fontTitle);
+}
+
+// Title Screen should finish?
+int FinishTitleScreen(void)
+{
+ return finishScreen;
+}
+
+static void MissionScreen()
+{
+ transmissionLenght = transmissionMaxLenght;
+ missionLenght = missionMaxLenght;
+ writeEnd = true;
+ //finishScreen = 1; // OPTIONS
+ finishScreen = true; // GAMEPLAY
+ //PlaySound(fxCoin);
+} \ No newline at end of file