You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
112 lines
3.6 KiB
112 lines
3.6 KiB
#include "game.h"
|
|
#include "stdlib.h"
|
|
#include "raylib.h"
|
|
#include "sprite.h"
|
|
#include "List/list.h"
|
|
#include "Input/inputHandler.h"
|
|
#include "IsometricMap/isometricMap.h"
|
|
#include "stdio.h"
|
|
|
|
Game * GameInit(){
|
|
|
|
Game *game = (Game *) malloc(sizeof(Game));
|
|
|
|
game->cursorTextures[0] = LoadTexture("assets/cursor.gif");
|
|
game->cursorTextures[1] = LoadTexture("assets/cursor_down.gif");
|
|
|
|
//game->cursorSprite = {&(cursorTextures[0]), 450, 225};
|
|
game->cursorSprite = (Sprite *) malloc(sizeof(Sprite));
|
|
game->cursorSprite->texture = &(game->cursorTextures[0]);
|
|
game->cursorSprite->x = 450;
|
|
game->cursorSprite->y = 225;
|
|
|
|
|
|
|
|
Image worker1flip = LoadImage("assets/worker/worker-1.png");
|
|
ImageFlipHorizontal(&worker1flip);
|
|
Image worker2flip = LoadImage("assets/worker/worker-2.png");
|
|
ImageFlipHorizontal(&worker2flip);
|
|
Image worker3flip = LoadImage("assets/worker/worker-3.png");
|
|
ImageFlipHorizontal(&worker3flip);
|
|
game->worker[6] = LoadTexture("assets/worker/worker-0.png");
|
|
game->worker[5] = LoadTexture("assets/worker/worker-1.png");
|
|
game->worker[7] = LoadTextureFromImage(worker1flip);
|
|
game->worker[4] = LoadTexture("assets/worker/worker-2.png");
|
|
game->worker[0] = LoadTextureFromImage(worker2flip);
|
|
game->worker[3] = LoadTexture("assets/worker/worker-3.png");
|
|
game->worker[1] = LoadTextureFromImage(worker3flip);
|
|
game->worker[2] = LoadTexture("assets/worker/worker-4.png");
|
|
|
|
game->inputHandler = (InputHandler *) malloc(sizeof(InputHandler));
|
|
game->inputHandler->pressed = 0;
|
|
game->inputHandler->rectStart.x = 0;
|
|
game->inputHandler->rectStart.y = 0;
|
|
game->inputHandler->cursorPos.x = 0;
|
|
game->inputHandler->cursorPos.y = 0;
|
|
game->inputHandler->cursorWorldPos.x = 0;
|
|
game->inputHandler->cursorWorldPos.y = 0;
|
|
game->inputHandler->cursorWorldTile.x = 0;
|
|
game->inputHandler->cursorWorldTile.y = 0;
|
|
game->inputHandler->selectedLayer = -1;
|
|
game->inputHandler->cursorTextures = game->cursorTextures;
|
|
game->inputHandler->cursorSprite = game->cursorSprite;
|
|
|
|
game->camera = (Camera2D *) malloc(sizeof(Camera2D));
|
|
game->camera->target = (Vector2){0, 0};
|
|
game->camera->rotation = 0.0f;
|
|
game->camera->zoom = 1.0f;
|
|
|
|
game->sprites = ListInit();
|
|
|
|
game->layers = ((IsometricMap ***) malloc(10*sizeof(IsometricMap *)));
|
|
|
|
// Test Layers ---
|
|
int n = 0;
|
|
int i = 0;
|
|
int j = 0;
|
|
|
|
for(n = 0; n < 10; n++){
|
|
(*(game->layers))[n] = IsometricMapInit(n);
|
|
}
|
|
|
|
for(n = 0; n <= 10; n++){
|
|
for(i = 0; i < 100; i++){
|
|
for(j = 0; j < 100; j++){
|
|
switch(n){
|
|
case 0:
|
|
IsometricMapAddTile((*(game->layers))[n], i, j, 0);
|
|
break;
|
|
case 1:
|
|
if(i > 35 && i < 50 && j > 45 && j < 60){
|
|
IsometricMapAddTile((*(game->layers))[n], i, j, 0);
|
|
}
|
|
break;
|
|
case 2:
|
|
if(i > 40 && i < 44 && j > 50 && j < 54){
|
|
IsometricMapAddTile((*(game->layers))[n], i, j, 1);
|
|
}
|
|
break;
|
|
}
|
|
|
|
}
|
|
}
|
|
}
|
|
|
|
printf("ALARM\n");
|
|
for(n = 0; n <= 10; n++){
|
|
for(i = 0; i < 20-n*2; i++){
|
|
for(j = 0; j < 20-n*2; j++){
|
|
IsometricMapAddTile((*(game->layers))[n], i, j, 0);
|
|
if(n == 9){
|
|
IsometricMapAddTile((*(game->layers))[n], i, j, 1);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
printf("ALARM\n");
|
|
|
|
// -------
|
|
|
|
return game;
|
|
|
|
} |