Use the random generator instead of rand()
This commit is contained in:
parent
f4867551a1
commit
a26c7be122
|
@ -6,6 +6,7 @@
|
||||||
#include "util.h"
|
#include "util.h"
|
||||||
#include "gui.h"
|
#include "gui.h"
|
||||||
#include "mixer.h"
|
#include "mixer.h"
|
||||||
|
#include "random.h"
|
||||||
|
|
||||||
static ItemBuilder *builder = NULL;
|
static ItemBuilder *builder = NULL;
|
||||||
|
|
||||||
|
@ -92,7 +93,7 @@ create_treasure(int current_level)
|
||||||
unsigned int highest_treasure;
|
unsigned int highest_treasure;
|
||||||
unsigned int value;
|
unsigned int value;
|
||||||
|
|
||||||
amt = (unsigned int) (rand() + (5*current_level)) % 40;
|
amt = (unsigned int) get_random(5*current_level) % 40;
|
||||||
|
|
||||||
if (current_level > 9) {
|
if (current_level > 9) {
|
||||||
highest_treasure = TREASURE_COUNT;
|
highest_treasure = TREASURE_COUNT;
|
||||||
|
@ -102,7 +103,7 @@ create_treasure(int current_level)
|
||||||
highest_treasure = GOLD;
|
highest_treasure = GOLD;
|
||||||
}
|
}
|
||||||
|
|
||||||
value = rand() % highest_treasure;
|
value = get_random(highest_treasure);
|
||||||
|
|
||||||
SDL_Rect clip = { 0, 0, 16, 16 };
|
SDL_Rect clip = { 0, 0, 16, 16 };
|
||||||
switch (value) {
|
switch (value) {
|
||||||
|
@ -157,13 +158,13 @@ item_builder_build_item(ItemKey key, int level)
|
||||||
item = create_item(path_flesh,
|
item = create_item(path_flesh,
|
||||||
(SDL_Rect) { 0, 0, 16, 16 },
|
(SDL_Rect) { 0, 0, 16, 16 },
|
||||||
&eat_flesh);
|
&eat_flesh);
|
||||||
item->value = 1;
|
item->value = get_random(level);
|
||||||
break;
|
break;
|
||||||
case HEALTH:
|
case HEALTH:
|
||||||
item = create_item(path_potion,
|
item = create_item(path_potion,
|
||||||
(SDL_Rect) { 0, 0, 16, 16 },
|
(SDL_Rect) { 0, 0, 16, 16 },
|
||||||
&drink_health);
|
&drink_health);
|
||||||
item->value = 1 + (rand() % 2);
|
item->value = 1 + get_random(level*2);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
fatal("in item_builder_build() : Unhandled item key %d", key);
|
fatal("in item_builder_build() : Unhandled item key %d", key);
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
#include <SDL2/SDL.h>
|
#include <SDL2/SDL.h>
|
||||||
#include <SDL2/SDL_image.h>
|
#include <SDL2/SDL_image.h>
|
||||||
|
@ -22,6 +23,7 @@
|
||||||
#include "menu.h"
|
#include "menu.h"
|
||||||
#include "keyboard.h"
|
#include "keyboard.h"
|
||||||
#include "mixer.h"
|
#include "mixer.h"
|
||||||
|
#include "random.h"
|
||||||
|
|
||||||
static SDL_Window *gWindow = NULL;
|
static SDL_Window *gWindow = NULL;
|
||||||
static SDL_Renderer *gRenderer = NULL;
|
static SDL_Renderer *gRenderer = NULL;
|
||||||
|
@ -167,7 +169,7 @@ startGame(void *unused)
|
||||||
if (gPlayer)
|
if (gPlayer)
|
||||||
player_destroy(gPlayer);
|
player_destroy(gPlayer);
|
||||||
gPlayer = player_create(WARRIOR, gRenderer);
|
gPlayer = player_create(WARRIOR, gRenderer);
|
||||||
mixer_play_music(GAME_MUSIC0 + (rand() % 3));
|
mixer_play_music(GAME_MUSIC0 + get_random(2));
|
||||||
resetGame();
|
resetGame();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -381,7 +383,7 @@ check_next_level(void)
|
||||||
}
|
}
|
||||||
if (tile->levelExit) {
|
if (tile->levelExit) {
|
||||||
mixer_play_effect(NEXT_LEVEL);
|
mixer_play_effect(NEXT_LEVEL);
|
||||||
mixer_play_music(GAME_MUSIC0 + (rand() % 3));
|
mixer_play_music(GAME_MUSIC0 + get_random(2));
|
||||||
++cLevel;
|
++cLevel;
|
||||||
resetGame();
|
resetGame();
|
||||||
}
|
}
|
||||||
|
|
|
@ -259,19 +259,19 @@ monster_update_stats_for_level(Monster *m, unsigned int level)
|
||||||
void
|
void
|
||||||
monster_drop_loot(Monster *monster, Map *map)
|
monster_drop_loot(Monster *monster, Map *map)
|
||||||
{
|
{
|
||||||
static unsigned int item_drop_chance = 3;
|
static unsigned int item_drop_chance = 1;
|
||||||
static unsigned int treasure_drop_chance = 2;
|
static unsigned int treasure_drop_chance = 1;
|
||||||
Item *item;
|
Item *item;
|
||||||
Item *items[2];
|
Item *items[2];
|
||||||
unsigned int item_count = 0;
|
unsigned int item_count = 0;
|
||||||
|
|
||||||
if ((rand() % treasure_drop_chance) == 0) {
|
if (get_random(treasure_drop_chance) == 0) {
|
||||||
item = item_builder_build_item(TREASURE, map->level);
|
item = item_builder_build_item(TREASURE, map->level);
|
||||||
item->sprite->pos = monster->sprite->pos;
|
item->sprite->pos = monster->sprite->pos;
|
||||||
items[item_count++] = item;
|
items[item_count++] = item;
|
||||||
}
|
}
|
||||||
if ((rand() % item_drop_chance) == 0) {
|
if (get_random(item_drop_chance) == 0) {
|
||||||
item = item_builder_build_item(rand() % TREASURE, map->level);
|
item = item_builder_build_item(get_random(TREASURE - 1), map->level);
|
||||||
item->sprite->pos = monster->sprite->pos;
|
item->sprite->pos = monster->sprite->pos;
|
||||||
items[item_count++] = item;
|
items[item_count++] = item;
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,6 +4,7 @@
|
||||||
#include "util.h"
|
#include "util.h"
|
||||||
#include "defines.h"
|
#include "defines.h"
|
||||||
#include "vector2d.h"
|
#include "vector2d.h"
|
||||||
|
#include "random.h"
|
||||||
|
|
||||||
typedef struct Particle_t {
|
typedef struct Particle_t {
|
||||||
Position pos;
|
Position pos;
|
||||||
|
@ -50,17 +51,17 @@ particle_engine_bloodspray(Position pos, Dimension dim, unsigned int count)
|
||||||
unsigned int mt, lt;
|
unsigned int mt, lt;
|
||||||
Particle *p;
|
Particle *p;
|
||||||
|
|
||||||
x = (rand() % dim.width) + pos.x;
|
x = get_random(dim.width) + pos.x;
|
||||||
y = (rand() % dim.height) + pos.y;
|
y = get_random(dim.height) + pos.y;
|
||||||
|
|
||||||
xv = (rand() % 200) - 100;
|
xv = get_random(200) - 100;
|
||||||
yv = (rand() % 200) - 100;
|
yv = get_random(200) - 100;
|
||||||
|
|
||||||
mt = (rand() % 10) + 10;
|
mt = get_random(10) + 10;
|
||||||
lt = (rand() % 120) + 60;
|
lt = get_random(120) + 60;
|
||||||
|
|
||||||
w = (rand() % 3) + 2;
|
w = get_random(3) + 2;
|
||||||
h = (rand() % 3) + 2;
|
h = get_random(3) + 2;
|
||||||
|
|
||||||
p = ec_malloc(sizeof(Particle));
|
p = ec_malloc(sizeof(Particle));
|
||||||
p->pos = (Position) { x, y };
|
p->pos = (Position) { x, y };
|
||||||
|
|
|
@ -10,6 +10,7 @@
|
||||||
#include "particle_engine.h"
|
#include "particle_engine.h"
|
||||||
#include "keyboard.h"
|
#include "keyboard.h"
|
||||||
#include "mixer.h"
|
#include "mixer.h"
|
||||||
|
#include "random.h"
|
||||||
|
|
||||||
#define ENGINEER_STATS { 12, 12, 5, 7, 2, 1, 1 }
|
#define ENGINEER_STATS { 12, 12, 5, 7, 2, 1, 1 }
|
||||||
#define MAGE_STATS { 12, 12, 5, 7, 2, 1, 1 }
|
#define MAGE_STATS { 12, 12, 5, 7, 2, 1, 1 }
|
||||||
|
@ -78,7 +79,7 @@ has_collided(Player *player, RoomMatrix *matrix)
|
||||||
unsigned int hit = stats_fight(&player->stats,
|
unsigned int hit = stats_fight(&player->stats,
|
||||||
&space->monster->stats);
|
&space->monster->stats);
|
||||||
|
|
||||||
mixer_play_effect(SWING0 + (rand() % 3));
|
mixer_play_effect(SWING0 + get_random(2));
|
||||||
|
|
||||||
monster_hit(space->monster, hit);
|
monster_hit(space->monster, hit);
|
||||||
|
|
||||||
|
@ -180,7 +181,7 @@ sip_health(Player *player)
|
||||||
if (player->potion_sips > 0) {
|
if (player->potion_sips > 0) {
|
||||||
--player->potion_sips;
|
--player->potion_sips;
|
||||||
++player->stats.hp;
|
++player->stats.hp;
|
||||||
mixer_play_effect(BUBBLE0 + (rand() % 3));
|
mixer_play_effect(BUBBLE0 + get_random(2));
|
||||||
gui_log("You take a sip of health potion");
|
gui_log("You take a sip of health potion");
|
||||||
} else {
|
} else {
|
||||||
gui_log("You have nothing to sip");
|
gui_log("You have nothing to sip");
|
||||||
|
|
|
@ -25,9 +25,9 @@ stats_fight(Stats *attacker, Stats *defender)
|
||||||
debug("Attacking: %d Defending: %d", atkRoll, defRoll);
|
debug("Attacking: %d Defending: %d", atkRoll, defRoll);
|
||||||
|
|
||||||
if (atkRoll > defRoll) {
|
if (atkRoll > defRoll) {
|
||||||
dmgRoll = (rand() % attacker->dmg) + 1;
|
dmgRoll = get_random(attacker->dmg - 1) + 1;
|
||||||
defender->hp -= dmgRoll;
|
|
||||||
if (critical)
|
if (critical)
|
||||||
|
dmgRoll = dmgRoll * 2;
|
||||||
defender->hp -= dmgRoll;
|
defender->hp -= dmgRoll;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue