Selaa lähdekoodia

Added HUD alignment stuff...

master
Ognjen Milan Robovic 5 kuukautta sitten
vanhempi
commit
2a303e9804
8 muutettua tiedostoa jossa 185 lisäystä ja 118 poistoa
  1. +12
    -12
      compile.sh
  2. +75
    -35
      source/engine.c
  3. +4
    -0
      source/engine.h
  4. +42
    -42
      source/game.c
  5. +23
    -18
      source/main.c
  6. +25
    -6
      source/render.c
  7. +4
    -5
      source/render.h
  8. BIN
      sprite/gothic.ttf

+ 12
- 12
compile.sh Näytä tiedosto

@@ -2,19 +2,19 @@

set -xe

clang -g -std=gnu17 -Weverything -Werror -Ofast -c -o ./source/engine.o ./source/engine.c
clang -g -std=gnu17 -Weverything -Werror -Ofast -c -o ./source/render.o ./source/render.c
clang -g -std=gnu17 -Weverything -Werror -Ofast -c -o ./source/game.o ./source/game.c
clang -g -std=gnu17 -Weverything -Werror -Ofast -c -o ./source/menu.o ./source/menu.c
#~clang -g -std=gnu17 -Weverything -Werror -Ofast -c -o ./source/source.o ./source/source.c
clang -g -std=gnu17 -Weverything -Werror -Ofast -c -o ./source/main.o ./source/main.c
clang -g -ansi -Weverything -Werror -Ofast -c -o ./source/engine.o ./source/engine.c
clang -g -ansi -Weverything -Werror -Ofast -c -o ./source/render.o ./source/render.c
clang -g -ansi -Weverything -Werror -Ofast -c -o ./source/game.o ./source/game.c
clang -g -ansi -Weverything -Werror -Ofast -c -o ./source/menu.o ./source/menu.c
#~clang -g -ansi -Weverything -Werror -Ofast -c -o ./source/source.o ./source/source.c
clang -g -ansi -Weverything -Werror -Ofast -c -o ./source/main.o ./source/main.c

gcc -g -std=gnu17 -Wall -Wextra -Wpedantic -Werror -Ofast -c -o ./source/engine.o ./source/engine.c
gcc -g -std=gnu17 -Wall -Wextra -Wpedantic -Werror -Ofast -c -o ./source/render.o ./source/render.c
gcc -g -std=gnu17 -Wall -Wextra -Wpedantic -Werror -Ofast -c -o ./source/game.o ./source/game.c
gcc -g -std=gnu17 -Wall -Wextra -Wpedantic -Werror -Ofast -c -o ./source/menu.o ./source/menu.c
#~gcc -g -std=gnu17 -Wall -Wextra -Wpedantic -Werror -Ofast -c -o ./source/source.o ./source/source.c
gcc -g -std=gnu17 -Wall -Wextra -Wpedantic -Werror -Ofast -c -o ./source/main.o ./source/main.c
gcc -g -ansi -Wall -Wextra -Wpedantic -Werror -Ofast -c -o ./source/engine.o ./source/engine.c
gcc -g -ansi -Wall -Wextra -Wpedantic -Werror -Ofast -c -o ./source/render.o ./source/render.c
gcc -g -ansi -Wall -Wextra -Wpedantic -Werror -Ofast -c -o ./source/game.o ./source/game.c
gcc -g -ansi -Wall -Wextra -Wpedantic -Werror -Ofast -c -o ./source/menu.o ./source/menu.c
#~gcc -g -ansi -Wall -Wextra -Wpedantic -Werror -Ofast -c -o ./source/source.o ./source/source.c
gcc -g -ansi -Wall -Wextra -Wpedantic -Werror -Ofast -c -o ./source/main.o ./source/main.c

#~gcc -o umorna ./source/main.o ./source/source.o ./source/menu.o ./source/game.o ./source/engine.o -lraylib
gcc -o umorna ./source/main.o ./source/game.o ./source/engine.o ./source/menu.o ./source/render.o -lraylib


+ 75
- 35
source/engine.c Näytä tiedosto

@@ -1,10 +1,12 @@
#include "engine.h"

void view_unit (int race, int unit, int x, int y) {
int u = 0;
int v = (unit - race * 18) * BASE_SIZE;
int width = BASE_SIZE;
int height = BASE_SIZE;
int u, v, width, height;

u = 0;
v = (unit - race * 18) * BASE_SIZE;
width = BASE_SIZE;
height = BASE_SIZE;

switch (race) {
case orc: render_sprite (orcs, x, y, u, v, width, height); break;
@@ -15,56 +17,91 @@ void view_unit (int race, int unit, int x, int y) {
}

void view_menu (int menu, int align, int x, int y) {
int width = (int) strlen (menu_text [menu] [0]);
int height = menu_items [menu];
int aligned_x = (align == 0) ? x : ((render_width () - ICON_SIZE * width) / 2);
int aligned_y = (align == 0) ? y : ((render_height () - ICON_SIZE * height) / 2);

int item;
int item, width, height, aligned_x, aligned_y, u, v;

if (menu_show [menu] == 0) {
return;
}

width = (int) strlen (menu_text [menu] [0]);
height = menu_items [menu];
aligned_x = (align == 0) ? x : ((render_width () - ICON_SIZE * width) / 2);
aligned_y = (align == 0) ? y : ((render_height () - ICON_SIZE * height) / 2);

for (item = 0; item < menu_items [menu]; ++item) {
int u = (menu_icon [menu] [item] / 10) * ICON_SIZE;
int v = (menu_icon [menu] [item] % 10) * ICON_SIZE;
u = (menu_icon [menu] [item] / 10) * ICON_SIZE;
v = (menu_icon [menu] [item] % 10) * ICON_SIZE;

render_sprite (ui, aligned_x, aligned_y + item * ICON_SIZE, u, v, ICON_SIZE, ICON_SIZE);
render_string (menu_text [menu] [item], aligned_x + ICON_SIZE, aligned_y + item * ICON_SIZE);
}
}

void view_hud (int alpha, int width, int height, int x, int y) {
int i, j, u, v;

u = width % ICON_SIZE;
v = height % ICON_SIZE;

width /= ICON_SIZE;
height /= ICON_SIZE;

if (alpha == 0) {
for (i = 0; i < width - 1; ++i) {
for (j = 0; j < height - 1; ++j) {
render_sprite (neonui, x + i * ICON_SIZE + ICON_SIZE / 2, y + j * ICON_SIZE + ICON_SIZE / 2, 0, 0, ICON_SIZE, ICON_SIZE);
}
render_sprite (neonui, x + i * ICON_SIZE + ICON_SIZE / 2, y + height * ICON_SIZE + ICON_SIZE / 2, 0, 0, u, ICON_SIZE);
}
render_sprite (neonui, x + width * ICON_SIZE + ICON_SIZE / 2, y + height * ICON_SIZE + ICON_SIZE / 2, 0, 0, ICON_SIZE, v);
}

for (i = 1; i < width; ++i) {
render_sprite (neonui, x + i * ICON_SIZE, y, 560, 0, ICON_SIZE, ICON_SIZE);
render_sprite (neonui, x + i * ICON_SIZE, y + ICON_SIZE * (height - 1) + v, 560, 0, ICON_SIZE, ICON_SIZE);
}

for (i = 1; i < height - 1; ++i) {
render_sprite (neonui, x, y + i * ICON_SIZE, 256, 128, ICON_SIZE, ICON_SIZE);
render_sprite (neonui, x + ICON_SIZE * (width - 1) + u, y + i * ICON_SIZE + v, 256, 128, ICON_SIZE, ICON_SIZE);
}

render_sprite (neonui, x, y, 288, 0, 3 * ICON_SIZE, 3 * ICON_SIZE);
render_sprite (neonui, x + ICON_SIZE * (width - 3) + u, y, 384, 0, 3 * ICON_SIZE, 3 * ICON_SIZE);
render_sprite (neonui, x, y + ICON_SIZE * (height - 3) + v, 288, 96, 3 * ICON_SIZE, 3 * ICON_SIZE);
render_sprite (neonui, x + ICON_SIZE * (width - 3) + u, y + ICON_SIZE * (height - 3) + v, 384, 96, 3 * ICON_SIZE, 3 * ICON_SIZE);
}

void view_neon_menu (int menu, int align, int x, int y) {
int item;
int item, width, height, aligned_x, aligned_y, offset_x, offset_y, i, j;

if (menu_show [menu] == 0) {
return;
}

int width = (int) strlen (menu_text [menu] [0]) + 4;
int height = menu_items [menu] + 4;
width = (int) strlen (menu_text [menu] [0]) + 4;
height = menu_items [menu] + 4;

int aligned_x = (align == 0) ? x : ((render_width () - ICON_SIZE * width) / 2);
int aligned_y = (align == 0) ? y : ((render_height () - ICON_SIZE * height) / 2);
aligned_x = (align == 0) ? x : ((render_width () - ICON_SIZE * width) / 2);
aligned_y = (align == 0) ? y : ((render_height () - ICON_SIZE * height) / 2);

int offset_x = ICON_SIZE * (width - 3);
int offset_y = ICON_SIZE * (height - 3);
offset_x = ICON_SIZE * (width - 3);
offset_y = ICON_SIZE * (height - 3);

for (int p = 0; p < width - 1; ++p) {
for (int q = 0; q < height - 1; ++q) {
render_sprite (neonui, aligned_x + p * ICON_SIZE + ICON_SIZE / 2, aligned_y + q * ICON_SIZE + ICON_SIZE / 2, 0, 0, ICON_SIZE, ICON_SIZE);
for (i = 0; i < width - 1; ++i) {
for (j = 0; j < height - 1; ++j) {
render_sprite (neonui, aligned_x + i * ICON_SIZE + ICON_SIZE / 2, aligned_y + j * ICON_SIZE + ICON_SIZE / 2, 0, 0, ICON_SIZE, ICON_SIZE);
}
}

for (int n = 1; n < width - 1; ++n) {
render_sprite (neonui, aligned_x + n * ICON_SIZE, aligned_y, 560, 0, ICON_SIZE, ICON_SIZE);
render_sprite (neonui, aligned_x + n * ICON_SIZE, aligned_y + ICON_SIZE * (height - 1), 560, 0, ICON_SIZE, ICON_SIZE);
for (i = 1; i < width - 1; ++i) {
render_sprite (neonui, aligned_x + i * ICON_SIZE, aligned_y, 560, 0, ICON_SIZE, ICON_SIZE);
render_sprite (neonui, aligned_x + i * ICON_SIZE, aligned_y + ICON_SIZE * (height - 1), 560, 0, ICON_SIZE, ICON_SIZE);
}

for (int n = 1; n < height - 1; ++n) {
render_sprite (neonui, aligned_x, aligned_y + n * ICON_SIZE, 256, 128, ICON_SIZE, ICON_SIZE);
render_sprite (neonui, aligned_x + ICON_SIZE * (width - 1), aligned_y + n * ICON_SIZE, 256, 128, ICON_SIZE, ICON_SIZE);
for (i = 1; i < height - 1; ++i) {
render_sprite (neonui, aligned_x, aligned_y + i * ICON_SIZE, 256, 128, ICON_SIZE, ICON_SIZE);
render_sprite (neonui, aligned_x + ICON_SIZE * (width - 1), aligned_y + i * ICON_SIZE, 256, 128, ICON_SIZE, ICON_SIZE);
}

render_sprite (neonui, aligned_x, aligned_y, 288, 0, 3 * ICON_SIZE, 3 * ICON_SIZE);
@@ -76,10 +113,10 @@ void view_neon_menu (int menu, int align, int x, int y) {
aligned_y += 2 * ICON_SIZE;

for (item = 0; item < menu_items [menu]; ++item) {
int u = (menu_icon [menu] [item] / 10) * ICON_SIZE;
int v = (menu_icon [menu] [item] % 10) * ICON_SIZE;
i = (menu_icon [menu] [item] / 10) * ICON_SIZE;
j = (menu_icon [menu] [item] % 10) * ICON_SIZE;

render_sprite (ui, aligned_x, aligned_y + item * ICON_SIZE, u, v, ICON_SIZE, ICON_SIZE);
render_sprite (ui, aligned_x, aligned_y + item * ICON_SIZE, i, j, ICON_SIZE, ICON_SIZE);

render_string (menu_text [menu] [item], aligned_x + ICON_SIZE, aligned_y + item * ICON_SIZE);
}
@@ -89,11 +126,10 @@ void view_map (void) {
int x, y;

for (x = 0; x < CHAD_WORLD_WIDTH; ++x) {
for (y = 0; y < CHAD_WORLD_HEIGHT; ++y) {
int index = chad_world [0] [x] [y];
int catch = (y * y + x + x / (y + 1) + y / (x + 1)) % chad_block_change [index];
if (x * BASE_SIZE * render_zoom > render_width () - SIDE_SIZE) break;

render_sprite (ashlands, (int) (x * BASE_SIZE * render_zoom), (int) (y * BASE_SIZE * render_zoom), catch * BASE_SIZE, index * BASE_SIZE, BASE_SIZE, BASE_SIZE);
for (y = 0; y < CHAD_WORLD_HEIGHT; ++y) {
render_sprite (ashlands, (int) (x * BASE_SIZE * render_zoom), (int) (y * BASE_SIZE * render_zoom), 0, chad_world [0] [x] [y] * BASE_SIZE, BASE_SIZE, BASE_SIZE);
}
}
}
@@ -105,3 +141,7 @@ void view_base_1 (int index, int x, int y) {
void view_base_2 (int index, int x, int y) {
render_sprite (base_2, x, y, 0, index * 10 * BASE_SIZE, 15 * BASE_SIZE, 10 * BASE_SIZE);
}

void view_side_hud (void) {
return;
}

+ 4
- 0
source/engine.h Näytä tiedosto

@@ -11,6 +11,8 @@ extern void view_unit (int race, int unit, int x, int y);

extern void view_menu (int menu, int align, int x, int y);

extern void view_hud (int alpha, int width, int height, int x, int y);

extern void view_neon_menu (int menu, int align, int x, int y);

extern void view_map (void);
@@ -18,4 +20,6 @@ extern void view_map (void);
extern void view_base_1 (int index, int x, int y);
extern void view_base_2 (int index, int x, int y);

extern void view_side_hud (void);

#endif

+ 42
- 42
source/game.c Näytä tiedosto

@@ -63,56 +63,56 @@ void game_configure (void) {
chad_define_unit ("Gnoll Shaman", "Treehouse", orc, CHAD_UNIT_MAGIC, 1, 3, 7, -1);
chad_define_unit ("Goblin", "Dirty Shed", orc, CHAD_UNIT_MELEE, 2, 3, 7, -1);
chad_define_unit ("Hob-Goblin", "Old Barracks", orc, CHAD_UNIT_MELEE | CHAD_UNIT_MAGIC, 3, 5, 7, -1);
chad_define_unit ("Thief", "Thief Storehouse", orc, CHAD_UNIT_MELEE, 3, 7, 7, -1);
chad_define_unit ("Looter", "Abandoned Manor", orc, CHAD_UNIT_RANGE, 5, 7, 7, -1);
chad_define_unit ("Warrior", "Longhouse", orc, CHAD_UNIT_MELEE, 7, 11, 7, -1);
chad_define_unit ("Shaman", "Cottage", orc, CHAD_UNIT_MAGIC, 7, 11, 7, -1);
chad_define_unit ("Chief", "Campgrounds", orc, CHAD_UNIT_MELEE | CHAD_UNIT_RANGE, 11, 13, 7, -1);
chad_define_unit ("Wolf-Rider", "Wold Den", orc, CHAD_UNIT_MELEE | CHAD_UNIT_RANGE, 17, 17, 7, -1);
chad_define_unit ("Boar-Rider", "Boar Ranch", orc, CHAD_UNIT_RANGE, 19, 23, 7, -1);
chad_define_unit ("Overlord", "Orcish Temple", orc, CHAD_UNIT_MELEE | CHAD_UNIT_MAGIC, 23, 13, 7, -1);
chad_define_unit ("Ogre", "Highlands", orc, CHAD_UNIT_MELEE, 29, 23, 7, -1);
chad_define_unit ("Ogre Mage", "Highland Tower", orc, CHAD_UNIT_MELEE | CHAD_UNIT_MAGIC, 31, 29, 7, -1);
chad_define_unit ("Troll", "Troll Den", orc, CHAD_UNIT_MELEE, 37, 31, 7, -1);
chad_define_unit ("War Troll", "Cavern-Fort", orc, CHAD_UNIT_MELEE | CHAD_UNIT_RANGE, 41, 37, 7, -1);
chad_define_unit ("Basilisk", "Dungeon", orc, CHAD_UNIT_MELEE | CHAD_UNIT_EXTRA, 53, 59, 7, -1);
chad_define_unit ("Wyvern", "Swamp Pit", orc, CHAD_UNIT_MELEE | CHAD_UNIT_EXTRA, 59, 53, 7, -1);
chad_define_unit ("Thief", "Thief Storehouse", orc, CHAD_UNIT_MELEE, 3, 7, 5, -1);
chad_define_unit ("Looter", "Abandoned Manor", orc, CHAD_UNIT_RANGE, 5, 7, 5, -1);
chad_define_unit ("Warrior", "Longhouse", orc, CHAD_UNIT_MELEE, 7, 11, 5, -1);
chad_define_unit ("Shaman", "Cottage", orc, CHAD_UNIT_MAGIC, 7, 11, 3, -1);
chad_define_unit ("Chief", "Campgrounds", orc, CHAD_UNIT_MELEE | CHAD_UNIT_RANGE, 11, 13, 3, -1);
chad_define_unit ("Wolf-Rider", "Wold Den", orc, CHAD_UNIT_MELEE | CHAD_UNIT_RANGE, 17, 17, 2, -1);
chad_define_unit ("Boar-Rider", "Boar Ranch", orc, CHAD_UNIT_RANGE, 19, 23, 2, -1);
chad_define_unit ("Overlord", "Orcish Temple", orc, CHAD_UNIT_MELEE | CHAD_UNIT_MAGIC, 23, 13, 2, -1);
chad_define_unit ("Ogre", "Highlands", orc, CHAD_UNIT_MELEE, 29, 23, 2, -1);
chad_define_unit ("Ogre Mage", "Highland Tower", orc, CHAD_UNIT_MELEE | CHAD_UNIT_MAGIC, 31, 29, 2, -1);
chad_define_unit ("Troll", "Troll Den", orc, CHAD_UNIT_MELEE, 37, 31, 1, -1);
chad_define_unit ("War Troll", "Cavern-Fort", orc, CHAD_UNIT_MELEE | CHAD_UNIT_RANGE, 41, 37, 1, -1);
chad_define_unit ("Basilisk", "Dungeon", orc, CHAD_UNIT_MELEE | CHAD_UNIT_EXTRA, 53, 59, 1, -1);
chad_define_unit ("Wyvern", "Swamp Pit", orc, CHAD_UNIT_MELEE | CHAD_UNIT_EXTRA, 59, 53, 1, -1);
chad_define_unit ("Peasant", "Farm", human, CHAD_UNIT_MELEE, 1, 1, 7, -1);
chad_define_unit ("Scout", "Scout Shack", human, CHAD_UNIT_RANGE, 2, 3, 7, -1);
chad_define_unit ("Hunter", "Archery", human, CHAD_UNIT_RANGE, 2, 3, 7, -1);
chad_define_unit ("Swordman", "House of Slashing", human, CHAD_UNIT_MELEE, 3, 5, 7, -1);
chad_define_unit ("Axeman", "House of Cutting", human, CHAD_UNIT_MELEE, 5, 5, 7, -1);
chad_define_unit ("Crossbowman", "House of Shooting", human, CHAD_UNIT_RANGE, 5, 5, 7, -1);
chad_define_unit ("Horseman", "Horse Ranch", human, CHAD_UNIT_MELEE, 7, 11, 7, -1);
chad_define_unit ("Guard", "Guard Barracks", human, CHAD_UNIT_MELEE, 7, 7, 7, -1);
chad_define_unit ("Elite Guard", "Guard Home", human, CHAD_UNIT_MELEE, 13, 11, 7, -1);
chad_define_unit ("Lancer", "Riding Meadow", human, CHAD_UNIT_MELEE | CHAD_UNIT_RANGE, 17, 17, 7, -1);
chad_define_unit ("Knight", "Mansion of Honour", human, CHAD_UNIT_MELEE, 19, 23, 7, -1);
chad_define_unit ("Kingsman", "King's Academy", human, CHAD_UNIT_MELEE, 19, 17, 7, -1);
chad_define_unit ("Mage", "School of Mana", human, CHAD_UNIT_MAGIC, 23, 7, 7, -1);
chad_define_unit ("Arch-Mage", "Temple of Mana", human, CHAD_UNIT_MAGIC, 29, 11, 7, -1);
chad_define_unit ("Giant", "Mound", human, CHAD_UNIT_MELEE, 41, 59, 7, -1);
chad_define_unit ("War Giant", "Mound-Fort", human, CHAD_UNIT_MELEE | CHAD_UNIT_RANGE, 43, 67, 7, -1);
chad_define_unit ("Griffin", "Griffin Nest", human, CHAD_UNIT_MELEE, 47, 53, 7, -1);
chad_define_unit ("Roc", "Heavenly Temple", human, CHAD_UNIT_MELEE | CHAD_UNIT_MAGIC, 53, 61, 7, -1);
chad_define_unit ("Axeman", "House of Cutting", human, CHAD_UNIT_MELEE, 5, 5, 5, -1);
chad_define_unit ("Crossbowman", "House of Shooting", human, CHAD_UNIT_RANGE, 5, 5, 5, -1);
chad_define_unit ("Horseman", "Horse Ranch", human, CHAD_UNIT_MELEE, 7, 11, 5, -1);
chad_define_unit ("Guard", "Guard Barracks", human, CHAD_UNIT_MELEE, 7, 7, 3, -1);
chad_define_unit ("Elite Guard", "Guard Home", human, CHAD_UNIT_MELEE, 13, 11, 3, -1);
chad_define_unit ("Lancer", "Riding Meadow", human, CHAD_UNIT_MELEE | CHAD_UNIT_RANGE, 17, 17, 2, -1);
chad_define_unit ("Knight", "Mansion of Honour", human, CHAD_UNIT_MELEE, 19, 23, 2, -1);
chad_define_unit ("Kingsman", "King's Academy", human, CHAD_UNIT_MELEE, 19, 17, 2, -1);
chad_define_unit ("Mage", "School of Mana", human, CHAD_UNIT_MAGIC, 23, 7, 2, -1);
chad_define_unit ("Arch-Mage", "Temple of Mana", human, CHAD_UNIT_MAGIC, 29, 11, 2, -1);
chad_define_unit ("Giant", "Mound", human, CHAD_UNIT_MELEE, 41, 59, 1, -1);
chad_define_unit ("War Giant", "Mound-Fort", human, CHAD_UNIT_MELEE | CHAD_UNIT_RANGE, 43, 67, 1, -1);
chad_define_unit ("Griffin", "Griffin Nest", human, CHAD_UNIT_MELEE, 47, 53, 1, -1);
chad_define_unit ("Roc", "Heavenly Temple", human, CHAD_UNIT_MELEE | CHAD_UNIT_MAGIC, 53, 61, 1, -1);
chad_define_unit ("Sprite", "Little Lamp", elf, CHAD_UNIT_MELEE, 1, 1, 7, -1);
chad_define_unit ("Nature Spirit", "Flower Palace", elf, CHAD_UNIT_MELEE, 1, 1, 7, -1);
chad_define_unit ("Half-Elf", "Slums", elf, CHAD_UNIT_MELEE, 1, 3, 7, -1);
chad_define_unit ("Ranger", "Ranger Guild", elf, CHAD_UNIT_MELEE, 3, 5, 7, -1);
chad_define_unit ("Archer", "Arrow House", elf, CHAD_UNIT_MELEE | CHAD_UNIT_RANGE, 3, 7, 7, -1);
chad_define_unit ("Elite Archer", "Arrow Fortress", elf, CHAD_UNIT_MELEE | CHAD_UNIT_RANGE, 5, 7, 7, -1);
chad_define_unit ("Blademaster", "School of Blades", elf, CHAD_UNIT_MELEE | CHAD_UNIT_MAGIC, 7, 11, 7, -1);
chad_define_unit ("Water Mage", "Water Temple", elf, CHAD_UNIT_MAGIC, 11, 11, 7, -1);
chad_define_unit ("Earth Mage", "Earth Temple", elf, CHAD_UNIT_MAGIC, 13, 13, 7, -1);
chad_define_unit ("Wind Mage", "Wind Temple", elf, CHAD_UNIT_MAGIC, 13, 17, 7, -1);
chad_define_unit ("Rune Mage", "Rune Monastery", elf, CHAD_UNIT_MAGIC, 17, 19, 7, -1);
chad_define_unit ("Runemaster", "Ancient Ruins", elf, CHAD_UNIT_MAGIC, 19, 23, 7, -1);
chad_define_unit ("Sacrificer", "Altair", elf, CHAD_UNIT_MAGIC, 23, 19, 7, -1);
chad_define_unit ("Elk Rider", "Elk Ranch-House", elf, CHAD_UNIT_MELEE, 29, 23, 7, -1);
chad_define_unit ("Warmaster", "Elven Fort", elf, CHAD_UNIT_MELEE | CHAD_UNIT_MAGIC, 41, 59, 7, -1);
chad_define_unit ("Coal Golem", "Old Coal Mine", elf, CHAD_UNIT_MELEE, 43, 53, 7, -1);
chad_define_unit ("Iron Golem", "Old Iron Mine", elf, CHAD_UNIT_MELEE, 47, 67, 7, -1);
chad_define_unit ("Sage", "Cabin in the Woods", elf, CHAD_UNIT_RANGE | CHAD_UNIT_MAGIC, 67, 47, 7, -1);
chad_define_unit ("Archer", "Arrow House", elf, CHAD_UNIT_MELEE | CHAD_UNIT_RANGE, 3, 7, 5, -1);
chad_define_unit ("Elite Archer", "Arrow Fortress", elf, CHAD_UNIT_MELEE | CHAD_UNIT_RANGE, 5, 7, 5, -1);
chad_define_unit ("Blademaster", "School of Blades", elf, CHAD_UNIT_MELEE | CHAD_UNIT_MAGIC, 7, 11, 5, -1);
chad_define_unit ("Water Mage", "Water Temple", elf, CHAD_UNIT_MAGIC, 11, 11, 3, -1);
chad_define_unit ("Earth Mage", "Earth Temple", elf, CHAD_UNIT_MAGIC, 13, 13, 3, -1);
chad_define_unit ("Wind Mage", "Wind Temple", elf, CHAD_UNIT_MAGIC, 13, 17, 2, -1);
chad_define_unit ("Rune Mage", "Rune Monastery", elf, CHAD_UNIT_MAGIC, 17, 19, 2, -1);
chad_define_unit ("Runemaster", "Ancient Ruins", elf, CHAD_UNIT_MAGIC, 19, 23, 2, -1);
chad_define_unit ("Sacrificer", "Altair", elf, CHAD_UNIT_MAGIC, 23, 19, 2, -1);
chad_define_unit ("Elk Rider", "Elk Ranch-House", elf, CHAD_UNIT_MELEE, 29, 23, 2, -1);
chad_define_unit ("Warmaster", "Elven Fort", elf, CHAD_UNIT_MELEE | CHAD_UNIT_MAGIC, 41, 59, 1, -1);
chad_define_unit ("Coal Golem", "Old Coal Mine", elf, CHAD_UNIT_MELEE, 43, 53, 1, -1);
chad_define_unit ("Iron Golem", "Old Iron Mine", elf, CHAD_UNIT_MELEE, 47, 67, 1, -1);
chad_define_unit ("Sage", "Cabin in the Woods", elf, CHAD_UNIT_RANGE | CHAD_UNIT_MAGIC, 67, 47, 1, -1);

chad_define_block ("Ashland", 0, 12, -1, -1, -1);
chad_define_block ("Ashdirt", 0, 6, -1, -1, -1);


+ 23
- 18
source/main.c Näytä tiedosto

@@ -11,39 +11,44 @@ int main (void) {
menu_configure ();

while (! WindowShouldClose ()) {
Color tint = { 0, 0, 0, 0 };

BeginDrawing ();

ClearBackground (BLACK);
ClearBackground (tint);

view_map ();

view_base_1 (0, 100, 100);
view_base_1 (1, 100, 400);
view_base_2 (0, 1300, 100);
view_base_2 (1, 1300, 500);
//~for (int i = 0; i < 18; ++i) {
//~view_unit (orc, i, 900 + 32 * i, 32);
//~view_unit (human, i, 900 + 32 * i, 64);
//~view_unit (elf, i, 900 + 32 * i, 96);
//~}
view_base_1 (0, 32, 128);
view_base_1 (1, 32, 512);
view_base_2 (0, 1024, 128);
view_base_2 (1, 1024, 512);
/*
for (int i = 0; i < 18; ++i) {
view_unit (orc, i, 900 + 32 * i, 32);
view_unit (human, i, 900 + 32 * i, 64);
view_unit (elf, i, 900 + 32 * i, 96);
}
*/
if (IsKeyPressed (KEY_RIGHT)) { menu_show [menu_traits] = menu_show [menu_traits] ? 0 : 1; }
if (IsKeyPressed (KEY_LEFT)) { menu_show [menu_skills] = menu_show [menu_skills] ? 0 : 1; }
if (IsKeyPressed (KEY_DOWN)) { menu_show [menu_values] = menu_show [menu_values] ? 0 : 1; }

view_hud (0, SIDE_SIZE, render_height (), render_width () - SIDE_SIZE, 0);
view_hud (1, render_width () - SIDE_SIZE, render_height (), 0, 0);

view_neon_menu (menu_resources, 1, 0, 0);

view_neon_menu (menu_traits, 1, 0, 0);
view_neon_menu (menu_skills, 1, 0, 0);
view_neon_menu (menu_values, 1, 0, 0);
/*
Rectangle source = { 0, 0, BASE_SIZE * 15, BASE_SIZE * 10 };
Rectangle destination = { 128, 128, BASE_SIZE * 15 * zoom, BASE_SIZE * 10 * zoom };

//~Rectangle source = { 0, 0, BASE_SIZE * 15, BASE_SIZE * 10 };
//~Rectangle destination = { 128, 128, BASE_SIZE * 15 * zoom, BASE_SIZE * 10 * zoom };

//~DrawTexturePro (vvv, source, destination, (Vector2) { 0, 0 }, 0.0F, WHITE);

DrawTexturePro (vvv, source, destination, (Vector2) { 0, 0 }, 0.0F, WHITE);
*/
EndDrawing ();
}



+ 25
- 6
source/render.c Näytä tiedosto

@@ -2,21 +2,38 @@

float render_zoom = 2.0;

Texture2D render_texture [render_texture_count];
static Texture2D render_texture [render_texture_count];

static Font font = { 0 };
static Color tint = { 255, 255, 255, 255 };
static Vector2 dump = { 0, 0 };

int render_width (void) { return (GetScreenWidth ()); }
int render_height (void) { return (GetScreenHeight ()); }

void render_sprite (int sprite, int x, int y, int u, int v, int width, int height) {
Rectangle source = { u, v, width, height };
Rectangle destination = { x, y, width * ((sprite <= ui) ? 1 : render_zoom), height * ((sprite <= ui) ? 1 : render_zoom) };
Vector2 origin = { 0, 0 };
Rectangle source, destination;

source.x = u;
source.y = v;
source.width = width;
source.height = height;

destination.x = x;
destination.y = y;
destination.width = width * ((sprite <= ui) ? 1 : render_zoom);
destination.height = height * ((sprite <= ui) ? 1 : render_zoom);

DrawTexturePro (render_texture [sprite], source, destination, origin, 0.0, WHITE);
DrawTexturePro (render_texture [sprite], source, destination, dump, 0.0, tint);
}

void render_string (char * string, int x, int y) {
DrawText (string, x + 4, y + 4, FONT_SIZE, WHITE);
Vector2 position = { 4, 4 };

position.x += x;
position.y += y;

DrawTextPro (font, string, position, dump, 0.0, FONT_SIZE, 4, tint);
}

static void render_clean_up (void) {
@@ -28,6 +45,8 @@ void render_configure (void) {
SetExitKey (KEY_ESCAPE);
SetTargetFPS (60);

font = LoadFont ("sprite/gothic.ttf");

atexit (render_clean_up);

render_texture [neonui] = LoadTexture ("sprite/neonui.png");


+ 4
- 5
source/render.h Näytä tiedosto

@@ -4,9 +4,10 @@
#include <stdlib.h>
#include <raylib.h>

#define BASE_SIZE (16)
#define ICON_SIZE (32)
#define FONT_SIZE (24)
#define BASE_SIZE ( 16)
#define ICON_SIZE ( 32)
#define FONT_SIZE ( 24)
#define SIDE_SIZE (480)

enum {
neonui,
@@ -17,8 +18,6 @@ enum {

extern float render_zoom;

extern Texture2D render_texture [render_texture_count];

extern int render_width (void);
extern int render_height (void);



BIN
sprite/gothic.ttf Näytä tiedosto


Loading…
Peruuta
Tallenna