Script Organization
This commit is contained in:
		
							
								
								
									
										123
									
								
								SynGame.c
									
									
									
									
									
								
							
							
						
						
									
										123
									
								
								SynGame.c
									
									
									
									
									
								
							@@ -23,6 +23,7 @@
 | 
			
		||||
#include "allegro\include\allegro5\allegro_acodec.h"
 | 
			
		||||
#include "allegro\include\allegro5\allegro_image.h"
 | 
			
		||||
#include "allegro\include\allegro5\allegro_primitives.h"
 | 
			
		||||
 | 
			
		||||
#define playerSpeed 0.75
 | 
			
		||||
#define enemySpeed 0.1
 | 
			
		||||
#define initialPlayerHealth 4
 | 
			
		||||
@@ -91,6 +92,12 @@ struct
 | 
			
		||||
    Image image;
 | 
			
		||||
} player;
 | 
			
		||||
 | 
			
		||||
char InitializeGameWindow();
 | 
			
		||||
char InitializeGame();
 | 
			
		||||
char InitializeEnemies();
 | 
			
		||||
char DealDamage(char *health);
 | 
			
		||||
 | 
			
		||||
void Update();
 | 
			
		||||
void SpawnEnemies();
 | 
			
		||||
void CheckBullets();
 | 
			
		||||
void RemoveBulletAtIndex(int index);
 | 
			
		||||
@@ -98,8 +105,8 @@ void RemoveEnemyAtIndex(int index);
 | 
			
		||||
void CheckEnemies();
 | 
			
		||||
void MoveEnemies();
 | 
			
		||||
void LimitEnemies();
 | 
			
		||||
void DestroyGame();
 | 
			
		||||
void DrawObject(Vector2D position, Image *image, int flag);
 | 
			
		||||
void DrawNumber(Vector2D position, int number);
 | 
			
		||||
void DrawSizedObject(Vector2D position, Image *image, int flag, float objectscreenSizeMultiplier);
 | 
			
		||||
void DrawScreen();
 | 
			
		||||
void DrawScore();
 | 
			
		||||
@@ -109,38 +116,33 @@ void CheckHighScore();
 | 
			
		||||
void GetHighScore();
 | 
			
		||||
void GetSettings();
 | 
			
		||||
void CalculateScore();
 | 
			
		||||
void DrawNumber(Vector2D position, int number);
 | 
			
		||||
void Inputs();
 | 
			
		||||
void PlayerMovement();
 | 
			
		||||
void ClampPlayerPositionToScreenDimensions();
 | 
			
		||||
void BulletMovement();
 | 
			
		||||
void ShootSoundEffect();
 | 
			
		||||
void DieSoundEffect();
 | 
			
		||||
void PlayerShootCheck();
 | 
			
		||||
void PlayerShoot();
 | 
			
		||||
void EnemyShoot();
 | 
			
		||||
void BulletMovement();
 | 
			
		||||
void BulletCollisions();
 | 
			
		||||
void PlayerShootCheck();
 | 
			
		||||
void Update();
 | 
			
		||||
void DestroyGame();
 | 
			
		||||
void DestroyGameWindow();
 | 
			
		||||
 | 
			
		||||
float VectorMagnitude(Vector2D vector);
 | 
			
		||||
float VectorDistanceBetween(Vector2D vectorFirst, Vector2D vectorSecond);
 | 
			
		||||
 | 
			
		||||
byte isVectorExceedingLimits(Vector2D vector, Vector2D limits);
 | 
			
		||||
byte CheckCollision(Vector2D *firstPos, Vector2D *secondPos, Image *firstMap, Image *secondMap);
 | 
			
		||||
 | 
			
		||||
char InitializeEnemies();
 | 
			
		||||
char InitializeGameWindow();
 | 
			
		||||
char InitializeGame();
 | 
			
		||||
char DealDamage(char *health);
 | 
			
		||||
 | 
			
		||||
Image InitImage(const char *path);
 | 
			
		||||
float VectorMagnitude(Vector2D vector);
 | 
			
		||||
float VectorDistanceBetween(Vector2D vectorFirst, Vector2D vectorSecond);
 | 
			
		||||
 | 
			
		||||
Vector2D NormalizeVector(Vector2D vector);
 | 
			
		||||
 | 
			
		||||
Image InitImage(const char *path);
 | 
			
		||||
 | 
			
		||||
ALLEGRO_KEYBOARD_STATE keyboardState;
 | 
			
		||||
ALLEGRO_DISPLAY_MODE disp_data;
 | 
			
		||||
ALLEGRO_COLOR backgroundColor;
 | 
			
		||||
 | 
			
		||||
ALLEGRO_DISPLAY *display            = NULL;
 | 
			
		||||
ALLEGRO_EVENT_QUEUE *event_queue    = NULL;
 | 
			
		||||
ALLEGRO_TIMER *timer                = NULL;
 | 
			
		||||
@@ -316,7 +318,9 @@ Image InitImage(const char *path)
 | 
			
		||||
Vector2D NormalizeVector(Vector2D vector)
 | 
			
		||||
{
 | 
			
		||||
    Vector2D normalizedVector;
 | 
			
		||||
    float magnitude = sqrt(vector.x * vector.x + vector.y * vector.y);
 | 
			
		||||
    float magnitude;
 | 
			
		||||
 | 
			
		||||
    magnitude = sqrt(vector.x * vector.x + vector.y * vector.y);
 | 
			
		||||
        
 | 
			
		||||
    if(vector.x == 0.0 && vector.y == 0.0)
 | 
			
		||||
        return vector;
 | 
			
		||||
@@ -375,8 +379,10 @@ byte CheckCollision(Vector2D *firstPos, Vector2D *secondPos, Image *firstMap, Im
 | 
			
		||||
 | 
			
		||||
char InitializeGameWindow()
 | 
			
		||||
{
 | 
			
		||||
    float x = 0.0f;
 | 
			
		||||
    float y = 0.0f;
 | 
			
		||||
    float x;
 | 
			
		||||
    float y;
 | 
			
		||||
    x = 0.0f;
 | 
			
		||||
    y = 0.0f;
 | 
			
		||||
 | 
			
		||||
    if(!al_init() || 
 | 
			
		||||
        !al_init_primitives_addon() || 
 | 
			
		||||
@@ -510,6 +516,11 @@ char InitializeEnemies()
 | 
			
		||||
    return 1;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
char DealDamage(char *health)
 | 
			
		||||
{
 | 
			
		||||
    return --*health <= 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void SpawnEnemies()
 | 
			
		||||
{
 | 
			
		||||
    Vector2D enemySpawnVector;
 | 
			
		||||
@@ -629,6 +640,7 @@ void DrawObject(Vector2D position, Image *image, int flag)
 | 
			
		||||
{
 | 
			
		||||
    Vector2D InstantiateSize;
 | 
			
		||||
    Vector2D originalSize;
 | 
			
		||||
 | 
			
		||||
    InstantiateSize = image -> size;
 | 
			
		||||
    originalSize = image -> originalSize;
 | 
			
		||||
 | 
			
		||||
@@ -647,6 +659,7 @@ void DrawNumber(Vector2D position, int number)
 | 
			
		||||
{
 | 
			
		||||
    Vector2D InstantiateSize;
 | 
			
		||||
    Vector2D originalSize;
 | 
			
		||||
 | 
			
		||||
    InstantiateSize = numberTable.size; 
 | 
			
		||||
    originalSize = numberTable.originalSize;
 | 
			
		||||
 | 
			
		||||
@@ -659,7 +672,9 @@ void DrawNumber(Vector2D position, int number)
 | 
			
		||||
void DrawSizedObject(Vector2D position, Image *image, int flag, float objectscreenSizeMultiplier)
 | 
			
		||||
{
 | 
			
		||||
    Vector2D InstantiateSize;
 | 
			
		||||
    float sizeFactor = screenSizeMultiplier * objectscreenSizeMultiplier;
 | 
			
		||||
    float sizeFactor;
 | 
			
		||||
 | 
			
		||||
    sizeFactor = screenSizeMultiplier * objectscreenSizeMultiplier;
 | 
			
		||||
    InstantiateSize = image -> size;
 | 
			
		||||
        
 | 
			
		||||
    al_draw_scaled_bitmap(image -> bitmap,
 | 
			
		||||
@@ -670,8 +685,9 @@ void DrawSizedObject(Vector2D position, Image *image, int flag, float objectscre
 | 
			
		||||
 | 
			
		||||
void DrawScreen()
 | 
			
		||||
{
 | 
			
		||||
    int i = 0;
 | 
			
		||||
    Vector2D halfScreen = {screenDimensions.x / 2, screenDimensions.y / 2};
 | 
			
		||||
    int i;
 | 
			
		||||
    Vector2D halfScreen;
 | 
			
		||||
    halfScreen = (Vector2D){screenDimensions.x / 2, screenDimensions.y / 2};
 | 
			
		||||
 | 
			
		||||
    /* Enemy Draw */
 | 
			
		||||
    for (i = 0; i < enemies.enemyCount; i++)
 | 
			
		||||
@@ -694,11 +710,13 @@ void DrawScreen()
 | 
			
		||||
 | 
			
		||||
void DrawScore()
 | 
			
		||||
{
 | 
			
		||||
    unsigned int processedScore = player.score;
 | 
			
		||||
    unsigned int processedScore;
 | 
			
		||||
    char digit;
 | 
			
		||||
    Vector2D spawnPosition;
 | 
			
		||||
    int i;
 | 
			
		||||
 | 
			
		||||
    processedScore = player.score;
 | 
			
		||||
 | 
			
		||||
    for(i = scoreDigitLimit - 1; i >= 0; i--)
 | 
			
		||||
    {
 | 
			
		||||
        spawnPosition = scorePosition;
 | 
			
		||||
@@ -712,11 +730,13 @@ void DrawScore()
 | 
			
		||||
 | 
			
		||||
void DrawHighScore()
 | 
			
		||||
{
 | 
			
		||||
    unsigned int processedScore = highScore;
 | 
			
		||||
    unsigned int processedScore;
 | 
			
		||||
    char digit;
 | 
			
		||||
    Vector2D spawnPosition;
 | 
			
		||||
    int i;
 | 
			
		||||
 | 
			
		||||
    processedScore = highScore;
 | 
			
		||||
 | 
			
		||||
    for(i = 0; i < scoreDigitLimit; i++)
 | 
			
		||||
    {
 | 
			
		||||
        spawnPosition = highScorePosition;
 | 
			
		||||
@@ -730,12 +750,16 @@ void DrawHighScore()
 | 
			
		||||
 | 
			
		||||
void DrawTimer()
 | 
			
		||||
{
 | 
			
		||||
    int seconds = (int)timeSinceStart % 60;
 | 
			
		||||
    int minutes = (timeSinceStart - seconds) / 60;
 | 
			
		||||
    int seconds;
 | 
			
		||||
    int minutes;
 | 
			
		||||
    char digit;
 | 
			
		||||
    Vector2D spawnPosition;
 | 
			
		||||
    int i = -timerDigitLimit / 2;
 | 
			
		||||
    int i;
 | 
			
		||||
 | 
			
		||||
    seconds = (int)timeSinceStart % 60;
 | 
			
		||||
    minutes = (timeSinceStart - seconds) / 60;
 | 
			
		||||
    spawnPosition = timerPosition;
 | 
			
		||||
    i = -timerDigitLimit / 2;
 | 
			
		||||
 | 
			
		||||
    while (i < 0)
 | 
			
		||||
    {
 | 
			
		||||
@@ -794,8 +818,8 @@ void CheckHighScore()
 | 
			
		||||
 | 
			
		||||
void GetHighScore()
 | 
			
		||||
{
 | 
			
		||||
    printf("Getting Highscore\n");
 | 
			
		||||
    FILE *saveFile = fopen(savePath, "rb");
 | 
			
		||||
    printf("Getting Highscore\n");
 | 
			
		||||
    if(saveFile == NULL)
 | 
			
		||||
    {
 | 
			
		||||
        printf("!!!!Error Reading Highscore!!!!\n");
 | 
			
		||||
@@ -809,8 +833,8 @@ void GetHighScore()
 | 
			
		||||
 | 
			
		||||
void GetSettings()
 | 
			
		||||
{
 | 
			
		||||
    printf("Getting Settings\n");
 | 
			
		||||
    FILE *settingsFile = fopen(settingsPath, "r");
 | 
			
		||||
    printf("Getting Settings\n");
 | 
			
		||||
    if(settingsFile == NULL)
 | 
			
		||||
    {
 | 
			
		||||
        printf("!!!!Error Reading Settings!!!!\n");
 | 
			
		||||
@@ -855,7 +879,6 @@ void Inputs()
 | 
			
		||||
        player.lookDirection = input.x;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    input = NormalizeVector(input);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -880,23 +903,6 @@ void ClampPlayerPositionToScreenDimensions()
 | 
			
		||||
        player.position.y = screenDimensions.y;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
char DealDamage(char *health)
 | 
			
		||||
{
 | 
			
		||||
    return --*health <= 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void BulletMovement()
 | 
			
		||||
{
 | 
			
		||||
    Bullet *bullet;
 | 
			
		||||
    int i;
 | 
			
		||||
    for (i = 0; i < bullets.bulletCount; i++)
 | 
			
		||||
    {
 | 
			
		||||
        bullet = (bullets.bulletArray + i);
 | 
			
		||||
        bullet -> position.x += bullet -> velocity.x; 
 | 
			
		||||
        bullet -> position.y += bullet -> velocity.y; 
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void ShootSoundEffect()
 | 
			
		||||
{
 | 
			
		||||
    printf("ShootSoundEffect();\n");
 | 
			
		||||
@@ -929,7 +935,9 @@ void PlayerShoot()
 | 
			
		||||
{
 | 
			
		||||
    Vector2D shootDir;
 | 
			
		||||
    Bullet *newBullet;
 | 
			
		||||
    float offset = (player.image.size.x + enemyBulletImage.size.x * 2.0);
 | 
			
		||||
    float offset;
 | 
			
		||||
 | 
			
		||||
    offset = (player.image.size.x + enemyBulletImage.size.x * 2.0);
 | 
			
		||||
        
 | 
			
		||||
    if(player.lookDirection != 1)
 | 
			
		||||
        offset = -offset;
 | 
			
		||||
@@ -959,7 +967,9 @@ void EnemyShoot()
 | 
			
		||||
    Enemy *enemy;
 | 
			
		||||
    Bullet *bullet;
 | 
			
		||||
    int i;
 | 
			
		||||
    float offset = (player.image.size.x + enemyBulletImage.size.x * 2.0);
 | 
			
		||||
    float offset;
 | 
			
		||||
 | 
			
		||||
    offset = (player.image.size.x + enemyBulletImage.size.x * 2.0);
 | 
			
		||||
 | 
			
		||||
    for (i = 0; i < enemies.enemyCount; i++)
 | 
			
		||||
    {
 | 
			
		||||
@@ -988,21 +998,21 @@ void EnemyShoot()
 | 
			
		||||
            ShootSoundEffect();
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void BulletCollisions()
 | 
			
		||||
{
 | 
			
		||||
    Bullet *bullet;
 | 
			
		||||
    Enemy *enemy;
 | 
			
		||||
    int bulletCounter = 0;
 | 
			
		||||
    int enemyCounter = 0;
 | 
			
		||||
    int i = 0;
 | 
			
		||||
    int bulletCounter;
 | 
			
		||||
    int enemyCounter;
 | 
			
		||||
 | 
			
		||||
    printf("Enemy-Bullet\n");
 | 
			
		||||
    for (enemyCounter = 0; enemyCounter < enemies.enemyCount; enemyCounter++)
 | 
			
		||||
    {
 | 
			
		||||
        printf("Enemy-Bullet|enemyCounter\n");
 | 
			
		||||
        enemy = (enemies.enemyArray + enemyCounter);
 | 
			
		||||
 | 
			
		||||
        for (bulletCounter = 0; bulletCounter < bullets.bulletCount; bulletCounter++)
 | 
			
		||||
        {
 | 
			
		||||
            bullet = (bullets.bulletArray + bulletCounter);
 | 
			
		||||
@@ -1055,7 +1065,18 @@ void BulletCollisions()
 | 
			
		||||
                isGameOver = 1;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void BulletMovement()
 | 
			
		||||
{
 | 
			
		||||
    Bullet *bullet;
 | 
			
		||||
    int i;
 | 
			
		||||
    for (i = 0; i < bullets.bulletCount; i++)
 | 
			
		||||
    {
 | 
			
		||||
        bullet = (bullets.bulletArray + i);
 | 
			
		||||
        bullet -> position.x += bullet -> velocity.x; 
 | 
			
		||||
        bullet -> position.y += bullet -> velocity.y; 
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void DestroyGame()
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user