Replaced rrand function with RANDRANGE macro.
This commit is contained in:
parent
b00bf9d7b2
commit
576d254e4a
|
@ -50,7 +50,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
#include "init.h"
|
||||
#include "intermission.h"
|
||||
#include "loadSave.h"
|
||||
#include "math.h"
|
||||
#include "messages.h"
|
||||
#include "misc.h"
|
||||
#include "missions.h"
|
||||
|
|
|
@ -831,8 +831,8 @@ bool alien_add()
|
|||
if (aliens[index].classDef == CD_ESCORT)
|
||||
aliens[index].shield = 50;
|
||||
|
||||
aliens[index].dx = rrand(-2, 2);
|
||||
aliens[index].dy = rrand(-2, 2);
|
||||
aliens[index].dx = RANDRANGE(-2, 2);
|
||||
aliens[index].dy = RANDRANGE(-2, 2);
|
||||
|
||||
aliens[index].ammo[0] = 0;
|
||||
|
||||
|
@ -915,16 +915,8 @@ void alien_addFriendly(int type)
|
|||
aliens[type].owner = &aliens[type];
|
||||
aliens[type].target = &aliens[type];
|
||||
aliens[type].active = true;
|
||||
|
||||
if (rand() % 2 == 0)
|
||||
aliens[type].x = rrand((int)(screen->w / 2), (int)(screen->w / 2) + 150);
|
||||
else
|
||||
aliens[type].x = rrand((int)(screen->w / 2) - 150, (int)(screen->w / 2));
|
||||
|
||||
if (rand() % 2 == 0)
|
||||
aliens[type].y = rrand((int)(screen->h / 2), (int)(screen->h / 2) + 150);
|
||||
else
|
||||
aliens[type].y = rrand((int)(screen->h / 2) - 150, (int)(screen->h / 2));
|
||||
aliens[type].x = RANDRANGE((screen->w / 2) - 150, (screen->w / 2) + 150);
|
||||
aliens[type].y = RANDRANGE((screen->h / 2) - 150, (screen->h / 2) + 150);
|
||||
|
||||
if (type == ALIEN_PHOEBE)
|
||||
aliens[type].classDef = CD_PHOEBE;
|
||||
|
@ -940,19 +932,19 @@ void alien_addFriendly(int type)
|
|||
bool alien_place(object *alien)
|
||||
{
|
||||
if (rand() % 2 == 0)
|
||||
alien->x = rrand(screen->w, screen->w * 2);
|
||||
alien->x = RANDRANGE(screen->w, screen->w * 2);
|
||||
else
|
||||
alien->x = rrand(-screen->w, 0);
|
||||
alien->x = RANDRANGE(-screen->w, 0);
|
||||
|
||||
if (rand() % 2 == 0)
|
||||
alien->y = rrand(screen->h, screen->h * 2);
|
||||
alien->y = RANDRANGE(screen->h, screen->h * 2);
|
||||
else
|
||||
alien->y = rrand(-screen->h, 0);
|
||||
alien->y = RANDRANGE(-screen->h, 0);
|
||||
|
||||
if (currentGame.area == 24)
|
||||
{
|
||||
alien->x = screen->w;
|
||||
alien->y = rrand(screen->h / 3, (2 * screen->h) / 3);
|
||||
alien->y = RANDRANGE(screen->h / 3, (2 * screen->h) / 3);
|
||||
}
|
||||
|
||||
for (int i = 0 ; i < ALIEN_MAX ; i++)
|
||||
|
|
|
@ -55,7 +55,7 @@ void bullet_add(object *theWeapon, object *attacker, int y, int dy)
|
|||
|
||||
if (bullet->flags & WF_VARIABLE_SPEED)
|
||||
{
|
||||
bullet->dx = rrand(100, 200);
|
||||
bullet->dx = RANDRANGE(100, 200);
|
||||
bullet->dx /= 10;
|
||||
if (attacker->face == 1)
|
||||
bullet->dx = 0 - bullet->dx;
|
||||
|
@ -65,7 +65,7 @@ void bullet_add(object *theWeapon, object *attacker, int y, int dy)
|
|||
|
||||
if (bullet->flags & WF_SCATTER)
|
||||
{
|
||||
bullet->dy = rrand(-200, 200);
|
||||
bullet->dy = RANDRANGE(-200, 200);
|
||||
if (bullet->dy != 0)
|
||||
bullet->dy /= 200;
|
||||
}
|
||||
|
@ -127,8 +127,8 @@ void bullet_add(object *theWeapon, object *attacker, int y, int dy)
|
|||
|
||||
if (attacker->classDef == CD_ASTEROID)
|
||||
{
|
||||
bullet->dx = rrand(-20, 20);
|
||||
bullet->dy = rrand(-20, 20);
|
||||
bullet->dx = RANDRANGE(-20, 20);
|
||||
bullet->dy = RANDRANGE(-20, 20);
|
||||
bullet->image[0] = shape[4];
|
||||
}
|
||||
|
||||
|
@ -267,8 +267,8 @@ void doBullets()
|
|||
{
|
||||
for (int i = 0 ; i < bullet->damage * 2 ; i++)
|
||||
blit(bullet->image[0],
|
||||
(int)(bullet->x - rrand(-(bullet->damage * 2 / 3), 0)),
|
||||
(int)(bullet->y + rrand(-3, 3)));
|
||||
(int)(bullet->x - RANDRANGE(-(bullet->damage * 2 / 3), 0)),
|
||||
(int)(bullet->y + RANDRANGE(-3, 3)));
|
||||
}
|
||||
|
||||
blit(bullet->image[0], (int)bullet->x, (int)bullet->y);
|
||||
|
@ -353,8 +353,8 @@ void doBullets()
|
|||
bullet->shield = 0;
|
||||
audio_playSound(SFX_EXPLOSION, bullet->x);
|
||||
for (int i = 0 ; i < 10 ; i++)
|
||||
addExplosion(bullet->x + rrand(-35, 35),
|
||||
bullet->y + rrand(-35, 35),
|
||||
addExplosion(bullet->x + RANDRANGE(-35, 35),
|
||||
bullet->y + RANDRANGE(-35, 35),
|
||||
E_BIG_EXPLOSION);
|
||||
}
|
||||
}
|
||||
|
@ -405,8 +405,8 @@ void doBullets()
|
|||
bullet->shield = 0;
|
||||
audio_playSound(SFX_EXPLOSION, bullet->x);
|
||||
for (int i = 0 ; i < 10 ; i++)
|
||||
addExplosion(bullet->x + rrand(-35, 35),
|
||||
bullet->y + rrand(-35, 35), E_BIG_EXPLOSION);
|
||||
addExplosion(bullet->x + RANDRANGE(-35, 35),
|
||||
bullet->y + RANDRANGE(-35, 35), E_BIG_EXPLOSION);
|
||||
}
|
||||
}
|
||||
else
|
||||
|
@ -443,8 +443,8 @@ void doBullets()
|
|||
theCargo->active = false;
|
||||
audio_playSound(SFX_EXPLOSION, theCargo->x);
|
||||
for (int i = 0 ; i < 10 ; i++)
|
||||
addExplosion(theCargo->x + rrand(-15, 15),
|
||||
theCargo->y + rrand(-15, 15),
|
||||
addExplosion(theCargo->x + RANDRANGE(-15, 15),
|
||||
theCargo->y + RANDRANGE(-15, 15),
|
||||
E_BIG_EXPLOSION);
|
||||
updateMissionRequirements(M_PROTECT_PICKUP,
|
||||
P_CARGO, 1);
|
||||
|
@ -465,8 +465,8 @@ void doBullets()
|
|||
{
|
||||
audio_playSound(SFX_EXPLOSION, bullet->x);
|
||||
for (int i = 0 ; i < 10 ; i++)
|
||||
addExplosion(bullet->x + rrand(-35, 35),
|
||||
bullet->y + rrand(-35, 35), E_BIG_EXPLOSION);
|
||||
addExplosion(bullet->x + RANDRANGE(-35, 35),
|
||||
bullet->y + RANDRANGE(-35, 35), E_BIG_EXPLOSION);
|
||||
|
||||
if (checkPlayerShockDamage(bullet->x, bullet->y))
|
||||
setInfoLine("Warning: Missile Shockwave Damage!!",
|
||||
|
|
|
@ -136,11 +136,11 @@ void addCollectable(float x, float y, int type, int value, int life)
|
|||
collectable->x = x;
|
||||
collectable->y = y;
|
||||
|
||||
collectable->dx = rrand(-100, 100);
|
||||
collectable->dx = RANDRANGE(-100, 100);
|
||||
if (collectable->dx != 0)
|
||||
collectable->dx /= 100;
|
||||
|
||||
collectable->dy = rrand(-100, 100);
|
||||
collectable->dy = RANDRANGE(-100, 100);
|
||||
if (collectable->dy != 0)
|
||||
collectable->dy /= 100;
|
||||
|
||||
|
|
|
@ -28,7 +28,7 @@ void addDebris(int x, int y, int amount)
|
|||
|
||||
object *debris;
|
||||
|
||||
amount = rrand(3, rand() % amount);
|
||||
amount = RANDRANGE(3, rand() % amount);
|
||||
LIMIT(amount, 3, 8);
|
||||
|
||||
for (int i = 0 ; i < amount ; i++)
|
||||
|
@ -39,10 +39,10 @@ void addDebris(int x, int y, int amount)
|
|||
debris->x = x;
|
||||
debris->y = y;
|
||||
|
||||
debris->thinktime = rrand(60, 180);
|
||||
debris->thinktime = RANDRANGE(60, 180);
|
||||
|
||||
debris->dx = rrand(-500, 500);
|
||||
debris->dy = rrand(-500, 500);
|
||||
debris->dx = RANDRANGE(-500, 500);
|
||||
debris->dy = RANDRANGE(-500, 500);
|
||||
|
||||
if (debris->dx != 0)
|
||||
debris->dx /= 100;
|
||||
|
@ -74,7 +74,7 @@ void doDebris()
|
|||
debris->x += debris->dx;
|
||||
debris->y += debris->dy;
|
||||
|
||||
addExplosion(debris->x + rrand(-10, 10), debris->y + rrand(-10, 10), E_BIG_EXPLOSION);
|
||||
addExplosion(debris->x + RANDRANGE(-10, 10), debris->y + RANDRANGE(-10, 10), E_BIG_EXPLOSION);
|
||||
}
|
||||
|
||||
if (debris->thinktime < 1)
|
||||
|
|
|
@ -29,6 +29,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
#define WRAP_ADD(x, y, a, b) x = (((x) + (y)) + \
|
||||
((x) + (y) < (a) ? ((b) - (a)) : 0) + \
|
||||
((x) + (y) > (b) ? ((a) - (b)) : 0))
|
||||
#define RANDRANGE(x, y) (((x) < (y)) ? ((x) + (rand() % (1 + (y) - (x)))) : (x))
|
||||
|
||||
// ALL
|
||||
#define NONE 0
|
||||
|
|
|
@ -53,7 +53,7 @@ void addEngine(object *craft)
|
|||
float x = craft->x + (craft->engineX * craft->face);
|
||||
float y = craft->y + craft->engineY;
|
||||
|
||||
y += rrand(-3, 3);
|
||||
y += RANDRANGE(-3, 3);
|
||||
addExplosion(x, y, E_TINY_EXPLOSION);
|
||||
}
|
||||
|
||||
|
|
|
@ -920,7 +920,13 @@ int mainGameLoop()
|
|||
if ((currentGame.area == 24) && (engine.addAliens > -1))
|
||||
{
|
||||
if ((rand() % 10) == 0)
|
||||
addCollectable(rrand(800, 100), player.y, P_MINE, 25,
|
||||
// XXX: The originally specified range for x was [800, 100],
|
||||
// which with the original rrand function caused the result
|
||||
// returned to be `800 + rand() % -699`. Clearly a mistake,
|
||||
// but I'm not entirely sure what the original intention was.
|
||||
// For now, I've set the range to [800, 1500], which
|
||||
// approximately replicates the original's results.
|
||||
addCollectable(RANDRANGE(800, 1500), player.y, P_MINE, 25,
|
||||
180 + rand() % 60);
|
||||
}
|
||||
|
||||
|
|
|
@ -628,8 +628,13 @@ int galaxyMap()
|
|||
|
||||
if (rand() % 1000 < 2)
|
||||
{
|
||||
engine.ssx = rrand(100, 100);
|
||||
engine.ssy = rrand(100, 100);
|
||||
// XXX: This code originally had the range set to [100, 100],
|
||||
// which effectively always caused the star speed to be set to
|
||||
// 1. I don't think this was the intention, so I changed the
|
||||
// minimum from 100 to -100, which is what I think was probably
|
||||
// intended.
|
||||
engine.ssx = RANDRANGE(-100, 100);
|
||||
engine.ssy = RANDRANGE(-100, 100);
|
||||
engine.ssx /= 100;
|
||||
engine.ssy /= 100;
|
||||
}
|
||||
|
|
37
src/math.h
37
src/math.h
|
@ -1,37 +0,0 @@
|
|||
/*
|
||||
Copyright (C) 2003 Parallel Realities
|
||||
Copyright (C) 2011 Guus Sliepen
|
||||
Copyright (C) 2015 Julian Marchant
|
||||
|
||||
This program is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License
|
||||
as published by the Free Software Foundation; either version 3
|
||||
of the License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifndef MATH_H
|
||||
#define MATH_H
|
||||
|
||||
static inline int rrand(int min, int max)
|
||||
{
|
||||
int r = min;
|
||||
|
||||
max++;
|
||||
|
||||
if ((max - min) == 0)
|
||||
return min;
|
||||
|
||||
r += rand() % (max - min);
|
||||
|
||||
return r;
|
||||
}
|
||||
|
||||
#endif
|
|
@ -308,7 +308,8 @@ void doPlayer()
|
|||
blit(shipShape[shapeToUse], (int)player.x, (int)player.y);
|
||||
if ((player.maxShield > 1) && (player.shield <= engine.lowShield) &&
|
||||
(rand() % 5 < 1))
|
||||
addExplosion(player.x + rrand(-10, 10), player.y + rrand(-10, 20), E_SMOKE);
|
||||
addExplosion(player.x + RANDRANGE(-10, 10),
|
||||
player.y + RANDRANGE(-10, 20), E_SMOKE);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -332,7 +333,8 @@ void doPlayer()
|
|||
|
||||
engine.keyState[KEY_UP] = engine.keyState[KEY_DOWN] = engine.keyState[KEY_LEFT] = engine.keyState[KEY_RIGHT] = 0;
|
||||
if ((rand() % 3) == 0)
|
||||
addExplosion(player.x + rrand(-10, 10), player.y + rrand(-10, 10), E_BIG_EXPLOSION);
|
||||
addExplosion(player.x + RANDRANGE(-10, 10),
|
||||
player.y + RANDRANGE(-10, 10), E_BIG_EXPLOSION);
|
||||
if (player.shield == -99)
|
||||
addDebris((int)player.x, (int)player.y, player.maxShield);
|
||||
}
|
||||
|
|
|
@ -103,8 +103,10 @@ void checkScriptEvents()
|
|||
else
|
||||
{
|
||||
aliens[gameEvent[i].entity].active = true;
|
||||
aliens[gameEvent[i].entity].x = rrand((int)player.x + 400, (int)player.x + 800);
|
||||
aliens[gameEvent[i].entity].y = rrand((int)player.y - 400, (int)player.y + 800);
|
||||
aliens[gameEvent[i].entity].x = ((int)player.x +
|
||||
RANDRANGE(400, 800));
|
||||
aliens[gameEvent[i].entity].y = ((int)player.y +
|
||||
RANDRANGE(-400, 800));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -649,8 +649,8 @@ void gameover()
|
|||
updateScreen();
|
||||
|
||||
unBuffer();
|
||||
x = ((screen->w - gameover->w) / 2) - rrand(-2, 2);
|
||||
y = ((screen->h - gameover->h) / 2) - rrand(-2, 2);
|
||||
x = ((screen->w - gameover->w) / 2) - RANDRANGE(-2, 2);
|
||||
y = ((screen->h - gameover->h) / 2) - RANDRANGE(-2, 2);
|
||||
blit(gameover, x, y);
|
||||
|
||||
delayFrame();
|
||||
|
|
Loading…
Reference in New Issue