Browse Source

InitRndLocBigObj bin exact

pull/78/head
qndel 7 years ago
parent
commit
98ec9eeeff
  1. 37
      Source/objects.cpp

37
Source/objects.cpp

@ -481,31 +481,32 @@ void __fastcall InitRndLocObj(int min, int max, int objtype)
void __fastcall InitRndLocBigObj(int min, int max, int objtype)
{
int xp; // edi
int yp; // esi
int numobjs; // [esp+4h] [ebp-8h]
int i; // [esp+8h] [ebp-4h]
int i, numobjs, xp, yp, xpm1, xpp1, ypm2, ypm1, ypp1;
i = 0;
numobjs = min + random(140, max - min);
i = 0;
if (numobjs > 0) {
while (1) {
for (;;){
do {
xp = random(140, 80) + 16;
yp = random(140, 80) + 16;
} while (!RndLocOk(xp - 1, yp - 2));
if (RndLocOk(xp, yp - 2)) {
if (RndLocOk(xp + 1, yp - 2)) /* check */
{
if (RndLocOk(xp - 1, yp - 1)) {
if (RndLocOk(xp, yp - 1)) {
if (RndLocOk(xp + 1, yp - 1)) {
if (RndLocOk(xp - 1, yp)) {
xpm1 = xp - 1;
ypm2 = yp - 2;
} while (!RndLocOk(xpm1, ypm2));
if (RndLocOk(xp, ypm2)) {
xpp1 = xp + 1;
if (RndLocOk(xpp1, ypm2)){
ypm1 = yp - 1;
if (RndLocOk(xpm1, ypm1)) {
if (RndLocOk(xp, ypm1)) {
if (RndLocOk(xpp1, ypm1)) {
if (RndLocOk(xpm1, yp)) {
if (RndLocOk(xp, yp)) {
if (RndLocOk(xp + 1, yp)) {
if (RndLocOk(xp - 1, yp + 1)) {
if (RndLocOk(xp, yp + 1)) {
if (RndLocOk(xp + 1, yp + 1)) {
if (RndLocOk(xpp1, yp)) {
ypp1 = yp + 1;
if (RndLocOk(xpm1, ypp1)) {
if (RndLocOk(xp, ypp1)) {
if (RndLocOk(xpp1, ypp1)) {
AddObject(objtype, xp, yp);
if (++i >= numobjs)
break;

Loading…
Cancel
Save