/**********************************************************************************************
							 | 
						|
								*
							 | 
						|
								*   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 Font 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 = LoadFontEx("resources/fonts/mom_typewritter.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);
							 | 
						|
								    UnloadFont(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);
							 | 
						|
								}
							 |