00001
00002
00003
00004
00005 #include <OAUDIO.H>
00006 #include <OCONFIG.H>
00007 #include <ODEPT.H>
00008 #include <OFIRMRES.H>
00009 #include <OFIRM.H>
00010 #include <OSYS.H>
00011
00012
00017
00018
00019 }
00020
00021
00022
00023
00025
00026
00027 }
00028
00029
00030
00031
00033
00034 selected_recno = 0;
00035 touched_recno = 0;
00036 }
00037
00038
00039
00040
00042
00043
00044
00045 if( size()==0 )
00046 return;
00047
00048
00049
00050 for( int i=size() ; i>0 ; i-- ) {
00051 if( !is_deleted(i) )
00052 del_firm(i);
00053 }
00054
00055
00056
00057 zap();
00058 }
00059
00060
00061
00062
00069
00070 return 1;
00071 }
00072
00073
00074
00075
00083
00084 if( !firm_res[firmId]->is_available() )
00085 return 0;
00086
00087
00088
00089
00090
00091
00092 int firmRecno = create_firm(firmId);
00093
00094 firm_array[firmRecno]->init(xLoc, yLoc, firmId);
00095
00096 return firmRecno;
00097 }
00098
00099
00100
00101
00111
00112 Firm* firmPtr;
00113
00114 switch(firmId) {
00115 case 1:
00116 default:
00117 firmPtr = new Firm;
00118 break;
00119
00120
00121
00122 }
00123
00124
00125
00126 linkin(&firmPtr);
00127 firmPtr->firm_recno = recno();
00128
00129 return firmPtr->firm_recno;
00130 }
00131
00132
00133
00134
00135
00136 void FirmArray::del_firm(int recNo) {
00137 Firm* firmPtr = firm_array[recNo];
00138
00139 delete firmPtr;
00140
00141 linkout(recNo);
00142
00143
00144
00145 if( recNo == selected_recno )
00146 selected_recno = 0;
00147
00148
00149
00150 if( recNo == touched_recno )
00151 touched_recno = 0;
00152 }
00153
00154
00155
00156
00157
00158 void FirmArray::select_firm(int selectedRecno) {
00159 selected_recno = selectedRecno;
00160
00161 if( !selectedRecno )
00162 return;
00163
00164 Firm* firmPtr = operator[](selectedRecno);
00165
00166 if( firmPtr->department_recno ) {
00167 department_array.selected_recno = firmPtr->department_recno;
00168 sys.bDept=true;
00169 }
00170 else {
00171 sys.bDept=false;
00172 sys.old_Dept=-1;
00173
00174
00175
00176 switch( firmPtr->firm_id ) {
00177 case FIRM_ADMISSIONS:
00178 audio.play_wav("ADMISSN",audio.int_to_DsVolume(config.sound_effect_volume));
00179 break;
00180
00181 case FIRM_INDOOR_SPORTS:
00182 audio.play_wav("BBALL",audio.int_to_DsVolume(config.sound_effect_volume));
00183 break;
00184
00185 case FIRM_STADIUM:
00186 audio.play_wav("FOOTBALL",audio.int_to_DsVolume(config.sound_effect_volume));
00187 break;
00188
00189 case FIRM_DEVELOPMENT:
00190 audio.play_wav("DEVALUMN",audio.int_to_DsVolume(config.sound_effect_volume));
00191 break;
00192
00193 case FIRM_FACILITIES:
00194 audio.play_wav("FACMAN",audio.int_to_DsVolume(config.sound_effect_volume));
00195 break;
00196
00197 case FIRM_LIBRARY:
00198 audio.play_wav("INFOTECH",audio.int_to_DsVolume(config.sound_effect_volume));
00199 break;
00200
00201 case FIRM_OLD_MAIN:
00202 audio.play_wav("INVEST",audio.int_to_DsVolume(config.sound_effect_volume));
00203 break;
00204
00205 case FIRM_POLICE:
00206 audio.play_wav("CRIME",audio.int_to_DsVolume(config.sound_effect_volume));
00207 break;
00208
00209 case FIRM_PARK_LOTS:
00210 case FIRM_PARK_STRUCTURE:
00211 audio.play_wav("PARKING",audio.int_to_DsVolume(config.sound_effect_volume));
00212 break;
00213 }
00214 }
00215 }
00216
00217
00218
00219
00220
00221 #ifdef DEBUG
00222
00223
00225
00226 Firm* firmPtr = (Firm*) get_ptr();
00227
00228 err_if( !firmPtr )
00229 err_now( "FirmArray[recno()] is deleted" );
00230
00231 return firmPtr;
00232 }
00233
00234
00235
00236
00238
00239 Firm* firmPtr = (Firm*) get_ptr(recNo);
00240
00241 if( !firmPtr )
00242 err.run( "FirmArray[] is deleted" );
00243
00244 return firmPtr;
00245 }
00246
00247
00248 #endif