forked from github/server
Regatta-Queste vergößert.
This commit is contained in:
parent
4a3b2b0a46
commit
ab43bf92e2
|
@ -1763,13 +1763,58 @@ fix_timeouts(void)
|
||||||
|
|
||||||
#include <modules/gmcmd.h>
|
#include <modules/gmcmd.h>
|
||||||
|
|
||||||
|
static int
|
||||||
|
resize_plane(struct plane * p, int radius)
|
||||||
|
{
|
||||||
|
region * center = findregion(p->minx+(p->maxx-p->minx)/2, p->miny+(p->maxy-p->miny)/2);
|
||||||
|
int minx = center->x - radius;
|
||||||
|
int maxx = center->x + radius;
|
||||||
|
int miny = center->y - radius;
|
||||||
|
int maxy = center->y + radius;
|
||||||
|
int x, y;
|
||||||
|
|
||||||
|
for (x=minx;x<=maxx;++x) {
|
||||||
|
for (y=miny;y<=maxy;++y) {
|
||||||
|
region * r = findregion(x, y);
|
||||||
|
if (r && rplane(r)!=p) break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (x<=maxx) return -1;
|
||||||
|
p->maxx=maxx;
|
||||||
|
p->maxy=maxy;
|
||||||
|
p->minx=minx;
|
||||||
|
p->miny=miny;
|
||||||
|
for (x=minx;x<=maxx;++x) {
|
||||||
|
for (y=miny;y<=maxy;++y) {
|
||||||
|
region * r = findregion(x, y);
|
||||||
|
if (r==NULL) {
|
||||||
|
r = new_region(minx+x, miny+y);
|
||||||
|
freset(r, RF_ENCOUNTER);
|
||||||
|
r->planep = p;
|
||||||
|
if (distance(r, center)==radius) {
|
||||||
|
terraform(r, T_FIREWALL);
|
||||||
|
} else if (distance(r, center)<radius) {
|
||||||
|
terraform(r, T_OCEAN);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
regatta_quest(void)
|
regatta_quest(void)
|
||||||
{
|
{
|
||||||
plane * p = gm_addplane(20, PFL_NORECRUITS, "Regatta");
|
plane * p = getplanebyname("Regatta");
|
||||||
region * center = findregion(p->minx+(p->maxx-p->minx)/2, p->miny+(p->maxy-p->miny)/2);
|
if (p) {
|
||||||
gm_addfaction("gregorjochmann@gmx.de", p, center);
|
return resize_plane(p, 40);
|
||||||
return 0;
|
} else {
|
||||||
|
region * center;
|
||||||
|
p = gm_addplane(40, PFL_NORECRUITS, "Regatta");
|
||||||
|
center = findregion(p->minx+(p->maxx-p->minx)/2, p->miny+(p->maxy-p->miny)/2);
|
||||||
|
gm_addfaction("gregorjochmann@gmx.de", p, center);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
|
@ -1812,7 +1857,7 @@ update_gmquests(void)
|
||||||
}
|
}
|
||||||
do_once("et02", secondfaction(f));
|
do_once("et02", secondfaction(f));
|
||||||
}
|
}
|
||||||
do_once("rq01", regatta_quest());
|
do_once("rq02", regatta_quest());
|
||||||
}
|
}
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
|
|
Loading…
Reference in New Issue