|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T p
Length: 7306 (0x1c8a) Types: TextFile Names: »powe.c«
└─⟦b20c6495f⟧ Bits:30007238 EUUGD18: Wien-båndet, efterår 1987 └─⟦this⟧ »EUUGD18/General/Empire.V/V1.1/COMMANDS/powe.c«
#define D_UPDATE #define D_NATSTAT #define D_SECTDES #define D_NEWSVERBS #define D_NATSTR #define D_SCTSTR #define D_SHPSTR #define D_POWSTR #define D_DCHRSTR #define D_ICHRSTR #define D_MCHRSTR #define D_FILES #include "empdef.h" powe() { register struct sctstr *s; char *ctime(), *cname(); long ldround(); int i, j, ii, pkgs, readsize, ownr; long now, ndate; float pmax, *fp, *tp; struct sctstr sct[MAX_W_XSIZE]; struct powstr pow[MAX_MAXNOC], *k; printf(" - = [ Empire Power Report ] = -\n"); powf = open(powfil, O_RDWR); read(powf, &ndate, sizeof(long)); read(powf, pow, sizeof(pow)); time(&now); if( 3600. <= now - ndate ) goto X210; if( nstat == STAT_GOD ) goto X210; goto X2632; X210: i = 0; goto X306; X216: fp = &pow[i].p_power; goto X256; X242: *fp-- = 0.; X256: if( fp >= &pow[i].p_sects ) goto X242; i++; X306: if( i < maxnoc ) goto X216; lseek(sectf, 0L, 0); readsize = w_xsize * sizeof(sect); j = 0; goto X1336; X362: read(sectf, sct, readsize); i = 0; goto X1316; X420: if( sct[i].sct_owned != 0 ) goto X444; goto X1312; X444: s = &sct[i]; pkgs = dchr[s->sct_desig].d_pkg; k = &pow[s->sct_owned]; k->p_sects += 1.; k->p_effic += s->sct_effic; ii = 12; k->p_civil += ichr[ii].i_pkg[pkgs] * s->sct_civil; ii = 13; k->p_milit += ichr[ii].i_pkg[pkgs] * s->sct_milit; ii = 14; k->p_shell += ichr[ii].i_pkg[pkgs] * s->sct_shell; ii = 15; k->p_guns += ichr[ii].i_pkg[pkgs] * s->sct_guns; ii = 16; k->p_plane += ichr[ii].i_pkg[pkgs] * s->sct_plane; ii = 17; k->p_ore += ichr[ii].i_pkg[pkgs] * s->sct_ore; ii = 18; k->p_gold += ichr[ii].i_pkg[pkgs] * s->sct_gold; X1312: i++; X1316: if( i >= w_xsize ) goto X1332; goto X420; X1332: j++; X1336: if( j >= w_ysize ) goto X1352; goto X362; X1352: i = 0; goto X2002; X1362: if( ship.shp_own != 0 ) goto X1374; goto X1776; X1374: k = &pow[ship.shp_own]; if( mchr[ship.shp_type].m_civil == 0 ) goto X1464; k->p_civil += ship.shp_crew; goto X1512; X1464: k->p_milit += ship.shp_crew; X1512: k->p_shell += ship.shp_shels; k->p_guns += ship.shp_gun; k->p_plane += ship.shp_plns; k->p_ore += ship.shp_or; k->p_gold += ship.shp_gld; k->p_ships += 1.; k->p_power += mchr[ship.shp_type].m_prdct/10.; X1776: i++; X2002: if( getship(i, &ship) == -1 ) goto X2032; goto X1362; X2032: i = 1; goto X2060; X2042: k->p_power = 0.; X2054: i++; X2060: if( i < maxnoc ) goto X2074; goto X2524; X2074: getnat(i); k = &pow[i]; if( nat.nat_stat < STAT_NOCAP ) goto X2042; k->p_money = nat.nat_money / 1000.; k->p_power += (k->p_civil + k->p_milit + k->p_shell) / 10.; k->p_power += (k->p_guns + k->p_sects*k->p_effic) / 3.; k->p_power += k->p_plane + k->p_ships; k->p_power += k->p_gold * 3. + k->p_money * 10.; tp = &pow[0].p_power; fp = &k->p_power; X2452: fp--; if( fp >= (float *)k ) goto X2474; goto X2054; X2474: tp--; *tp += *fp; goto X2452; X2524: lseek(powf, 0L, 0); time(&ndate); write(powf, &ndate, sizeof(long)); write(powf, pow, sizeof(pow)); X2632: close(powf); printf(" as of %s", ctime(&ndate)); printf("\n\t sects eff civil milit shell guns plane ore gold ship money\n"); i = 0; goto X4766; X2720: pmax = 0.; j = 1; goto X3022; X2736: k = &pow[j]; if( pmax >= k->p_power ) goto X3016; pmax = k->p_power; ii = j; X3016: j++; X3022: if( j < maxnoc ) goto X2736; if( pmax != 0 ) goto X3046; goto X5002; X3046: k = &pow[ii]; if( ii == cnum || cnum == 0 ) { ownr = 1; } else { ownr = 0; } printf("\n%11.11s", cname(ii)); if( ownr != 0 ) goto X3176; if( k->p_sects >= 23. ) goto X3226; X3176: printf("%5.0f", k->p_sects, 10); goto X3270; X3226: printf("%5ld", ldround(k->p_sects, 10)); X3270: printf("%4.0f%%", k->p_effic / (k->p_sects + .1)); if( ownr != 0 ) goto X3374; if( k->p_civil >= 299 ) goto X3424; X3374: printf("%7.0f", k->p_civil); goto X3472; X3424: printf("%7ld", ldround(k->p_civil, 100)); X3472: if( ownr != 0 ) goto X3530; if( k->p_milit >= 299 ) goto X3560; X3530: printf("%7.0f", k->p_milit); goto X3626; X3560: printf("%7ld", ldround(k->p_milit, 100)); X3626: if( ownr == 0 ) goto X3672; printf("%7.0f", k->p_shell); goto X3740; X3672: printf("%7ld", ldround(k->p_shell, 100)); X3740: if( ownr == 0 ) goto X4004; printf("%6.0f", k->p_guns); goto X4052; X4004: printf("%6ld", ldround(k->p_guns, 10)); X4052: if( ownr == 0 ) goto X4116; printf("%5.0f", k->p_plane); goto X4164; X4116: printf("%5ld", ldround(k->p_plane, 10)); X4164: if( ownr != 0 ) goto X4222; if( k->p_ore >= 299 ) goto X4252; X4222: printf("%7.0f", k->p_ore); goto X4320; X4252: printf("%7ld", ldround(k->p_ore, 100)); X4320: if( ownr == 0 ) goto X4364; printf("%5.0f", k->p_gold); goto X4432; X4364: printf("%5ld", ldround(k->p_gold, 10)); X4432: if( ownr == 0 ) goto X4476; printf("%5.0f", k->p_ships); goto X4544; X4476: printf("%5ld", ldround(k->p_ships, 10)); X4544: if( ownr != 0 ) goto X4600; if( k->p_money >= 13. ) goto X4630; X4600: printf("%6.0fk\n", k->p_money); goto X4676; X4630: printf("%6ldk\n", ldround(k->p_money, 10)); X4676: if( nstat != STAT_GOD ) goto X4750; printf("%9.2f\n", k->p_power); X4750: k->p_power = 0.; i++; X4766: if( i >= maxcno ) goto X5002; goto X2720; X5002: printf("\t ---- ---- ------ ------ ------ ----- ---- ------ ---- ---- -----\n"); k = &pow[0]; printf("worldwide "); printf("%5ld", ldround(k->p_sects, 10)); printf("%4.0f%%", k->p_effic / (k->p_sects + .01)); printf("%7ld", ldround(k->p_civil, 100)); printf("%7ld", ldround(k->p_milit, 100)); printf("%7ld", ldround(k->p_shell, 100)); printf("%6ld", ldround(k->p_guns, 10)); printf("%5ld", ldround(k->p_plane, 10)); printf("%7ld", ldround(k->p_ore, 100)); printf("%5ld", ldround(k->p_gold, 10)); printf("%5ld", ldround(k->p_ships, 10)); printf("%6ldk\n", ldround(k->p_money, 10)); return(NORM_RETURN); }