InitRndLocBigObj bin exact
This commit is contained in:
parent
2ccc1d7465
commit
98ec9eeeff
1 changed files with 19 additions and 18 deletions
|
|
@ -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…
Add table
Add a link
Reference in a new issue