mirror of
https://github.com/zoriya/ForecastingVillage.git
synced 2026-06-02 10:45:17 +00:00
adding bools into player components to enable items in inventory
This commit is contained in:
Binary file not shown.
|
After Width: | Height: | Size: 1.6 KiB |
@@ -15,6 +15,7 @@ struct player_component
|
||||
{
|
||||
gc_component base;
|
||||
int fight_rate;
|
||||
bool inventory_upgrades[4];
|
||||
};
|
||||
|
||||
extern const struct player_component player_component;
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
#include "engine.h"
|
||||
#include <stdbool.h>
|
||||
|
||||
void display_inventory_object(gc_scene *scene, struct renderer *rend, int nb);
|
||||
void display_inv_slot(gc_scene *scene, struct renderer *rend, int nb);
|
||||
bool toggle_inventory(gc_engine *engine);
|
||||
|
||||
#endif //MY_RPG_INVENTORY_H
|
||||
|
||||
@@ -5,11 +5,17 @@
|
||||
<sprite name="button_background" src="assets/ui/button_background.png" />
|
||||
<sprite name="player_holder" src="assets/ui/player.png" />
|
||||
<sprite name="enemy_holder" src="assets/ui/enemy.png" />
|
||||
<sprite name="panel" src="assets/ui/panel.png" />
|
||||
<sprite name="panel" src="assets/ui/sample_background.png" />
|
||||
<sprite name="main_ui_game" src="assets/ui/health_and_xp.png" />
|
||||
<sprite name="player" src="assets/sprites/player_spritesheet.png" />
|
||||
<sprite name="fight_background" src="assets/ui/fight_background.png" />
|
||||
|
||||
<sprite name="empty_slot" src="assets/sprites/inventory/empty_48x48.png" />
|
||||
<sprite name="slot_1" src="assets/sprites/inventory/fireball_upgrade.png" />
|
||||
<sprite name="slot_2" src="assets/sprites/inventory/water_jet_upgrade.png" />
|
||||
<sprite name="slot_3" src="assets/sprites/inventory/uppercut_upgrade.png" />
|
||||
<sprite name="slot_4" src="assets/sprites/inventory/shield_upgrade.png" />
|
||||
|
||||
<sprite name="bee" src="assets/sprites/bee.png" />
|
||||
</data>
|
||||
<gc_entities>
|
||||
|
||||
@@ -121,7 +121,7 @@
|
||||
<sprite name="item_rock_2" src="assets/sprites/items/generic-rpg-rock05.png" />
|
||||
|
||||
|
||||
<sprite name="empty_slot" src="assets/sprites/inventory/empty.png" />
|
||||
<sprite name="empty_slot" src="assets/sprites/inventory/empty_48x48.png" />
|
||||
<sprite name="slot_1" src="assets/sprites/inventory/fireball_upgrade.png" />
|
||||
<sprite name="slot_2" src="assets/sprites/inventory/water_jet_upgrade.png" />
|
||||
<sprite name="slot_3" src="assets/sprites/inventory/uppercut_upgrade.png" />
|
||||
|
||||
@@ -2,16 +2,16 @@
|
||||
<panel src="panel" x="50%" y="50%" width="40%" height="60%" tag="inventory" />
|
||||
<text text="Inventory" x="50%" y="30%" tag="inventory" />
|
||||
<button text="Go back" x="50%" y="71%" click="toggle_inventory" color="black" width="200" resize="false" tag="inventory" />
|
||||
<button sprite="texture" x="40%" y="40%" width="%" height="10%" tooltip="Fireball upgrade" tooltip_y="-7" size="15" tag="inventory">
|
||||
<button sprite="slot_1" x="40%" y="40%" width="%" height="10%" tooltip="Fireball upgrade" tooltip_y="-7" size="15" tag="inventory">
|
||||
<game_display stats="inventory_1" />
|
||||
</button>
|
||||
<button sprite="texture" x="60%" y="40%" width="%" height="10%" tooltip="Water Jet upgrade" tooltip_y="-7" size="15" tag="inventory">
|
||||
<button sprite="slot_2" x="60%" y="40%" width="%" height="10%" tooltip="Water Jet upgrade" tooltip_y="-7" size="15" tag="inventory">
|
||||
<game_display stats="inventory_2" />
|
||||
</button>
|
||||
<button sprite="texture" x="40%" y="60%" width="%" height="10%" tooltip="Uppercut upgrade" tooltip_y="-7" size="15" tag="inventory">
|
||||
<button sprite="slot_3" x="40%" y="60%" width="%" height="10%" tooltip="Uppercut upgrade" tooltip_y="-7" size="15" tag="inventory">
|
||||
<game_display stats="inventory_3" />
|
||||
</button>
|
||||
<button sprite="texture" x="60%" y="60%" width="%" height="10%" tooltip="Shield upgrade" tooltip_y="-7" size="15" tag="inventory">
|
||||
<button sprite="slot_4" x="60%" y="60%" width="%" height="10%" tooltip="Shield upgrade" tooltip_y="-7" size="15" tag="inventory">
|
||||
<game_display stats="inventory_4" />
|
||||
</button>
|
||||
</gc_entities>
|
||||
@@ -43,11 +43,11 @@ static void fdctr(gc_entity *entity, gc_scene *scene, void *component, node *n)
|
||||
rend->destroy = &text_safe_destroy;
|
||||
} if (!my_strcmp(display_type, "inventory_1")) {
|
||||
cmp->type = INVENTORY_SLOT_1;
|
||||
}if (!my_strcmp(display_type, "inventory_2")) {
|
||||
} if (!my_strcmp(display_type, "inventory_2")) {
|
||||
cmp->type = INVENTORY_SLOT_2;
|
||||
}if (!my_strcmp(display_type, "inventory_3")) {
|
||||
} if (!my_strcmp(display_type, "inventory_3")) {
|
||||
cmp->type = INVENTORY_SLOT_3;
|
||||
}if (!my_strcmp(display_type, "inventory_4")) {
|
||||
} if (!my_strcmp(display_type, "inventory_4")) {
|
||||
cmp->type = INVENTORY_SLOT_4;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,6 +13,8 @@ static void ctr(void *component, va_list args)
|
||||
struct player_component *cmp = (struct player_component *)component;
|
||||
|
||||
cmp->fight_rate = va_arg(args, int);
|
||||
for (int i = 0; i < 4; i++)
|
||||
cmp->inventory_upgrades[i] = false;
|
||||
}
|
||||
|
||||
static void fdctr(gc_entity *entity, gc_scene *scene, void *component, node *n)
|
||||
@@ -20,6 +22,8 @@ static void fdctr(gc_entity *entity, gc_scene *scene, void *component, node *n)
|
||||
struct player_component *cmp = (struct player_component *)component;
|
||||
|
||||
cmp->fight_rate = xml_getintprop(n, "fight_rate");
|
||||
for (int i = 0; i < 4; i++)
|
||||
cmp->inventory_upgrades[i] = false;
|
||||
}
|
||||
|
||||
static void dtr(void *component)
|
||||
|
||||
@@ -74,26 +74,23 @@ float dtime)
|
||||
struct renderer *rend = GETCMP(entity, renderer);
|
||||
gc_scene *scene = engine->scene;
|
||||
|
||||
if (disp->type == SELECT_TILE_DISPLAY && rend->type == GC_TEXTUREREND) {
|
||||
display_current_texture(scene, rend);
|
||||
return;
|
||||
}
|
||||
if (disp->type >= INVENTORY_SLOT_1 && disp->type <= INVENTORY_SLOT_4 && rend->type == GC_TEXTUREREND) {
|
||||
display_inventory_object(scene, rend, disp->type - INVENTORY_SLOT_1 + 1);
|
||||
return;
|
||||
switch (rend->type) {
|
||||
case GC_TEXTUREREND:
|
||||
if (disp->type == SELECT_TILE_DISPLAY)
|
||||
display_current_texture(scene, rend);
|
||||
if (disp->type >= INVENTORY_SLOT_1 && disp->type <= INVENTORY_SLOT_4)
|
||||
display_inv_slot(scene, rend, disp->type - INVENTORY_SLOT_1 + 1);
|
||||
break;
|
||||
case GC_TXTREND:
|
||||
if (disp->type == XP_DISPLAY)
|
||||
display_current_xp(scene, rend);
|
||||
if (disp->type == HEALTH_DISPLAY)
|
||||
display_current_health(scene, rend, true);
|
||||
if (disp->type == HEALTH_DISPLAY_ENNEMY)
|
||||
display_current_health(scene, rend, false);
|
||||
default:
|
||||
break;
|
||||
}
|
||||
if (disp->type == XP_DISPLAY && rend->type == GC_TXTREND) {
|
||||
display_current_xp(scene, rend);
|
||||
return;
|
||||
}
|
||||
if (disp->type == HEALTH_DISPLAY && rend->type == GC_TXTREND) {
|
||||
display_current_health(scene, rend, true);
|
||||
return;
|
||||
}
|
||||
if (disp->type == HEALTH_DISPLAY_ENNEMY && rend->type == GC_TXTREND) {
|
||||
display_current_health(scene, rend, false);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
static void destroy(void *system, gc_engine *engine)
|
||||
|
||||
+13
-3
@@ -9,16 +9,26 @@
|
||||
#include "scene.h"
|
||||
#include "sprite.h"
|
||||
#include "prefab.h"
|
||||
#include "components/player_component.h"
|
||||
#include "components/renderer.h"
|
||||
#include "components/tag_component.h"
|
||||
#include "my.h"
|
||||
|
||||
void display_inventory_object(gc_scene *scene, struct renderer *rend, int nb)
|
||||
void display_inv_slot(gc_scene *scene, struct renderer *rend, int nb)
|
||||
{
|
||||
gc_sprite *sprite = NULL;
|
||||
char *textures[5] = {"empty_slot", "slot_1", "slot_2", "slot_3", "slot_4"};
|
||||
if (false)
|
||||
gc_list *li = scene->get_entity_by_cmp(scene, "player_component");
|
||||
struct player_component *cmp;
|
||||
|
||||
if (!li)
|
||||
return;
|
||||
cmp = GETCMP(li->data, player_component);
|
||||
if (!cmp->inventory_upgrades[nb - 1])
|
||||
nb = 0;
|
||||
((gc_sprite *)rend->data)->texture = scene->get_data(scene, "sprite", textures[nb]);
|
||||
sprite = scene->get_data(scene, "sprite", textures[nb]);
|
||||
if (sprite)
|
||||
((gc_sprite *)rend->data)->texture = sprite;
|
||||
}
|
||||
|
||||
bool toggle_inventory(gc_engine *engine)
|
||||
|
||||
Reference in New Issue
Block a user