From f94cb09f2a8565d708de9ea7c14d1393ebb0f26c Mon Sep 17 00:00:00 2001 From: nikakd Date: Sun, 20 Feb 2011 14:48:19 +0000 Subject: [PATCH] *** empty log message *** --- ChangeLog | 10 ++++++++ place.c | 53 ++++++++++++++++++++++++++++++++++++------- prest.c | 68 ++++++++++++++++++++++++++++--------------------------- rdplex.c | 48 +++++++++++++++++++-------------------- version.c | 2 +- 5 files changed, 115 insertions(+), 66 deletions(-) diff --git a/ChangeLog b/ChangeLog index 6174e0a..d5a44b7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +2011-02-20 Nicolas Laplume + + * V257 + + * Fixed bug in some failures in Lunar Missions (from V252) + + * place.c: Changed the Prestige First screen in Mission Review to show also Prestige Seconds + + * prest.c: Reduced penalty in manned missions when no-one dies to -7 + 2011-02-17 Nicolas Laplume * V256 diff --git a/place.c b/place.c index 77e0224..3634ae0 100644 --- a/place.c +++ b/place.c @@ -613,7 +613,7 @@ void writePrestigeFirst(char index) { ///index==plr char w=0,i,draw=0; extern char PF[29][40]; for (i=0;i<28;i++) - { + { //Preestige First if (w<6 && Data->Prestige[i].Place==index && Data->PD[index][i]==0) { if (draw==0) { @@ -635,19 +635,56 @@ void writePrestigeFirst(char index) { ///index==plr Data->PD[index][i]=1; switch (i) { - case 8: if (Data->Prestige[9].Place==index && Data->PD[index][9]==0) - PrintAt(0,0,", E"); + case 8: if (Data->Prestige[9].Place==index && Data->PD[index][9]==0) + {PrintAt(0,0,", E"); Data->PD[index][9]=1;} case 9: if (Data->Prestige[10].Place==index && Data->PD[index][10]==0) - PrintAt(0,0,", D"); - case 10: if (Data->Prestige[11].Place==index && Data->PD[index][11]==0) - PrintAt(0,0,", C"); - case 11: if (Data->Prestige[12].Place==index && Data->PD[index][12]==0) - PrintAt(0,0,", B"); + {PrintAt(0,0,", D"); Data->PD[index][10]=1;} + case 10:if (Data->Prestige[11].Place==index && Data->PD[index][11]==0) + {PrintAt(0,0,", C"); Data->PD[index][11]=1;} + case 11:if (Data->Prestige[12].Place==index && Data->PD[index][12]==0) + {PrintAt(0,0,", B"); Data->PD[index][12]=1; i=11;} case 12: i=12; default: break; } } } + for (i=0;i<28;i++) + { //Prestige Seconds + if (w<6 && Data->Prestige[i].mPlace==index && Data->PD[index][i]==0) + { + if (draw==0) { + ShBox(6,170,314,197); + RectFill(10,173,310,194,7);InBox(9,172,311,195); + ShBox(216,156,314,172); + RectFill(220,160,310,168,9);InBox(219,159,311,169); + RectFill(216,171,216,171,3); + RectFill(312,172,313,172,3); + grSetColor(11); + PrintAt(224,166,"PRESTIGE FIRSTS"); + draw=1; + } + grSetColor(11); + PrintAt( w>2?170:14, + w>2? 179+(w-3)*7:179+w*7, + &PF[i][0]); + ++w; + Data->PD[index][i]=1; + switch (i) + { + case 8: if (Data->Prestige[9].mPlace==index && Data->PD[index][9]==0) + {PrintAt(0,0,", E"); Data->PD[index][9]=1;} + case 9: if (Data->Prestige[10].mPlace==index && Data->PD[index][10]==0) + {PrintAt(0,0,", D"); Data->PD[index][10]=1;} + case 10:if (Data->Prestige[11].mPlace==index && Data->PD[index][11]==0) + {PrintAt(0,0,", C"); Data->PD[index][11]=1;} + case 11:if (Data->Prestige[12].mPlace==index && Data->PD[index][12]==0) + {PrintAt(0,0,", B"); Data->PD[index][12]=1; i=11;} + case 12: i=12; + default: break; + } + PrintAt(0,0," (SCD)"); + } + } } diff --git a/prest.c b/prest.c index 2124e59..a1fb2b0 100644 --- a/prest.c +++ b/prest.c @@ -37,7 +37,7 @@ void Set_Dock(char plr, char total) { int i; for (i=0;iPrestige[24].Goal[plr]++;return;}; } return; @@ -101,7 +101,7 @@ int PrestMap(int val) { switch (val) { - case ORBSAT: + case ORBSAT: return MILE_OSAT; case MANSPACE: return MILE_MAN; @@ -172,7 +172,7 @@ PrestMin(char plr) /** Returns the amount of prestige added - * + * * \note Assumes that the Mis Structure is Loaded */ int PrestCheck(char plr) @@ -186,19 +186,19 @@ int PrestCheck(char plr) if (tm!=-1 && Data->Prestige[tm].Goal[plr]==0) { // First Mission Bonus if (Data->Prestige[tm].Goal[other(plr)]==0 && tm<27) total+=Data->Prestige[tm].Add[0]; // your first - else total+=Data->Prestige[tm].Add[1]; // your second + else total+=Data->Prestige[tm].Add[1]; // your second } } if (Mis.Doc==1 && Data->Prestige[24].Goal[plr]==0) { if (Data->Prestige[24].Goal[other(plr)]==0) total+=Data->Prestige[24].Add[0]; // your first - else total+=Data->Prestige[24].Add[1]; // your second + else total+=Data->Prestige[24].Add[1]; // your second } if (Mis.EVA==1 && Data->Prestige[26].Goal[plr]==0) { if (Data->Prestige[26].Goal[other(plr)]==0) - total+=Data->Prestige[26].Add[0]; // your first + total+=Data->Prestige[26].Add[0]; // your first else total+=Data->Prestige[26].Add[1]; // your second } @@ -211,7 +211,7 @@ int PrestCheck(char plr) total+=Data->Prestige[14-Mis.Days].Add[0]; else if (Mis.Days==3 && Data->Prestige[14-Mis.Days].Goal[plr]==0) total+=Data->Prestige[14-Mis.Days].Add[0]; - else if (Mis.Days==2 && Data->Prestige[14-Mis.Days].Goal[plr]==0) + else if (Mis.Days==2 && Data->Prestige[14-Mis.Days].Goal[plr]==0) total+=Data->Prestige[14-Mis.Days].Add[0]; } @@ -245,12 +245,12 @@ int PrestCheck(char plr) /** ??? * * \deprecated - * - * \note Requires MEV to be packed - * Only checks goal steps :: - * returns GOAL value + * + * \note Requires MEV to be packed + * Only checks goal steps :: + * returns GOAL value * Does not check if entire mission is a success - * + * */ char Was_Goal(char total,char which) { @@ -270,7 +270,7 @@ char Was_Goal(char total,char which) case DOCK:val=8;break; // Docking case EWALK:val=7;break; // E EVA case LWALK:val=15;break; // L EVA - case -1: + case -1: default: return -1; } @@ -346,7 +346,7 @@ char Set_Goal(char plr,char which,char control) if (Option==1) { pd=Mev[0].pad; - qt=MP[pd].Qty; + qt=MP[pd].Qty; MP[pd].HInd=Data->P[1].PastMis; MP[pd].Poss[qt]=which; MP[pd].PossVal[qt]=0; @@ -355,14 +355,14 @@ char Set_Goal(char plr,char which,char control) } else if (MAIL==0) { pd=Mev[0].pad; - qt=Data->P[0].Udp[pd].Qty; + qt=Data->P[0].Udp[pd].Qty; Data->P[0].Udp[pd].HInd=Data->P[0].PastMis; Data->P[0].Udp[pd].Poss[qt]=which; Data->P[0].Udp[pd].PossVal[qt]=0; Data->P[0].Udp[pd].Mnth=tMo; ++Data->P[0].Udp[pd].Qty; } - else + else { Data->Prestige[which].Place=plr; Data->Prestige[which].Indec=Data->P[plr].PastMis; @@ -409,7 +409,7 @@ char Set_Goal(char plr,char which,char control) default: break; }; } - } + } else if (Data->Prestige[which].mPlace==-1 && Data->Prestige[which].Place!=plr){ Data->P[plr].Other|=4; // for astros @@ -472,7 +472,7 @@ char Set_Goal(char plr,char which,char control) Data->P[plr].History[Data->P[plr].PastMis].Duration=4; switch(which) { - case ORBSAT: return(sum); + case ORBSAT: return(sum); case MANSPACE:return(sum); case EORBIT:return(sum+Set_Goal(plr,ORBSAT,1)); case LUNFLY:return(sum+Set_Goal(plr,EORBIT,1)); @@ -498,7 +498,7 @@ char Set_Goal(char plr,char which,char control) } /** Only sets negative for highest failed goal step - * + * * checks if entire mission was a failure */ char Did_Fail(void) @@ -533,7 +533,7 @@ int MaxFail(void) ++count; } if (count>=54) return 1; else return t; -} +} #define PSTS(a) (PVal[a]==1 || PVal[a]==2) #define NSTS(a) (PVal[a]==4) @@ -608,7 +608,7 @@ int AllotPrest(char plr,char mis) tYr=Data->Year; tIDX=bIDX=0; memset(PVal,0x00,sizeof PVal); - + // SETUP INFO mcode=Data->P[plr].Mission[mis].MissionCode; @@ -629,24 +629,24 @@ int AllotPrest(char plr,char mis) // FEMALE 'NAUTS PVal[25]= (MA[0][0].A!=NULL && MA[0][0].A->Sex) - || (MA[0][1].A!=NULL && MA[0][1].A->Sex) - || (MA[0][2].A!=NULL && MA[0][2].A->Sex) + || (MA[0][1].A!=NULL && MA[0][1].A->Sex) + || (MA[0][2].A!=NULL && MA[0][2].A->Sex) || (MA[0][3].A!=NULL && MA[0][3].A->Sex) || (MA[1][0].A!=NULL && MA[1][0].A->Sex) - || (MA[1][1].A!=NULL && MA[1][1].A->Sex) - || (MA[1][2].A!=NULL && MA[1][2].A->Sex) + || (MA[1][1].A!=NULL && MA[1][1].A->Sex) + || (MA[1][2].A!=NULL && MA[1][2].A->Sex) || (MA[1][3].A!=NULL && MA[1][3].A->Sex); for (i=0;i=48 && mcode<=52 && other<3000) Set_LM(plr,STEPnum); // ADD IN NEGATIVES AND RETURN MIN of -10 - total=((total+negs) < -10) ? -10 : total+negs; + total=((total+negs) < -10) ? -10 : total+negs; + + if (!death && total==-10) total = -7; return total; } @@ -823,7 +825,7 @@ int Find_MaxGoal(void) int i,ival,cval; char PVal[28]; memset(PVal,0x00,sizeof PVal); - + for (i=0;i0 || key>0) - {if ((x>=295 && y>=90 && x<=312 && y<=100) || key=='F') + {if ((x>=283 && y>=90 && x<=302 && y<=100) || key=='F') { char EqDmg=0; switch (hardware-1) @@ -298,7 +298,7 @@ char RD(char player_index) case 2: EqDmg=Data->P[player_index].Manned[unit-1].Damage!=0?1:0; break; case 3: EqDmg=Data->P[player_index].Misc[unit-1].Damage!=0?1:0; break; default: break; } - if (EqDmg) { InBox(295,90,312,100); + if (EqDmg) { InBox(283,90,302,100); DamProb(player_index,hardware-1,unit-1); DrawRD(player_index); BButs(1,hardware); @@ -481,7 +481,7 @@ char RD(char player_index) wh=HPurc(player_index); if (call==0) return 0; hardware=HARD1;unit=UNIT1; - call=0; + call=0; for(i=0;i<4;i++) for(j=0;j<7;j++) buy[i][j]=Data->P[player_index].Buy[i][j]; DrawRD(player_index); //DM Screen, Nikakd, 10/8/10 (Removed line) @@ -525,20 +525,20 @@ char QueryUnit(char hardware_index,char unit_index,char player_index) { char enableButton = 0; - enableButton = + enableButton = ((hardware_index==1 && (Data->P[player_index].Probe[unit_index-1].Num != PROGRAM_NOT_STARTED)) || - (hardware_index==2 && (Data->P[player_index].Rocket[unit_index-1].Num != PROGRAM_NOT_STARTED)) || + (hardware_index==2 && (Data->P[player_index].Rocket[unit_index-1].Num != PROGRAM_NOT_STARTED)) || (hardware_index==3 && (Data->P[player_index].Manned[unit_index-1].Num != PROGRAM_NOT_STARTED)) || (hardware_index==4 && (unit_index!=5 && Data->P[player_index].Misc[unit_index-1].Num != PROGRAM_NOT_STARTED))); //DM Screen, Nikakd, 10/8/10 - + if (IsHumanPlayer(player_index)) { - if (enableButton) + if (enableButton) OutBox(165,184,315,194); - else + else InBox(165,184,315,194); } - + return(enableButton); } @@ -576,7 +576,7 @@ RDUnit(char hardwareTypeIndex, char hardwareIndex, char nRolls, char playerIndex assert (hardwareTypeIndex <= 4); assert (hardwareIndex >= 1); assert (hardwareIndex <= 8); - + eq = &eqArr[hardwareTypeIndex - 1][hardwareIndex - 1]; diceRoll = 0; @@ -604,9 +604,9 @@ void ShowUnit(char hw,char un,char player_index) case 3: PL=(Equipment *)&Data->P[player_index].Manned[un-1].Name[0];break; case 4: PL=(Equipment *)&Data->P[player_index].Misc[un-1].Name[0];break; } - + grSetColor(1); - + RectFill(162,69,318,154,3);RectFill(200,9,238,21,3); grSetColor(1); PrintAt(170,97,"INITIAL COST:"); @@ -625,7 +625,7 @@ void ShowUnit(char hw,char un,char player_index) case 2: EqDmg=Data->P[player_index].Manned[un-1].Damage!=0?1:0; break; case 3: EqDmg=Data->P[player_index].Misc[un-1].Damage!=0?1:0; break; default: break; } - if (EqDmg!=0) {IOBox(293,88,314,102); grSetColor(8); PrintAt(296,97,"F");grSetColor(11); PrintAt(0,0,"IX");} + if (EqDmg!=0) {IOBox(281,88,304,102); grSetColor(8); PrintAt(285,97,"F");grSetColor(11); PrintAt(0,0,"IX");} SCol=(PL->Num<0) ? 20 : ((PL->Safety<75) ? 8 : 16); grSetColor(SCol);PrintAt(170,111,"SAFETY FACTOR:"); @@ -700,7 +700,7 @@ void ShowUnit(char hw,char un,char player_index) }; RectFill(27,95,130,171,0); BigHardMe(player_index,27,95,hw-1,un-1,qty,32); - + return; } @@ -716,7 +716,7 @@ void OnHand(char qty) void DrawHPurc(char player_index) { FILE *fin; - + FadeOut(2,pal,10,0,0); fin=sOpen("VAB.IMG","rb",0); fread(&pal[0],768,1,fin); @@ -771,7 +771,7 @@ void DrawHPurc(char player_index) grSetColor(1);PrintAt(258,13,"CONTINUE"); ShowUnit(1,1,player_index); strcpy(IDT,"i008");strcpy(IKEY,"k008"); - + return; } @@ -791,7 +791,7 @@ char HPurc(char player_index) BButs(1,hardware); ShowUnit(hardware,unit,player_index); - //Specs: undo fix + //Specs: undo fix //memset(vhptr.vptr,0x00,64000); //memcpy(vhptr.vptr,Data,sizeof(struct Players)); @@ -801,7 +801,7 @@ char HPurc(char player_index) while (1) { key=0;GetMouse(); - if ((x>=295 && y>=90 && x<=312 && y<=100 && mousebuttons>0) || key=='F') + if ((x>=283 && y>=90 && x<=302 && y<=100 && mousebuttons>0) || key=='F') { char EqDmg=0; switch (hardware-1) @@ -811,7 +811,7 @@ char HPurc(char player_index) case 2: EqDmg=Data->P[player_index].Manned[unit-1].Damage!=0?1:0; break; case 3: EqDmg=Data->P[player_index].Misc[unit-1].Damage!=0?1:0; break; default: break; } - if (EqDmg) { InBox(295,90,312,100); + if (EqDmg) { InBox(283,90,302,100); DamProb(player_index,hardware-1,unit-1); strcpy(IDT,"i008");strcpy(IKEY,"k008"); DrawHPurc(player_index); @@ -864,7 +864,7 @@ char HPurc(char player_index) ShowUnit(hardware,unit,player_index); } } - else + else if ((x>=5 && y>=184 && x<=74 && y<=194 && mousebuttons>0) || key==LT_ARROW) /* LEFT ARROW */ { InBox(5,184,74,194); diff --git a/version.c b/version.c index 9183bf0..a700e79 100644 --- a/version.c +++ b/version.c @@ -1 +1 @@ -256 +257