TempleOSCDV5.01.ISO

This commit is contained in:
Terry A. Davis authored and minexew committed 2018-09-08 21:48:15 +02:00
1 parent f6eacf7744
commit 320c7ee98a
219 files changed
+5211 -4853

No files matched your search

+29 -29
View File
@@ -3,7 +3,7 @@ U0 InitDefines()
I64 w=GR_WIDTH,h=GR_HEIGHT-FONT_HEIGHT,cols,rows,
size=PopUpRangeI64(1,9,,"Size\n"),rad=16-size;
if (size<0) throw;
DefinePrint("NUM_UNITS","%d",4096/SqrI64(rad)&~1);
DefinePrint("UNITS_NUM","%d",4096/SqrI64(rad)&~1);
DefinePrint("CIRCLE_RAD","%d",rad);
DefinePrint("MOVE_CIRCLES","%d",40/rad);
@@ -19,7 +19,7 @@ class Unit
{
I64 num,x,y,player,link,color;
Bool alive,king;
} u[NUM_UNITS];
} u[UNITS_NUM];
CDC *map_dc;
I64 cur_player,num_alive[2],start_x,start_y,end_x,end_y;
@@ -68,12 +68,12 @@ U0 DrawIt(CTask *task,CDC *dc)
}
GrPrint(dc,2,2,"Player %d",cur_player+1);
for (i=0;i<NUM_UNITS;i++)
for (i=0;i<UNITS_NUM;i++)
if (u[i].alive) {
dc->color=u[i].color;
GrFloodFill(dc,u[i].x,u[i].y);
}
for (i=0;i<NUM_UNITS;i++)
for (i=0;i<UNITS_NUM;i++)
if (u[i].alive && !u[i].king) {
dc->color=BLACK;
GrLine(dc,u[i].x,u[i].y,u[u[i].link].x,u[u[i].link].y);
@@ -98,9 +98,9 @@ U0 DrawIt(CTask *task,CDC *dc)
Unit *UnitFind(I64 x,I64 y,I64 player)
{
I64 i,dd,best_dd=MAX_I64;
I64 i,dd,best_dd=I64_MAX;
Unit *res=NULL;
for (i=0;i<NUM_UNITS;i++) {
for (i=0;i<UNITS_NUM;i++) {
if (u[i].player==player && u[i].alive) {
dd=SqrI64(u[i].x-x)+SqrI64(u[i].y-y);
if (dd<best_dd) {
@@ -116,7 +116,7 @@ U0 KillsChk(I64 x1,I64 y1,I64 player)
{
I64 i,j,x2,y2,dd;
Bool found;
for (i=0;i<NUM_UNITS;i++) {
for (i=0;i<UNITS_NUM;i++) {
if (u[i].player!=player && u[i].alive && !u[i].king) {
x2=(u[i].x+u[u[i].link].x)>>1;
y2=(u[i].y+u[u[i].link].y)>>1;
@@ -127,7 +127,7 @@ U0 KillsChk(I64 x1,I64 y1,I64 player)
num_alive[u[i].player]--;
do {
found=FALSE;
for (j=0;j<NUM_UNITS;j++)
for (j=0;j<UNITS_NUM;j++)
if (u[j].alive && u[j].player!=player && !u[j].king &&
!u[u[j].link].alive) {
found=TRUE;
@@ -208,17 +208,17 @@ U0 Init()
map_dc=DrawHexMap(&w,&h);
cur_player=0;
for (i=0;i<NUM_UNITS/2;i++) {
for (i=0;i<UNITS_NUM/2;i++) {
u[i].num=i;
u[i+NUM_UNITS/2].num=i+NUM_UNITS/2;
u[i+UNITS_NUM/2].num=i+UNITS_NUM/2;
ti_restart:
u[i].y=FloorI64(RandU32%h,CIRCLE_RAD*2)+CIRCLE_RAD;
u[i+NUM_UNITS/2].y=h-1-u[i].y;
u[i+UNITS_NUM/2].y=h-1-u[i].y;
j1=u[i].y/(CIRCLE_RAD*2);
j2=u[i+NUM_UNITS/2].y/(CIRCLE_RAD*2);
j2=u[i+UNITS_NUM/2].y/(CIRCLE_RAD*2);
u[i].y+=BORDER_Y;
u[i+NUM_UNITS/2].y+=BORDER_Y;
u[i+UNITS_NUM/2].y+=BORDER_Y;
if (!i) {
u[i].x=CIRCLE_RAD;
@@ -226,40 +226,40 @@ ti_restart:
goto ti_restart;
} else
u[i].x=FloorI64(RandU32%((w-CIRCLE_RAD*2*2)/2),CIRCLE_RAD*2)+CIRCLE_RAD;
u[i+NUM_UNITS/2].x=w-1-u[i].x;
u[i+UNITS_NUM/2].x=w-1-u[i].x;
if (j1&1)
u[i].x+=CIRCLE_RAD;
if (j2&1)
u[i+NUM_UNITS/2].x+=CIRCLE_RAD;
u[i+UNITS_NUM/2].x+=CIRCLE_RAD;
u[i].x+=BORDER_X;
u[i+NUM_UNITS/2].x+=BORDER_X;
u[i+UNITS_NUM/2].x+=BORDER_X;
S2W(&u[i].x,&u[i].y);
S2W(&u[i+NUM_UNITS/2].x,&u[i+NUM_UNITS/2].y);
S2W(&u[i+UNITS_NUM/2].x,&u[i+UNITS_NUM/2].y);
u[i].player=0;
u[i+NUM_UNITS/2].player=1;
u[i+UNITS_NUM/2].player=1;
u[i].alive=TRUE;
u[i+NUM_UNITS/2].alive=TRUE;
u[i+UNITS_NUM/2].alive=TRUE;
if (!i) {
u[i].color=LTCYAN;
u[i+NUM_UNITS/2].color=LTPURPLE;
u[i+UNITS_NUM/2].color=LTPURPLE;
u[i].king=TRUE;
u[i+NUM_UNITS/2].king=TRUE;
u[i+UNITS_NUM/2].king=TRUE;
} else {
u[i].color=CYAN;
u[i+NUM_UNITS/2].color=PURPLE;
u[i+UNITS_NUM/2].color=PURPLE;
u[i].king=FALSE;
u[i+NUM_UNITS/2].king=FALSE;
u[i+UNITS_NUM/2].king=FALSE;
}
}
for (i=0;i<NUM_UNITS/2;i++) {
for (i=0;i<UNITS_NUM/2;i++) {
if (!u[i].king) {
best_dd=MAX_I64;
for (j=0;j<NUM_UNITS/2;j++) {
best_dd=I64_MAX;
for (j=0;j<UNITS_NUM/2;j++) {
if (i!=j) {
dd=SqrI64(u[i].x-u[j].x)+SqrI64(u[i].y-u[j].y);
if (u[j].x<=u[i].x && dd<best_dd) {
@@ -269,11 +269,11 @@ ti_restart:
}
}
u[i].link=best;
u[i+NUM_UNITS/2].link=best+NUM_UNITS/2;
u[i+UNITS_NUM/2].link=best+UNITS_NUM/2;
}
}
num_alive[0]=NUM_UNITS/2;
num_alive[1]=NUM_UNITS/2;
num_alive[0]=UNITS_NUM/2;
num_alive[1]=UNITS_NUM/2;
}
U0 CleanUp()