|
|
1.1 root 1: /* GAME.C */
2:
3: #include "game.h"
4:
5: int caliber(int item)
6: {
7:
8: if(item<ITEM_USSR_AKSU74_545MM || item>ITEM_WILD_AP_45MAG) {
9: printf("ERROR caliber() item not a gun.\r\n");
10: return(-1); }
11:
12: if(item==ITEM_USSR_AKSU74_545MM || item==ITEM_USSR_PSM_545MM)
13: return(ITEM_AMMO_545MM);
14:
15: if((item>=ITEM_HECK_MP53_556MM && item <=ITEM_ZAST_M85_556MM)
16: || (item>=ITEM_COLT_AR15A2_556MM && item<=ITEM_STYR_AUG_556MM)
17: || (item>=ITEM_AMER_AAI_556MM && item<=ITEM_YUGO_M80_556MM)
18: || (item>=ITEM_RUGR_M77_556MM && item<=ITEM_MCML_SIGN_556MM)
19: || item==ITEM_BRWN_81BLR_556MM)
20: return(ITEM_AMMO_556MM);
21:
22: if(item>=ITEM_BELG_FNP90_57MM && item<=ITEM_FRNC_GIAT_57MM)
23: return(ITEM_AMMO_57MM);
24:
25: if(item==ITEM_CRIS_M62_30
26: || item==ITEM_SPRG_M1903_30
27: || item==ITEM_AMTT_AM3_30
28: || (item>=ITEM_AMER_M1A1_30 && item<=ITEM_REMI_M1918_30))
29: return(ITEM_AMMO_30);
30:
31: if((item>=ITEM_CHIN_T64_762MM && item<=ITEM_YUGO_M84_762MM)
32: || (item>=ITEM_BRWN_BAR_762MM && item<=ITEM_SPRG_M1A1_762MM)
33: || (item>=ITEM_AMER_M14_762MM && item<=ITEM_YUGO_M79_762MM)
34: || (item>=ITEM_AUST_SSG69_762MM && item<=ITEM_WINC_M70_762MM)
35: || item==ITEM_BRWN_81BLR_762MM
36: || item==ITEM_REMI_7600_762MM
37: || (item>=ITEM_CHIN_T51_762MM && item<=ITEM_YUGO_M57_762MM))
38: return(ITEM_AMMO_762MM);
39:
40: if((item>=ITEM_CZEC_VZ62_765MM && item<=ITEM_FRNC_MAS38_765MM)
41: || (item>=ITEM_BELG_M1889_765MM && item<=ITEM_TURK_M1890_765MM)
42: || (item>=ITEM_BECK_BEHO_765MM && item<=ITEM_WALT_MPPK_765MM))
43: return(ITEM_AMMO_765MM);
44:
45: if(item==ITEM_JAPA_T100_8MM
46: || (item>=ITEM_DENM_KRAG_8MM && item<=ITEM_MANN_SHORT_8MM)
47: || (item>=ITEM_NAMB_M1904_8MM && item<=ITEM_ROTH_M1907_8MM))
48: return(ITEM_AMMO_8MM);
49:
50: if((item>=ITEM_AMER_UDM42_9PAR && item<=ITEM_WALT_MPK_9PAR)
51: || item==ITEM_HECK_94A2_9PAR
52: || item==ITEM_SMTH_M1940_9PAR
53: || (item>=ITEM_AMRD_SEMM_9PAR && item<=ITEM_YUGO_M70_9PAR))
54: return(ITEM_AMMO_9PAR);
55:
56: if((item>=ITEM_BENE_CBM2_9MM && item<=ITEM_STYR_SI100_9MM)
57: || item==ITEM_COLT_CAR15_9MM
58: || item==ITEM_COLT_CAR15A_9MM
59: || (item>=ITEM_ASTR_M1921_9MM && item<=ITEM_WYOM_PARK_9MM))
60: return(ITEM_AMMO_9MM);
61:
62: if((item>=ITEM_BRAZ_MB50_45ACP && item<=ITEM_INGR_MAC10_45ACP)
63: || (item>=ITEM_THOM_A1_45ACP && item<=ITEM_THOM_M1_45ACP)
64: || item==ITEM_HARR_M60_45ACP
65: || (item>=ITEM_BALL_MOLIN_45ACP && item<=ITEM_WYOM_PARK_45ACP))
66: return(ITEM_AMMO_9MM);
67:
68: }
69:
70: /************************************************************************/
71: /* Build description for any type of item - detail can be DETAIL_LOW, */
72: /* DETAIL_MED, or DETAIL_HIGH */
73: /************************************************************************/
74: char *item_desc(int item, char detail)
75: {
76: static char str[1024];
77: ITEMSPEC spec=itemspec(item);
78:
79: str[0]=0;
80:
81: if(detail==DETAIL_MED || detail==DETAIL_HIGH)
82: switch(item) {
83: case ITEM_USSR_AKSU74_545MM:
84: strcpy(str,"Russian made AKSU 74 5.45mm");
85: break;
86: case ITEM_HECK_MP53_556MM:
87: strcpy(str,"Heckler & Koch MP53 5.56mm");
88: break; }
89:
90: /**********************/
91: /* Low detail section */
92: /**********************/
93:
94: if(item<=ITEM_USSR_AKSU74_545MM && item<=ITEM_REIS_M50_45)
95: strcat(str,"submachine gun");
96:
97: if((item<=ITEM_COLT_AR15A2_556MM && item<=ITEM_STYR_AMR_15MM)
98: || (item<=ITEM_ANSC_525_22LR && item<=ITEM_SURV_AR7_22LR))
99: strcat(str,"rifle");
100:
101: if(item<=ITEM_ARGR_M77_556MM && item<=ITEM_ARGR_7722_22MAG)
102: strcat(str,"bolt action rifle");
103:
104: if(item<=ITEM_BRWN_81BLR_556MM && item<=ITEM_WINC_94T_45)
105: strcat(str,"lever action rifle");
106:
107: if(item<=ITEM_REMI_572BDL_22LR && item<=ITEM_SPRG_TIMB_44MAG)
108: strcat(str,"slide action rifle");
109:
110: if((item<=ITEM_BERE_RS202_12 && item<=ITEM_MOSS_500_12)
111: || (item<=ITEM_REMI_1100_410 && item<=ITEM_WINC_1400_12))
112: strcat(str,"shotgun");
113:
114: if(item<=ITEM_MOSS_500_410 && item<=ITEM_BRWN_BPS_10)
115: strcat(str,"pump action shotgun");
116:
117: if(item<=ITEM_SILE_PROT_410 && item<=ITEM_SILE_PROT_12)
118: strcat(str,"single shot shotgun");
119:
120: if(item<=ITEM_AMER_SILV_410 && item<=ITEM_AMER_OVER_10)
121: strcat(str,"over and under shotgun");
122:
123: if(item<=ITEM_PIOT_SHOT_410 && item<=ITEM_PIOT_SHOT_10)
124: strcat(str,"double barrel shotgun");
125:
126: if(item<=ITEM_SMTH_MD34_22LR && item<=ITEM_SMTH_MD25_45)
127: strcat(str,"revolver");
128:
129: if(item<=ITEM_BERE_950BS_22SR && item<=ITEM_WILD_AP_45MAG)
130: strcat(str,"handgun");
131:
132: if(detail==DETAIL_HIGH) {
133: strcat(str,"\r\n");
134: switch(item) {
135: case ITEM_USSR_AKSU74_545MM:
136: strcat(str,gun_desc(19,26
137: ,spec.weight,spec.capacity,spec.value));
138: break;
139: case ITEM_HECK_MP53_556MM:
140: strcat(str,gun_desc(16,25
141: ,spec.weight,spec.capacity,spec.value));
142: break;
143: case ITEM_HECK_MP53_556MM:
144: strcat(str,gun_desc(16,27
145: ,spec.weight,spec.capacity,spec.value));
146: break;
147: case ITEM_HECK_MP53_556MM:
148: strcat(str,gun_desc(16,27
149: ,spec.weight,spec.capacity,spec.value));
150: break;
151: case ITEM_HECK_MP53_556MM:
152: strcat(str,gun_desc(16,26
153: ,spec.weight,spec.capacity,spec.value));
154: break; } }
155:
156:
157: return(str);
158: }
159:
160: /************************************************************************/
161: /* Build high detailed description for gun from data given. */
162: /************************************************************************/
163: char *gun_desc(float barrel_length, float overall_length
164: ,float weight, char capacity, int value)
165: {
166: static char str[1024];
167:
168: sprintf(str,"Barrel length: %3.1f Overall Length: %3.1f Weight: %3.1f\r\n"
169: "Capacity: %5d Value: %d\r\n",barrel_length,overall_length,weight
170: ,capacity,value);
171: }
172:
173: /************************************************************************/
174: /* Returns the specifications for a certain item */
175: /************************************************************************/
176: ITEMSPEC itemspec(int item)
177: {
178: ITEMSPEC spec;
179:
180:
181: switch(item) {
182: case ITEM_USSR_AKSU74_545MM:
183: spec.weight=13.5;
184: spec.capacity=15;
185: spec.value=5000;
186: spec.size=LARGE;
187: break;
188: case ITEM_HECK_MP53_556MM:
189: spec.weight=15.6;
190: spec.capacity=30;
191: spec.value=3000;
192: spec.size=LARGE;
193: break; }
194:
195: return(spec);
196: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.