raylib/games/transmission/screens/screen_title.c
raysan5 50fc4f7164 Reviewed transmission mission game
Support string replacing to generate newspaper headline
ISSUE: UTF8 characters not supported when drawing to Image
2018-02-17 21:23:45 +01:00

168 lines
4.7 KiB
C

/**********************************************************************************************
*
* 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/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);
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);
}