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