Initial (manual) import
This commit is contained in:
1 parent
f39611c506
commit
895fe109de
661 files changed
+245862
No files matched your search
@@ -0,0 +1,214 @@
|
||||
U0 AnimationDelaySet()
|
||||
{
|
||||
animation_delay=PopUpRangeF64(0,100,25,"%3f% %%","Animation Delay\n")/100;
|
||||
}
|
||||
|
||||
U0 TurnNew()
|
||||
{
|
||||
I64 i,j;
|
||||
for (j=0;j<2;j++)
|
||||
for (i=0;i<UNITS_NUM;i++) {
|
||||
units[j][i].remaining_movement=units[j][i].movement;
|
||||
units[j][i].fired=FALSE;
|
||||
}
|
||||
phase=PHASE_START;
|
||||
moving_unit=NULL;
|
||||
|
||||
SleepUntil(msg_off_timeout);
|
||||
msg_off_timeout=cnts.jiffies+JIFFY_FREQ*2*animation_delay+1;
|
||||
Snd(74);
|
||||
StrPrint(msg_buf,"Turn %d",++turn);
|
||||
VRSetUp(0);
|
||||
VRSetUp(1);
|
||||
VisRecalc(VR_ALL_UNITS);
|
||||
cur_player=(turn&1)^1;
|
||||
enemy_player=cur_player^1;
|
||||
}
|
||||
|
||||
U0 PhaseNew()
|
||||
{
|
||||
cur_player^=1;
|
||||
enemy_player=cur_player^1;
|
||||
if (++phase>=PHASE_END) {
|
||||
IndirectResolveAll;
|
||||
TurnNew;
|
||||
}
|
||||
|
||||
SleepUntil(msg_off_timeout);
|
||||
msg_off_timeout=cnts.jiffies+JIFFY_FREQ*2*animation_delay+1;
|
||||
Snd(74);
|
||||
switch (phase) {
|
||||
case PHASE_INDIRECT0:
|
||||
case PHASE_INDIRECT1:
|
||||
StrPrint(msg_buf,"Player %d Artillery Plot",cur_player+1);
|
||||
break;
|
||||
case PHASE_MOVE0:
|
||||
case PHASE_MOVE1:
|
||||
StrPrint(msg_buf,"Player %d Move",cur_player+1);
|
||||
break;
|
||||
case PHASE_DIRECT0:
|
||||
case PHASE_DIRECT1:
|
||||
StrPrint(msg_buf,"Player %d Fire",cur_player+1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
U0 CharDo(U8 ch)
|
||||
{
|
||||
I64 old_inhibit,old_draw_it;
|
||||
Bool old_cursor;
|
||||
switch (ch) {
|
||||
case CH_ESC:
|
||||
case CH_SHIFT_ESC:
|
||||
throw('ExitGame',TRUE);
|
||||
case CH_SPACE:
|
||||
throw('PhaseOvr',TRUE);
|
||||
case '\n':
|
||||
throw('NewGame',TRUE);
|
||||
case '1':
|
||||
ViewPlayerSet(0);
|
||||
break;
|
||||
case '2':
|
||||
ViewPlayerSet(1);
|
||||
break;
|
||||
case 'c':
|
||||
old_draw_it=Fs->draw_it;
|
||||
old_inhibit=Fs->win_inhibit;
|
||||
Fs->draw_it=Fs->next_settings->draw_it;
|
||||
Fs->win_inhibit=WIG_USER_TASK_DFT;
|
||||
old_cursor=DocCursor(ON);
|
||||
DocBottom;
|
||||
"\n$$GREEN$$<SHIFT-ESC>$$FG$$ to return to game.\n";
|
||||
View;
|
||||
DocBottom;
|
||||
DocCursor(old_cursor);
|
||||
Fs->win_inhibit=old_inhibit;
|
||||
Fs->draw_it=old_draw_it;
|
||||
break;
|
||||
case 'd':
|
||||
AnimationDelaySet;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
U0 UserChk()
|
||||
{
|
||||
I64 ch;
|
||||
if (!alive_cnt[0] || !alive_cnt[1])
|
||||
throw('GameOver',TRUE);
|
||||
if (ch=ScanChar)
|
||||
CharDo(ch);
|
||||
}
|
||||
|
||||
U0 TaskEndCB()
|
||||
{
|
||||
Snd;
|
||||
progress4=progress4_max=progress1=progress1_max=0;
|
||||
Exit;
|
||||
}
|
||||
|
||||
I64 PhaseDo()
|
||||
{
|
||||
I64 res='ExitGame';
|
||||
PhaseNew;
|
||||
try {
|
||||
if (phase&~1==PHASE_INDIRECT)
|
||||
Call(player_indirect[cur_player]);
|
||||
else if (phase&~1==PHASE_MOVE)
|
||||
Call(player_move[cur_player]);
|
||||
else
|
||||
Call(player_direct[cur_player]);
|
||||
} catch {
|
||||
res=Fs->except_ch;
|
||||
Fs->catch_except=TRUE;
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
U0 ToTheFront()
|
||||
{
|
||||
I64 res,ch;
|
||||
map_dc=DCNew(MAP_WIDTH,MAP_HEIGHT);
|
||||
|
||||
SettingsPush; //See $LK,"SettingsPush",A="MN:SettingsPush"$
|
||||
Cd(__DIR__);
|
||||
Fs->win_inhibit|=WIF_SELF_MS_L|WIF_SELF_MS_R|WIG_DBL_CLICK;
|
||||
|
||||
MenuPush(
|
||||
"File {"
|
||||
" Abort(,CH_SHIFT_ESC);"
|
||||
" Exit(,CH_ESC);"
|
||||
"}"
|
||||
"Play {"
|
||||
" EndPhase(,CH_SPACE);"
|
||||
" Restart(,'\n');"
|
||||
"}"
|
||||
"View {"
|
||||
" Player1(,'1');"
|
||||
" Player2(,'2');"
|
||||
" OddsCalculations(,'c');"
|
||||
" LOS(,0,SCF_SHIFT);"
|
||||
"}"
|
||||
"Settings {"
|
||||
" AnimationDelay(,'d');"
|
||||
"}"
|
||||
);
|
||||
|
||||
AutoComplete;
|
||||
WinBorder;
|
||||
WinMax;
|
||||
DocCursor;
|
||||
DocMax;
|
||||
Init;
|
||||
PlayerPick("AIs",0);
|
||||
PlayerPick("AIs",1);
|
||||
|
||||
PopUpOk("$$PURPLE$$$$TX+CX,\"ToTheFront\"$$$$FG$$\n\n"
|
||||
"$$GREEN$${Left-click}$$FG$$ to move or fire units.\n"
|
||||
"$$GREEN$$<SPACE>$$FG$$\tor $$GREEN$${Right-click}$$FG$$ to end phase.\n"
|
||||
"$$GREEN$$<SHIFT>$$FG$$\tto show line-of-sight.\n"
|
||||
"$$GREEN$$<ENTER>$$FG$$\tto start new game.\n"
|
||||
"$$GREEN$$ 1$$FG$$\tPlayer 1 view.\n"
|
||||
"$$GREEN$$ 2$$FG$$\tPlayer 2 view.\n"
|
||||
"$$GREEN$$ c$$FG$$\tView odds calculations.\n"
|
||||
"$$GREEN$$ d$$FG$$\tSet animation delay.");
|
||||
Fs->task_end_cb=&TaskEndCB; //<CTRL-ALT-x>
|
||||
Fs->draw_it=&DrawIt;
|
||||
try {
|
||||
do {
|
||||
res=PhaseDo;
|
||||
if (res=='GameOver') {
|
||||
while (TRUE) {
|
||||
msg_off_timeout=0;
|
||||
StrCpy(msg_buf,"Game Over");
|
||||
Snd;
|
||||
ch=GetChar(,FALSE);
|
||||
if (ch=='\n') {
|
||||
CleanUp;
|
||||
Init;
|
||||
break;
|
||||
} else if (ch==CH_ESC || ch==CH_SHIFT_ESC) {
|
||||
res='ExitGame';
|
||||
break;
|
||||
} else if (ch=='1')
|
||||
ViewPlayerSet(0);
|
||||
else if (ch=='2')
|
||||
ViewPlayerSet(1);
|
||||
else if (ch=='d')
|
||||
AnimationDelaySet;
|
||||
}
|
||||
} else if (res=='NewGame') {
|
||||
CleanUp;
|
||||
Init;
|
||||
}
|
||||
} while (res!='ExitGame');
|
||||
} catch
|
||||
PutExcept;
|
||||
ProgressBarsRst;
|
||||
|
||||
SettingsPop;
|
||||
MenuPop;
|
||||
DCDel(map_dc);
|
||||
CleanUp;
|
||||
Seed;
|
||||
}
|
||||
Reference in new issue
Block a user