00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #include <OSYS.H>
00021 #include <OGAMESET.H>
00022 #include <OWORLDMT.H>
00023 #include <OADM_OFF.H>
00024 #include <OVGA.H>
00025 #include <OBOX.H>
00026 #include <OENROLL.H>
00027 #include <OINFO.H>
00028 #include <OIFACE.H>
00029 #include <COLOR.H>
00030 #include <OFONT.H>
00031 #include <OGAMESTR.H>
00032 #include <OGRPHYR.H>
00033 #include <OMOUSE.H>
00034 #include <OBUTTON.H>
00035 #include <OGRPNFYR.H>
00036 #include <ORADIO.H>
00037 #include <OVALSLDR.H>
00038 #include <OTEXT.H>
00039 #include <OHELP.H>
00040 #include <OPSCHOOL.H>
00041 #include <OCHANCE.H>
00042 #include <ONEWS.H>
00043 #include <OGRPNFT.H>
00044 #include <ODEPT.H>
00045
00046
00047
00048 enum {
00049 MODE_ADMISSION = 0,
00050 MODE_STATISTICS = 1,
00051 MODE_PRIORITY = 2,
00052 MODE_FINANCIAL_AID = 3
00053 };
00054
00055 enum {
00056 BG_PIC_ID = 4
00057 };
00058
00059 enum {
00060 REPORT_X1 = ZOOM_X1+15,
00061 REPORT_Y1 = ZOOM_Y1+25,
00062 REPORT_X2 = ZOOM_X2-15,
00063 REPORT_Y2 = ZOOM_Y2-55
00064 };
00065
00066 enum {
00067 BOTTOM_BUTTON_X1 = REPORT_X1+80,
00068 BOTTOM_BUTTON_Y1 = REPORT_Y2+15,
00069 BOTTOM_BUTTON_X2 = REPORT_X2-80,
00070 BOTTOM_BUTTON_Y2 = REPORT_Y2+40
00071 };
00072
00073 enum {
00074 BOTTOM_BUTTON_WIDTH = 125,
00075 BOTTOM_BUTTON_HEIGHT = 25,
00076 BOTTOM_BUTTON_DISTANCE
00077 = (BOTTOM_BUTTON_X2-BOTTOM_BUTTON_X1-BOTTOM_BUTTON_WIDTH*4)/3
00078 };
00079
00080
00081 enum {
00082 MODE_ADMISSION_BOX_HEIGHT = 265,
00083 MODE_ADMISSION_BOX_WIDTH1 = 160,
00084 MODE_ADMISSION_BOX_WIDTH2 = 400,
00085 MODE_ADMISSION_BOX_WIDTH3 = 75,
00086 MODE_ADMISSION_LEGEND_HEIGHT = 26,
00087 MODE_ADMISSION_LEGEND_WIDTH = 400,
00088
00089 MODE_ADMISSION_BARCHART_X1 = (REPORT_X1)+10,
00090 MODE_ADMISSION_BARCHART_Y1 = (REPORT_Y1)+55,
00091 MODE_ADMISSION_BARCHART_HEIGHT = 210,
00092 MODE_ADMISSION_BARCHART_WIDTH = 400,
00093 MODE_ADMISSION_BARCHART_ROW1 = 42,
00094 MODE_ADMISSION_BARCHART_ROW2 = 107,
00095 MODE_ADMISSION_BARCHART_ROW3 = 172,
00096 MODE_ADMISSION_BARCHART_ROW4 = 235,
00097 MODE_ADMISSION_BARCHART_ROW5 = 270,
00098 MODE_ADMISSION_SLIDER_WIDTH = 340,
00099 };
00100
00101
00102 enum {
00103 MODE_STATISTICS_GRAPH_WIDTH = 220,
00104 MODE_STATISTICS_GRAPH_HEIGHT = 115,
00105 MODE_STATISTICS_LEGEND_HEIGHT = 26,
00106 MODE_STATISTICS_LEGEND_WIDTH = 400,
00107 MODE_STATISTICS_GRAPH_HORIZONTAL_DISTANCE
00108 = (REPORT_X2-REPORT_X1-MODE_STATISTICS_GRAPH_WIDTH*3)/2,
00109 MODE_STATISTICS_GRAPH_VERTICAL_DISTANCE = 20,
00110 MODE_STATISTICS_SUB_BUTTON_X1 = 130,
00111 MODE_STATISTICS_SUB_BUTTON_Y1 = REPORT_Y2-48,
00112 SUB_BOTTOM_BUTTON_WIDTH = 200,
00113 SUB_BOTTOM_BUTTON_HEIGHT = 23,
00114 SUB_BOTTOM_BUTTON_DISTANCE = 13
00115 };
00116
00117 enum {
00118 MODE_PRIORITY_BOX_HEIGHT = 165,
00119 MODE_PRIORITY_BOX_WIDTH = 650,
00120 MODE_PRIORITY_BOX_TAB1 = 40,
00121 MODE_PRIORITY_BOX_TAB2 = 240,
00122 #if(GAME_VERSION>=200)
00123 MODE_PRIORITY_BOX_TAB3 = 360,
00124 #else
00125 MODE_PRIORITY_BOX_TAB3 = 380,
00126 #endif
00127 MODE_PRIORITY_VALUE_SLIDER_HEIGHT = 18,
00128 MODE_PRIORITY_VALUE_SLIDER_WIDTH = 400,
00129 MODE_PRIORITY_RADIO_BUTTON_HEIGHT = 18,
00130 MODE_PRIORITY_RADIO_BUTTON_WIDTH = 350
00131 };
00132
00133 enum {
00134 MODE_FINANCIAL_AID_BOX_HEIGHT_1 = 100,
00135 MODE_FINANCIAL_AID_BOX_HEIGHT_2 = 80,
00136 MODE_FINANCIAL_AID_BOX_HEIGHT_3 = 120,
00137 MODE_FINANCIAL_AID_BOX_DISTANCE =0,
00138
00139 MODE_FINANCIAL_AID_VALUE_SLIDER_HEIGHT = 18,
00140 MODE_FINANCIAL_AID_VALUE_SLIDER_WIDTH = 100,
00141 MODE_FINANCIAL_AID_RADIO_BUTTON_HEIGHT = 18,
00142 MODE_FINANCIAL_AID_RADIO_BUTTON_WIDTH = 80
00143 };
00144
00145
00146
00147 static char report_init_flag = 0;
00148 static char mode_init_flag = -1;
00149
00150 static ButtonGroup bottom_button_group(4);
00151 static short *bottom_button_up_bitmap[4];
00152 static short *bottom_button_down_bitmap[4];
00153 static char *bottom_button_label[] = {
00154 "Overview",
00155 "Trends",
00156 "Priorities",
00157 "Financial aid"
00158 };
00159
00160 static ButtonGroup sub_bottom_button_group(5);
00161 static short *sub_bottom_button_up_bitmap[5];
00162 static short *sub_bottom_button_down_bitmap[5];
00163 static char *sub_bottom_button_label[] = {
00164 "Undergraduate : traditional",
00165 "Undergraduate : nontraditional",
00166 "Master's",
00167 "Doctoral",
00168 "Distance learning",
00169 };
00170
00171
00172
00173
00174 static GraphNonFinancialYear mode_statistics_graph_admit_rate;
00175 static GraphNonFinancialYear mode_statistics_graph_yield_rate;
00176 static GraphNonFinancialYear mode_statistics_graph_percent_minorities;
00177 static GraphNonFinancialYear mode_statistics_graph_avg_academic_rating;
00178 static GraphNonFinancialYear mode_statistics_graph_avg_extracurricular_activities_rating;
00179 static GraphNonFinancialYear mode_statistics_graph_avg_athletics_rating;
00180 #if(GAME_VERSION>=200)
00181 static GraphNonFinancialTrimester distance_credits_graph;
00182 #endif
00183 static GraphNonFinancialYear *mode_statistics_graph[6] = {
00184 &mode_statistics_graph_admit_rate,
00185 &mode_statistics_graph_yield_rate,
00186 &mode_statistics_graph_avg_academic_rating,
00187 &mode_statistics_graph_percent_minorities,
00188 &mode_statistics_graph_avg_extracurricular_activities_rating,
00189 &mode_statistics_graph_avg_athletics_rating
00190 };
00191 #if(GAME_VERSION>=200)
00192 static char *mode_statistics_graph_title[] = {
00193 "Distance credits demanded", "Distance credits provided",
00194 "Average academic rating", "Percent minorities",
00195 "Average extracurricular activities rating", "Average athletics rating"
00196 };
00197 #else
00198 static char *mode_statistics_graph_title[] = {
00199 "Admit rate", "Yield rate",
00200 "Average academic rating", "Percent minorities",
00201 "Average extracurricular activities rating", "Average athletics rating"
00202 };
00203 #endif
00204
00205 static char *mode_statistics_legend_label[] = {
00206 "Player university", "Average of peer universities"
00207 };
00208
00209 static RadioButton mode_financial_aid_radio_button_nontraditional;
00210 static RadioButton mode_financial_aid_radio_button_minorities;
00211 static RadioButton mode_financial_aid_radio_button_athletes;
00212 static ValueSlider mode_financial_aid_value_slider_nontraditional;
00213 static ValueSlider mode_financial_aid_value_slider_need;
00214 static ValueSlider mode_financial_aid_value_slider_merit;
00215 static char *mode_financial_aid_str[] = {
00216 "Percentage of traditional undergraduates' financial need the University agrees to pay",
00217 "Traditional undergraduates to be offered merit aid",
00218
00219 "Nontraditional students to be offered financial aid",
00220
00221
00222 "Do you give special financial aid treatment to minorities for all student levels?",
00223 "Do you give special financial aid treatment to athletes for all traditional undergraduates?"
00224 };
00225 static char *mode_financial_aid_radio_button_option_str1[] = {
00226 "Yes", "No"
00227 };
00228 static char *mode_financial_aid_radio_button_option_str2[] = {
00229 "None", "Medium", "High",
00230 };
00231
00232
00233 static char *mode_admission_label1[] = {
00234 "Admit","Yield","rate"
00235 };
00236
00237 static char *mode_admission_label2[] = {
00238 "Traditional undergraduate","Nontraditional undergraduate",
00239 "Master's","Doctoral","Distance learning"
00240 };
00241
00242 static char *mode_admission_label3[] = {
00243 "Matriculants","Admits (not matriculating)","Applicants (not admitted)"
00244 };
00245
00246 static int mode_admission_bar_color[3]={V_RED,V_GREEN,V_BLUE};
00247
00248 static short *mode_admission_no_scaling_bitmap;
00249 static short *mode_admission_no_ar_bitmap[5];
00250 static short *mode_admission_no_yr_bitmap[5];
00251 static short *mode_admission_no_bar_bitmap[5];
00252
00253 static ValueSlider mode_admission_target[5];
00254
00255
00256
00257
00258 static RadioButton mode_priority_radio_button_minorities;
00259 static RadioButton mode_priority_radio_button_athletes;
00260 #if(GAME_VERSION>=200)
00261 static RadioButton mode_priority_radio_button_distance_learners;
00262 #endif
00263 static ValueSlider mode_priority_value_slider_academic_rating;
00264 static ValueSlider mode_priority_value_slider_extracur_rating;
00265 static ValueSlider mode_priority_value_slider_athletic_rating;
00266
00267
00268 static char *mode_priority_str[] = {
00269 "Traditional undergraduates",
00270 "Academic performance",
00271 "Extracurricular performance",
00272 "Athletic performance",
00273 "Distance learning",
00274
00275
00276 "Do you give special admission to underrepresented minorities for all student levels?",
00277 "Do you give special admissions treatment to athletes for all traditional undergraduates?",
00278 "Rating priority for traditional undergraduates",
00279 #if(GAME_VERSION>=200)
00280 "Acceptance of outside distance learners in courses",
00281 #endif
00282 };
00283
00284 static char *mode_priority_radio_button_option_str[] = {
00285 "None", "Medium", "High",
00286 };
00287
00288 #if(GAME_VERSION>=200)
00289 static char *mode_priority_radio_button_option_str1[] = {
00290 "Prohibit", "Accept", "Actively seek",
00291 };
00292 #endif
00293
00294
00295
00296
00297
00298
00299
00300
00301
00302
00303 static void report_admission(int);
00304 static void report_statistics(int);
00305 static void report_priority(int);
00306 static void report_financial_aid(int);
00307 static int detect_admission();
00308 static int detect_statistics();
00309 static int detect_priority();
00310 static int detect_financial_aid();
00311 static void deinit_admission();
00312 static void deinit_statistics();
00313 static void deinit_priority();
00314 static void deinit_financial_aid();
00315
00316 typedef void (*ReportFP)(int refreshFlag);
00317 typedef int (*DetectFP)();
00318 typedef void (*DeinitFP)();
00319
00320 static ReportFP report_func_ptr[] = {
00321 &report_admission, &report_statistics, &report_priority, &report_financial_aid
00322 };
00323 static DetectFP detect_func_ptr[] = {
00324 &detect_admission, &detect_statistics, &detect_priority, &detect_financial_aid
00325 };
00326 static DeinitFP deinit_func_ptr[] = {
00327 &deinit_admission, &deinit_statistics, &deinit_priority, &deinit_financial_aid
00328 };
00329
00330
00331 extern EventStruct news_event_function_array[NEWS_ID_COUNT_ONLY_CHANCE];
00332
00333
00335
00336 init();
00337 }
00338
00339
00340
00341
00343
00344 deinit();
00345 }
00346
00347
00348
00349
00351
00352
00353
00354
00355 bottom_button_group.deinit_buttons();
00356
00357 if (*bottom_button_up_bitmap) {
00358 for (int i = 0; i < 4; i++) {
00359 mem_del(bottom_button_up_bitmap[i]);
00360 mem_del(bottom_button_down_bitmap[i]);
00361 bottom_button_up_bitmap[i] = NULL;
00362 bottom_button_down_bitmap[i] = NULL;
00363 }
00364 }
00365
00366 (*deinit_func_ptr[current_mode])();
00367
00368 report_init_flag = 0;
00369 }
00370
00371
00372
00373
00375
00376 for (int i = 0; i < 4; i++) {
00377 bottom_button_up_bitmap[i] = NULL;
00378 bottom_button_down_bitmap[i] = NULL;
00379 }
00380 current_mode = MODE_ADMISSION;
00381 sub_current_mode=0;
00382 }
00383
00384
00385
00386
00388
00389 vga.use_back();
00390
00391 #if(GAME_VERSION>=200)
00392
00393 sys.is_institution_report = 1;
00394 #endif
00395
00396 if (refreshFlag == INFO_REPAINT) {
00397 if( report_init_flag )
00398 deinit();
00399
00400
00401 user_interface.bg_img(BG_PIC_ID, &vga_back);
00402
00403
00404 if (!report_init_flag) {
00405 short x = BOTTOM_BUTTON_X1;
00406 for (int i = 0; i < 4; i++, x+=BOTTOM_BUTTON_WIDTH+BOTTOM_BUTTON_DISTANCE) {
00407 user_interface.create_button_bitmap(x, BOTTOM_BUTTON_Y1,
00408 x+BOTTOM_BUTTON_WIDTH, BOTTOM_BUTTON_Y1+BOTTOM_BUTTON_HEIGHT,
00409 bottom_button_label[i], &bottom_button_up_bitmap[i],
00410 &bottom_button_down_bitmap[i], &vga_back);
00411 bottom_button_group[i].create_bitmapW(x, BOTTOM_BUTTON_Y1,
00412 x+BOTTOM_BUTTON_WIDTH, BOTTOM_BUTTON_Y1+BOTTOM_BUTTON_HEIGHT,
00413 ((i == current_mode) ? bottom_button_down_bitmap[i] : bottom_button_up_bitmap[i])+4);
00414 }
00415 report_init_flag = 1;
00416 }
00417
00418
00419 bottom_button_group.paint(current_mode);
00420 }
00421
00422
00423 (*report_func_ptr[current_mode])(refreshFlag);
00424
00425
00426
00427
00428
00429
00430
00431
00432 if (refreshFlag == INFO_REPAINT) {
00433
00434 vga.blt_buf(ZOOM_X1, ZOOM_Y1, ZOOM_X2, ZOOM_Y2);
00435 }
00436
00437
00438 vga.use_front();
00439
00440 }
00441
00442
00443
00444
00446
00447 vga.use_back();
00448
00449 int rc = detect2();
00450
00451 vga.use_front();
00452
00453 return rc;
00454 }
00455
00456
00457
00458
00462
00463 if (!report_init_flag)
00464 return 0;
00465
00466 int bottomButtonGroupDetect;
00467 if ((bottomButtonGroupDetect = bottom_button_group.detect()) >= 0) {
00468
00469 (*deinit_func_ptr[current_mode])();
00470
00471
00472 bottom_button_group[current_mode].body_ptr = (void *) (bottom_button_up_bitmap[current_mode] + 4);
00473 current_mode = bottomButtonGroupDetect;
00474 bottom_button_group[current_mode].body_ptr = (void *) (bottom_button_down_bitmap[current_mode] + 4);
00475
00476
00477 sys.redraw_all_flag = 1;
00478
00479 return 1;
00480 }
00481
00482 if ((*detect_func_ptr[current_mode])())
00483 return 1;
00484
00485 return 0;
00486 }
00487
00488
00489
00490
00492
00493 static int sliderVar2;
00494 static int sliderVar3;
00495 static int sliderVar4;
00496 static int sliderVar5;
00497
00498
00499 int last_year_tar = 0;
00500 short target_pos = 0;
00501
00502 static void report_admission(int refreshFlag) {
00503
00504
00505
00506 static int ar_tug=10,yr_tug=24;
00507 static int ar_ug=20,yr_ug=42;
00508 static int ar_master=15,yr_master=23;
00509 static int ar_doc=12,yr_doc=23;
00510 static int ar_dist=12,yr_dist=23;
00511 static int bar[5][3];
00512
00513
00514 #if(GAME_VERSION>=200)
00515 static int initial_ar_tug=10,initial_yr_tug=24;
00516 static int initial_ar_ug=20,initial_yr_ug=42;
00517 static int initial_ar_master=15,initial_yr_master=23;
00518 static int initial_ar_doc=12,initial_yr_doc=23;
00519 static int initial_ar_dist=12,initial_yr_dist=23;
00520 #endif
00521
00522
00523
00524 user_interface.brighten(REPORT_X1+150,REPORT_Y1-18,REPORT_X1+575,REPORT_Y1+5);
00525 user_interface.rect(REPORT_X1+150,REPORT_Y1-18,REPORT_X1+575,REPORT_Y1+5,1);
00526 font_charts.put(REPORT_X1+220,REPORT_Y1-12,"Student Admissions Statistics and Targets");
00527
00528
00529 ar_tug=(int)(100*enroll_res.offers_rate[0]);
00530 yr_tug=(int)(100*enroll_res.cur_yield_rate[0]);
00531 ar_ug=(int)(100*enroll_res.offers_rate[1]);
00532 yr_ug=(int)(100*enroll_res.cur_yield_rate[1]);
00533 ar_master=(int)(100*enroll_res.offers_rate[2]);
00534 yr_master=(int)(100*enroll_res.cur_yield_rate[2]);
00535 ar_doc=(int)(100*enroll_res.offers_rate[3]);
00536 yr_doc=(int)(100*enroll_res.cur_yield_rate[3]);
00537 ar_dist=(int)(100*enroll_res.offers_rate[4]);
00538 yr_dist=(int)(100*enroll_res.cur_yield_rate[4]);
00539
00540
00541 #if(GAME_VERSION>=200)
00542 initial_ar_tug=(int)(100*enroll_res.initial_offers_rate[0]);
00543 initial_yr_tug=(int)(100*enroll_res.initial_cur_yield_rate[0]);
00544 initial_ar_ug=(int)(100*enroll_res.initial_offers_rate[1]);
00545 initial_yr_ug=(int)(100*enroll_res.initial_cur_yield_rate[1]);
00546 initial_ar_master=(int)(100*enroll_res.initial_offers_rate[2]);
00547 initial_yr_master=(int)(100*enroll_res.initial_cur_yield_rate[2]);
00548 initial_ar_doc=(int)(100*enroll_res.initial_offers_rate[3]);
00549 initial_yr_doc=(int)(100*enroll_res.initial_cur_yield_rate[3]);
00550 initial_ar_dist=(int)(100*enroll_res.initial_offers_rate[4]);
00551 initial_yr_dist=(int)(100*enroll_res.initial_cur_yield_rate[4]);
00552 #endif
00553
00554
00555 bar[0][0]=enroll_res.total_matrics[UG_TRADITION];
00556 bar[1][0]=enroll_res.total_matrics[UG_NONTRADITION];
00557 bar[2][0]=enroll_res.total_matrics[MASTER];
00558 bar[3][0]=enroll_res.total_matrics[DOCTOR];
00559 bar[4][0]=enroll_res.total_matrics[DISTANCE_LEARN];
00560
00561 bar[0][1]=enroll_res.total_offers[UG_TRADITION]-bar[0][0];
00562 bar[1][1]=enroll_res.total_offers[UG_NONTRADITION]-bar[1][0];
00563 bar[2][1]=enroll_res.total_offers[MASTER]-bar[2][0];
00564 bar[3][1]=enroll_res.total_offers[DOCTOR]-bar[3][0];
00565 bar[4][1]=enroll_res.total_offers[DISTANCE_LEARN]-bar[4][0];
00566
00567 bar[0][2]=enroll_res.total_applications[UG_TRADITION]-bar[0][1]-bar[0][0];
00568 bar[1][2]=enroll_res.total_applications[UG_NONTRADITION]-bar[1][1]-bar[1][0];
00569 bar[2][2]=enroll_res.total_applications[MASTER]-bar[2][1]-bar[2][0];
00570 bar[3][2]=enroll_res.total_applications[DOCTOR]-bar[3][1]-bar[3][0];
00571 bar[4][2]=enroll_res.total_applications[DISTANCE_LEARN]-bar[4][1]-bar[4][0];
00572
00573
00574 #if(GAME_VERSION>=200)
00575 sliderVar1=enroll_res.target_enrollment[0];
00576 sliderVar2=enroll_res.target_enrollment[1];
00577 sliderVar3=enroll_res.target_enrollment[2];
00578 #else
00579 sliderVar1=enroll_res.target_student_intake[0];
00580 sliderVar2=enroll_res.target_student_intake[1];
00581 sliderVar3=enroll_res.target_student_intake[2];
00582 sliderVar5=enroll_res.target_student_intake[4];
00583 #endif
00584
00585
00586
00587
00588
00589
00590
00591
00592
00593 if (refreshFlag == INFO_REPAINT) {
00594
00595 user_interface.brighten(REPORT_X1, REPORT_Y1+30,
00596 REPORT_X2,
00597 REPORT_Y1+81+MODE_ADMISSION_BOX_HEIGHT);
00598 user_interface.rect(REPORT_X1, REPORT_Y1+25,
00599 REPORT_X2,
00600 REPORT_Y1+55+MODE_ADMISSION_BOX_HEIGHT);
00601 user_interface.rect(REPORT_X1+MODE_ADMISSION_BOX_WIDTH1,
00602 REPORT_Y1+25,
00603 REPORT_X1+MODE_ADMISSION_BOX_WIDTH1+MODE_ADMISSION_BOX_WIDTH2,
00604 REPORT_Y1+55+MODE_ADMISSION_BOX_HEIGHT);
00605 user_interface.rect(REPORT_X1+MODE_ADMISSION_BOX_WIDTH1+MODE_ADMISSION_BOX_WIDTH2-3,
00606 REPORT_Y1+25,
00607 REPORT_X1+MODE_ADMISSION_BOX_WIDTH1+MODE_ADMISSION_BOX_WIDTH2+MODE_ADMISSION_BOX_WIDTH3,
00608 REPORT_Y1+55+MODE_ADMISSION_BOX_HEIGHT);
00609 user_interface.rect(
00610 REPORT_X1,
00611 REPORT_Y1+25,
00612 REPORT_X2,
00613 REPORT_Y1+81+MODE_ADMISSION_BOX_HEIGHT);
00614
00615 if (mode_init_flag != MODE_ADMISSION) {
00616
00617 mode_init_flag = MODE_ADMISSION;
00618
00619 if(mode_admission_no_scaling_bitmap) {
00620 mem_del(mode_admission_no_scaling_bitmap);
00621 mode_admission_no_scaling_bitmap=NULL;
00622 }
00623
00624 for (int i = 0; i < 5; i++) {
00625 if(mode_admission_no_ar_bitmap[i]) {
00626 mem_del(mode_admission_no_ar_bitmap[i]);
00627 mode_admission_no_ar_bitmap[i]=NULL;
00628 }
00629
00630 if(mode_admission_no_yr_bitmap[i]) {
00631 mem_del(mode_admission_no_yr_bitmap[i]);
00632 mode_admission_no_yr_bitmap[i]=NULL;
00633 }
00634
00635 if(mode_admission_no_bar_bitmap[i]) {
00636 mem_del(mode_admission_no_bar_bitmap[i]);
00637 mode_admission_no_bar_bitmap[i]=NULL;
00638 }
00639 }
00640
00641 mode_admission_no_ar_bitmap[0]
00642 =vga_back.save_area((REPORT_X2)-150,
00643 (REPORT_Y1)+MODE_ADMISSION_BARCHART_ROW1,
00644 (REPORT_X2)-75,
00645 (REPORT_Y1)+MODE_ADMISSION_BARCHART_ROW1+font_chartsm.max_font_height,
00646 mode_admission_no_ar_bitmap[0]);
00647 mode_admission_no_ar_bitmap[1]
00648 =vga_back.save_area((REPORT_X2)-150,
00649 (REPORT_Y1)+MODE_ADMISSION_BARCHART_ROW2,
00650 (REPORT_X2)-75,
00651 (REPORT_Y1)+MODE_ADMISSION_BARCHART_ROW2+font_chartsm.max_font_height,
00652 mode_admission_no_ar_bitmap[1]);
00653 mode_admission_no_ar_bitmap[2]
00654 =vga_back.save_area((REPORT_X2)-150,
00655 (REPORT_Y1)+MODE_ADMISSION_BARCHART_ROW3,
00656 (REPORT_X2)-75,
00657 (REPORT_Y1)+MODE_ADMISSION_BARCHART_ROW3+font_chartsm.max_font_height,
00658 mode_admission_no_ar_bitmap[2]);
00659 mode_admission_no_ar_bitmap[3]
00660 =vga_back.save_area((REPORT_X2)-150,
00661 (REPORT_Y1)+MODE_ADMISSION_BARCHART_ROW4,
00662 (REPORT_X2)-75,
00663 (REPORT_Y1)+MODE_ADMISSION_BARCHART_ROW4+font_chartsm.max_font_height,
00664 mode_admission_no_ar_bitmap[3]);
00665 mode_admission_no_ar_bitmap[4]
00666 =vga_back.save_area((REPORT_X2)-150,
00667 (REPORT_Y1)+MODE_ADMISSION_BARCHART_ROW5,
00668 (REPORT_X2)-75,
00669 (REPORT_Y1)+MODE_ADMISSION_BARCHART_ROW5+font_chartsm.max_font_height,
00670 mode_admission_no_ar_bitmap[4]);
00671
00672 mode_admission_no_yr_bitmap[0]
00673 =vga_back.save_area((REPORT_X2)-75,
00674 (REPORT_Y1)+MODE_ADMISSION_BARCHART_ROW1,
00675 (REPORT_X2),
00676 (REPORT_Y1)+MODE_ADMISSION_BARCHART_ROW1+font_chartsm.max_font_height,
00677 mode_admission_no_yr_bitmap[0]);
00678 mode_admission_no_yr_bitmap[1]
00679 =vga_back.save_area((REPORT_X2)-75,
00680 (REPORT_Y1)+MODE_ADMISSION_BARCHART_ROW2,
00681 (REPORT_X2),
00682 (REPORT_Y1)+MODE_ADMISSION_BARCHART_ROW2+font_chartsm.max_font_height,
00683 mode_admission_no_yr_bitmap[1]);
00684 mode_admission_no_yr_bitmap[2]
00685 =vga_back.save_area((REPORT_X2)-75,
00686 (REPORT_Y1)+MODE_ADMISSION_BARCHART_ROW3,
00687 (REPORT_X2),
00688 (REPORT_Y1)+MODE_ADMISSION_BARCHART_ROW3+font_chartsm.max_font_height,
00689 mode_admission_no_yr_bitmap[2]);
00690 mode_admission_no_yr_bitmap[3]
00691 =vga_back.save_area((REPORT_X2)-75,
00692 (REPORT_Y1)+MODE_ADMISSION_BARCHART_ROW4,
00693 (REPORT_X2),
00694 (REPORT_Y1)+MODE_ADMISSION_BARCHART_ROW4+font_chartsm.max_font_height,
00695 mode_admission_no_yr_bitmap[3]);
00696 mode_admission_no_yr_bitmap[4]
00697 =vga_back.save_area((REPORT_X2)-75,
00698 (REPORT_Y1)+MODE_ADMISSION_BARCHART_ROW5,
00699 (REPORT_X2),
00700 (REPORT_Y1)+MODE_ADMISSION_BARCHART_ROW5+font_chartsm.max_font_height,
00701 mode_admission_no_yr_bitmap[4]);
00702
00703 mode_admission_no_bar_bitmap[0]
00704 =vga_back.save_area(
00705 (REPORT_X1)+MODE_ADMISSION_BOX_WIDTH1,
00706 (REPORT_Y1)+MODE_ADMISSION_BARCHART_ROW1,
00707 (REPORT_X1)+MODE_ADMISSION_BOX_WIDTH1+MODE_ADMISSION_BOX_WIDTH2,
00708 (REPORT_Y1)+MODE_ADMISSION_BARCHART_ROW1+14,
00709 mode_admission_no_bar_bitmap[0]);
00710 mode_admission_no_bar_bitmap[1]
00711 =vga_back.save_area(
00712 (REPORT_X1)+MODE_ADMISSION_BOX_WIDTH1,
00713 (REPORT_Y1)+MODE_ADMISSION_BARCHART_ROW2,
00714 (REPORT_X1)+MODE_ADMISSION_BOX_WIDTH1+MODE_ADMISSION_BOX_WIDTH2,
00715 (REPORT_Y1)+MODE_ADMISSION_BARCHART_ROW2+14,
00716 mode_admission_no_bar_bitmap[1]);
00717 mode_admission_no_bar_bitmap[2]
00718 =vga_back.save_area(
00719 (REPORT_X1)+MODE_ADMISSION_BOX_WIDTH1,
00720 (REPORT_Y1)+MODE_ADMISSION_BARCHART_ROW3,
00721 (REPORT_X1)+MODE_ADMISSION_BOX_WIDTH1+MODE_ADMISSION_BOX_WIDTH2,
00722 (REPORT_Y1)+MODE_ADMISSION_BARCHART_ROW3+14,
00723 mode_admission_no_bar_bitmap[2]);
00724 mode_admission_no_bar_bitmap[3]
00725 =vga_back.save_area(
00726 (REPORT_X1)+MODE_ADMISSION_BOX_WIDTH1,
00727 (REPORT_Y1)+MODE_ADMISSION_BARCHART_ROW4,
00728 (REPORT_X1)+MODE_ADMISSION_BOX_WIDTH1+MODE_ADMISSION_BOX_WIDTH2,
00729 (REPORT_Y1)+MODE_ADMISSION_BARCHART_ROW4+14,
00730 mode_admission_no_bar_bitmap[3]);
00731 mode_admission_no_bar_bitmap[4]
00732 =vga_back.save_area(
00733 (REPORT_X1)+MODE_ADMISSION_BOX_WIDTH1,
00734 (REPORT_Y1)+MODE_ADMISSION_BARCHART_ROW5,
00735 (REPORT_X1)+MODE_ADMISSION_BOX_WIDTH1+MODE_ADMISSION_BOX_WIDTH2,
00736 (REPORT_Y1)+MODE_ADMISSION_BARCHART_ROW5+14,
00737 mode_admission_no_bar_bitmap[4]);
00738
00739 #if(GAME_VERSION>=200)
00740 mode_admission_target[0].init(
00741 REPORT_X1+MODE_ADMISSION_BOX_WIDTH1+20,
00742 REPORT_Y1+MODE_ADMISSION_BARCHART_ROW1+19,
00743 MODE_ADMISSION_SLIDER_WIDTH,
00744 MODE_FINANCIAL_AID_VALUE_SLIDER_HEIGHT-1,
00745 0.8*enroll_res.new_year_student_count[0], 1.2*enroll_res.new_year_student_count[0], &sliderVar1, 1, V_BROWN, 1);
00746
00747 mode_admission_target[1].init(
00748 REPORT_X1+MODE_ADMISSION_BOX_WIDTH1+20,
00749 REPORT_Y1+MODE_ADMISSION_BARCHART_ROW2+19,
00750 MODE_ADMISSION_SLIDER_WIDTH,
00751 MODE_FINANCIAL_AID_VALUE_SLIDER_HEIGHT-1,
00752 0.8*enroll_res.new_year_student_count[1], 1.2*enroll_res.new_year_student_count[1], &sliderVar2, 1, V_BROWN, 1);
00753
00754 mode_admission_target[2].init(
00755 REPORT_X1+MODE_ADMISSION_BOX_WIDTH1+20,
00756 REPORT_Y1+MODE_ADMISSION_BARCHART_ROW3+19,
00757 MODE_ADMISSION_SLIDER_WIDTH,
00758 MODE_FINANCIAL_AID_VALUE_SLIDER_HEIGHT-1,
00759 0.8*enroll_res.new_year_student_count[2], 1.2*enroll_res.new_year_student_count[2], &sliderVar3, 1, V_BROWN, 1);
00760 #else
00761 mode_admission_target[0].init(
00762 REPORT_X1+MODE_ADMISSION_BOX_WIDTH1+20,
00763 REPORT_Y1+MODE_ADMISSION_BARCHART_ROW1+19,
00764 MODE_ADMISSION_SLIDER_WIDTH,
00765 MODE_FINANCIAL_AID_VALUE_SLIDER_HEIGHT-1,
00766 0, bar[0][0]+bar[0][1]+bar[0][2], &sliderVar1, 1, V_BROWN, 1);
00767
00768
00769 last_year_tar = enroll_res.last_year_target_student_intake[0];
00770
00771 target_pos = (short)((((float)mode_admission_target[0].value_slider_x2 - (float)mode_admission_target[0].value_slider_x1) / (float)mode_admission_target[0].max_val)*last_year_tar);
00772 if(last_year_tar >= mode_admission_target[0].max_val)
00773 last_year_tar = mode_admission_target[0].max_val;
00774 if(last_year_tar <= mode_admission_target[0].min_val)
00775 last_year_tar = 0;
00776 mode_admission_target[0].init_target(
00777 mode_admission_target[0].value_slider_x1 + target_pos -1,
00778 REPORT_Y1+MODE_ADMISSION_BARCHART_ROW1+17,
00779 MODE_FINANCIAL_AID_VALUE_SLIDER_HEIGHT+8,
00780 1, V_RED,V_RED);
00781
00782 mode_admission_target[1].init(
00783 REPORT_X1+MODE_ADMISSION_BOX_WIDTH1+20,
00784 REPORT_Y1+MODE_ADMISSION_BARCHART_ROW2+19,
00785 MODE_ADMISSION_SLIDER_WIDTH,
00786 MODE_FINANCIAL_AID_VALUE_SLIDER_HEIGHT-1,
00787 0, bar[1][0]+bar[1][1]+bar[1][2], &sliderVar2, 1, V_BROWN, 1);
00788
00789 last_year_tar = enroll_res.last_year_target_student_intake[1];
00790 target_pos = (short)((((float)mode_admission_target[1].value_slider_x2 - (float)mode_admission_target[1].value_slider_x1) / (float)mode_admission_target[1].max_val)*last_year_tar);
00791 if(last_year_tar >= mode_admission_target[1].max_val)
00792 last_year_tar = mode_admission_target[1].max_val;
00793 if(last_year_tar <= mode_admission_target[1].min_val)
00794 last_year_tar = 0;
00795 mode_admission_target[1].init_target(
00796 mode_admission_target[1].value_slider_x1 + target_pos -1,
00797 REPORT_Y1+MODE_ADMISSION_BARCHART_ROW2+17,
00798 MODE_FINANCIAL_AID_VALUE_SLIDER_HEIGHT+8,
00799 1, V_RED,V_RED);
00800
00801 mode_admission_target[2].init(
00802 REPORT_X1+MODE_ADMISSION_BOX_WIDTH1+20,
00803 REPORT_Y1+MODE_ADMISSION_BARCHART_ROW3+19,
00804 MODE_ADMISSION_SLIDER_WIDTH,
00805 MODE_FINANCIAL_AID_VALUE_SLIDER_HEIGHT-1,
00806 0, bar[2][0]+bar[2][1]+bar[2][2], &sliderVar3, 1, V_BROWN, 1);
00807
00808 last_year_tar = enroll_res.last_year_target_student_intake[2];
00809 target_pos = (short)((((float)mode_admission_target[2].value_slider_x2 - (float)mode_admission_target[2].value_slider_x1) / (float)mode_admission_target[2].max_val)*last_year_tar);
00810 if(last_year_tar >= mode_admission_target[2].max_val)
00811 last_year_tar = mode_admission_target[2].max_val;
00812 if(last_year_tar <= mode_admission_target[2].min_val)
00813 last_year_tar = 0;
00814 mode_admission_target[2].init_target(
00815 mode_admission_target[2].value_slider_x1 + target_pos -1,
00816 REPORT_Y1+MODE_ADMISSION_BARCHART_ROW3+17,
00817 MODE_FINANCIAL_AID_VALUE_SLIDER_HEIGHT+8,
00818 1, V_RED,V_RED);
00819 #endif
00820
00821 #if(GAME_VERSION>=200) // Remove Target bar
00822 #else
00823 mode_admission_target[4].init(
00824 REPORT_X1+MODE_ADMISSION_BOX_WIDTH1+20,
00825 REPORT_Y1+MODE_ADMISSION_BARCHART_ROW5+19,
00826 MODE_ADMISSION_SLIDER_WIDTH,
00827 MODE_FINANCIAL_AID_VALUE_SLIDER_HEIGHT-1,
00828 0, bar[4][0]+bar[4][1]+bar[4][2], &sliderVar5, 1, V_BROWN, 1);
00829
00830 last_year_tar = enroll_res.last_year_target_student_intake[4];
00831 last_year_tar = enroll_res.target_student_intake[4];
00832 target_pos = (short)((((float)mode_admission_target[4].value_slider_x2 - (float)mode_admission_target[4].value_slider_x1) / (float)mode_admission_target[4].max_val)*last_year_tar);
00833 if(last_year_tar >= mode_admission_target[4].max_val)
00834 last_year_tar = mode_admission_target[4].max_val;
00835 if(last_year_tar <= mode_admission_target[4].min_val)
00836 last_year_tar = 0;
00837 mode_admission_target[4].init_target(
00838 mode_admission_target[4].value_slider_x1 + target_pos -1,
00839 REPORT_Y1+MODE_ADMISSION_BARCHART_ROW5+17,
00840 MODE_FINANCIAL_AID_VALUE_SLIDER_HEIGHT+8,
00841 1, V_RED,V_RED);
00842 #endif
00843
00844 mode_admission_target[0].refresh();
00845 mode_admission_target[1].refresh();
00846 mode_admission_target[2].refresh();
00847 #if(GAME_VERSION>=200) // Remove target bar refresh
00848 #else
00849 mode_admission_target[4].refresh();
00850 #endif
00851
00852 }
00853 else {
00854
00855 }
00856
00857
00858 font_chartsm.put(
00859 (REPORT_X2)-425,
00860 (REPORT_Y1)+11,
00861 "Number of students");
00862 font_chartsm.put(
00863 (REPORT_X2)-125,
00864 (REPORT_Y1)-1,
00865 mode_admission_label1[0]);
00866 font_chartsm.put(
00867 (REPORT_X2)-50,
00868 (REPORT_Y1)-1,
00869 mode_admission_label1[1]);
00870 font_chartsm.put(
00871 (REPORT_X2)-120,
00872 (REPORT_Y1)+11,
00873 mode_admission_label1[2]);
00874 font_chartsm.put(
00875 (REPORT_X2)-50,
00876 (REPORT_Y1)+11,
00877 mode_admission_label1[2]);
00878
00879 font_chartsm.put_paragraph(
00880 (REPORT_X1)+80,
00881 (REPORT_Y1)+MODE_ADMISSION_BARCHART_ROW1-10,
00882 (REPORT_X1)+180,
00883 (REPORT_Y1)+MODE_ADMISSION_BARCHART_ROW1+30,
00884 mode_admission_label2[0],-1);
00885
00886 font_chartsm.put_paragraph(
00887 (REPORT_X1)+80,
00888 (REPORT_Y1)+MODE_ADMISSION_BARCHART_ROW2-15,
00889 (REPORT_X1)+180,
00890 (REPORT_Y1)+MODE_ADMISSION_BARCHART_ROW2+25,
00891 mode_admission_label2[1],-1);
00892 font_chartsm.put(
00893 (REPORT_X1)+110,
00894 (REPORT_Y1)+MODE_ADMISSION_BARCHART_ROW3,
00895 mode_admission_label2[2]);
00896 font_chartsm.put(
00897 (REPORT_X1)+107,
00898 (REPORT_Y1)+MODE_ADMISSION_BARCHART_ROW4,
00899 mode_admission_label2[3]);
00900 #if(GAME_VERSION>=200) // Remove "Distance Learning"
00901 #else
00902 font_chartsm.put(
00903 (REPORT_X1)+60,
00904 (REPORT_Y1)+MODE_ADMISSION_BARCHART_ROW5,
00905 mode_admission_label2[4]);
00906 #endif
00907
00908 #if(GAME_VERSION>=200)
00909 font_chart_red_sm.put(
00910 (REPORT_X1)+60,
00911 (REPORT_Y1)+MODE_ADMISSION_BARCHART_ROW1+20,
00912 "Target enrollment");
00913 font_chart_red_sm.put(
00914 (REPORT_X1)+60,
00915 (REPORT_Y1)+MODE_ADMISSION_BARCHART_ROW2+20,
00916 "Target enrollment");
00917 font_chart_red_sm.put(
00918 (REPORT_X1)+60,
00919 (REPORT_Y1)+MODE_ADMISSION_BARCHART_ROW3+20,
00920 "Target enrollment");
00921 #else
00922 font_chart_red_sm.put(
00923 (REPORT_X1)+110,
00924 (REPORT_Y1)+MODE_ADMISSION_BARCHART_ROW1+20,
00925 "Target");
00926 font_chart_red_sm.put(
00927 (REPORT_X1)+110,
00928 (REPORT_Y1)+MODE_ADMISSION_BARCHART_ROW2+20,
00929 "Target");
00930 font_chart_red_sm.put(
00931 (REPORT_X1)+110,
00932 (REPORT_Y1)+MODE_ADMISSION_BARCHART_ROW3+20,
00933 "Target");
00934 font_chart_red_sm.put(
00935 (REPORT_X1)+110,
00936 (REPORT_Y1)+MODE_ADMISSION_BARCHART_ROW5+20,
00937 "Target");
00938 #endif
00939
00940 font_chartsm.put(
00941 145,
00942 REPORT_Y1+78+MODE_ADMISSION_BOX_HEIGHT-font_chartsm.max_font_height,
00943 mode_admission_label3[0]);
00944 font_chartsm.put(
00945 43+(REPORT_X2-REPORT_X1)/3+4,
00946 REPORT_Y1+78+MODE_ADMISSION_BOX_HEIGHT-font_chartsm.max_font_height,
00947 mode_admission_label3[1]);
00948 font_chartsm.put(
00949 43+2*(REPORT_X2-REPORT_X1)/3+4,
00950 REPORT_Y1+78+MODE_ADMISSION_BOX_HEIGHT-font_chartsm.max_font_height,
00951 mode_admission_label3[2]);
00952
00953 user_interface.bar(
00954 127,
00955 REPORT_Y1+77+MODE_ADMISSION_BOX_HEIGHT-font_chartsm.max_font_height,
00956 139,
00957 REPORT_Y1+89+MODE_ADMISSION_BOX_HEIGHT-font_chartsm.max_font_height,
00958 mode_admission_bar_color[0]);
00959
00960 user_interface.bar(
00961 25+(REPORT_X2-REPORT_X1)/3+4,
00962 REPORT_Y1+77+MODE_ADMISSION_BOX_HEIGHT-font_chartsm.max_font_height,
00963 25+(REPORT_X2-REPORT_X1)/3+16,
00964 REPORT_Y1+89+MODE_ADMISSION_BOX_HEIGHT-font_chartsm.max_font_height,
00965 mode_admission_bar_color[1]);
00966
00967 user_interface.bar(
00968 25+2*(REPORT_X2-REPORT_X1)/3+4,
00969 REPORT_Y1+77+MODE_ADMISSION_BOX_HEIGHT-font_chartsm.max_font_height,
00970 25+2*(REPORT_X2-REPORT_X1)/3+16,
00971 REPORT_Y1+89+MODE_ADMISSION_BOX_HEIGHT-font_chartsm.max_font_height,
00972 mode_admission_bar_color[2]);
00973 }
00974 else {
00975
00976
00977
00978
00979
00980 #if(GAME_VERSION>=200) // Remove Bar text for Target
00981 #else
00982 mode_admission_target[0].max_val=bar[0][0]+bar[0][1]+bar[0][2];
00983 mode_admission_target[1].max_val=bar[1][0]+bar[1][1]+bar[1][2];
00984 mode_admission_target[2].max_val=bar[2][0]+bar[2][1]+bar[2][2];
00985 mode_admission_target[4].max_val=bar[4][0]+bar[4][1]+bar[4][2];
00986 #endif
00987
00988 if(sliderVar1>mode_admission_target[0].max_val)
00989 sliderVar1=mode_admission_target[0].max_val;
00990 if(sliderVar2>mode_admission_target[1].max_val)
00991 sliderVar2=mode_admission_target[1].max_val;
00992 if(sliderVar3>mode_admission_target[2].max_val)
00993 sliderVar3=mode_admission_target[2].max_val;
00994 #if(GAME_VERSION>=200) // Remove Bar for Target
00995 #else
00996 if(sliderVar5>mode_admission_target[4].max_val)
00997 sliderVar5=mode_admission_target[4].max_val;
00998 #endif
00999
01000 int row_tab=0;
01001 #if(GAME_VERSION>=200) // Remove Row Tab
01002 for(int i=0;i<4;i++)
01003 #else
01004 for(int i=0;i<5;i++)
01005 #endif
01006 {
01007 if(i==0)
01008 row_tab = MODE_ADMISSION_BARCHART_ROW1;
01009 else if (i==1)
01010 row_tab = MODE_ADMISSION_BARCHART_ROW2;
01011 else if (i==2)
01012 row_tab = MODE_ADMISSION_BARCHART_ROW3;
01013 #if(GAME_VERSION>=200)
01014 #else
01015 else if (i==4)
01016 row_tab = MODE_ADMISSION_BARCHART_ROW5;
01017 #endif
01018
01019 if(i!=3) {
01020
01021
01022 int update_last_year_tar = enroll_res.last_year_target_student_intake[i];
01023 if(update_last_year_tar >= mode_admission_target[i].max_val)
01024 update_last_year_tar = mode_admission_target[i].max_val;
01025 if(update_last_year_tar <= mode_admission_target[i].min_val)
01026 update_last_year_tar = 0;
01027
01028 int update_target_pos = (short)((((float)mode_admission_target[i].value_slider_x2 - (float)mode_admission_target[i].value_slider_x1) / (float)mode_admission_target[i].max_val)*update_last_year_tar);
01029
01030 mode_admission_target[i].set_target(
01031 mode_admission_target[i].value_slider_x1 + update_target_pos -1,
01032 REPORT_Y1+row_tab+16,
01033 MODE_FINANCIAL_AID_VALUE_SLIDER_HEIGHT +8,
01034 1, V_RED,V_RED);
01035
01036
01037
01038
01039
01040
01041
01042
01043
01044
01045
01046
01047
01048 vga_back.rest_area(mode_admission_no_ar_bitmap[i], 0, 0);
01049 vga_back.rest_area(mode_admission_no_yr_bitmap[i], 0, 0);
01050 vga_back.rest_area(mode_admission_no_bar_bitmap[i], 0, 0);
01051
01052 mode_admission_target[i].refresh();
01053
01054 }
01055 }
01056 }
01057
01058
01059 font_chartsm.center_put((REPORT_X2)-150,
01060 (REPORT_Y1)+MODE_ADMISSION_BARCHART_ROW1,
01061 (REPORT_X2)-75,
01062 (REPORT_Y1)+MODE_ADMISSION_BARCHART_ROW1+font_chartsm.max_font_height,
01063 m.format(ar_tug, 3));
01064 font_chartsm.center_put((REPORT_X2)-75,
01065 (REPORT_Y1)+MODE_ADMISSION_BARCHART_ROW1,
01066 (REPORT_X2),
01067 (REPORT_Y1)+MODE_ADMISSION_BARCHART_ROW1+font_chartsm.max_font_height,
01068 m.format(yr_tug, 3));
01069
01070 font_chartsm.center_put((REPORT_X2)-150,
01071 (REPORT_Y1)+MODE_ADMISSION_BARCHART_ROW2,
01072 (REPORT_X2)-75,
01073 (REPORT_Y1)+MODE_ADMISSION_BARCHART_ROW2+font_chartsm.max_font_height,
01074 m.format(ar_ug, 3));
01075 font_chartsm.center_put((REPORT_X2)-75,
01076 (REPORT_Y1)+MODE_ADMISSION_BARCHART_ROW2,
01077 (REPORT_X2),
01078 (REPORT_Y1)+MODE_ADMISSION_BARCHART_ROW2+font_chartsm.max_font_height,
01079 m.format(yr_ug, 3));
01080
01081 font_chartsm.center_put((REPORT_X2)-150,
01082 (REPORT_Y1)+MODE_ADMISSION_BARCHART_ROW3,
01083 (REPORT_X2)-75,
01084 (REPORT_Y1)+MODE_ADMISSION_BARCHART_ROW3+font_chartsm.max_font_height,
01085 m.format(ar_master, 3));
01086 font_chartsm.center_put((REPORT_X2)-75,
01087 (REPORT_Y1)+MODE_ADMISSION_BARCHART_ROW3,
01088 (REPORT_X2),
01089 (REPORT_Y1)+MODE_ADMISSION_BARCHART_ROW3+font_chartsm.max_font_height,
01090 m.format(yr_master, 3));
01091
01092 font_chartsm.center_put((REPORT_X2)-150,
01093 (REPORT_Y1)+MODE_ADMISSION_BARCHART_ROW4,
01094 (REPORT_X2)-75,
01095 (REPORT_Y1)+MODE_ADMISSION_BARCHART_ROW4+font_chartsm.max_font_height,
01096 m.format(ar_doc, 3));
01097 font_chartsm.center_put((REPORT_X2)-75,
01098 (REPORT_Y1)+MODE_ADMISSION_BARCHART_ROW4,
01099 (REPORT_X2),
01100 (REPORT_Y1)+MODE_ADMISSION_BARCHART_ROW4+font_chartsm.max_font_height,
01101 m.format(yr_doc, 3));
01102
01103 #if(GAME_VERSION>=200) // Remove current value
01104 #else
01105 font_chartsm.center_put((REPORT_X2)-150,
01106 (REPORT_Y1)+MODE_ADMISSION_BARCHART_ROW5,
01107 (REPORT_X2)-75,
01108 (REPORT_Y1)+MODE_ADMISSION_BARCHART_ROW5+font_chartsm.max_font_height,
01109 m.format(ar_dist, 3));
01110 font_chartsm.center_put((REPORT_X2)-75,
01111 (REPORT_Y1)+MODE_ADMISSION_BARCHART_ROW5,
01112 (REPORT_X2),
01113 (REPORT_Y1)+MODE_ADMISSION_BARCHART_ROW5+font_chartsm.max_font_height,
01114 m.format(yr_dist, 3));
01115 #endif
01116
01117
01118 #if(GAME_VERSION>=200)
01119 font_chart_purple_sm.center_put((REPORT_X2)-150,
01120 (REPORT_Y1)+MODE_ADMISSION_BARCHART_ROW1+font_chart_purple_sm.max_font_height+3,
01121 (REPORT_X2)-75,
01122 (REPORT_Y1)+MODE_ADMISSION_BARCHART_ROW1+font_chart_purple_sm.max_font_height*2,
01123 m.format(initial_ar_tug, 3));
01124 font_chart_purple_sm.center_put((REPORT_X2)-75,
01125 (REPORT_Y1)+MODE_ADMISSION_BARCHART_ROW1+font_chart_purple_sm.max_font_height+3,
01126 (REPORT_X2),
01127 (REPORT_Y1)+MODE_ADMISSION_BARCHART_ROW1+font_chart_purple_sm.max_font_height*2,
01128 m.format(initial_yr_tug, 3));
01129
01130 font_chart_purple_sm.center_put((REPORT_X2)-150,
01131 (REPORT_Y1)+MODE_ADMISSION_BARCHART_ROW2+font_chart_purple_sm.max_font_height+3,
01132 (REPORT_X2)-75,
01133 (REPORT_Y1)+MODE_ADMISSION_BARCHART_ROW2+font_chart_purple_sm.max_font_height*2,
01134 m.format(initial_ar_ug, 3));
01135 font_chart_purple_sm.center_put((REPORT_X2)-75,
01136 (REPORT_Y1)+MODE_ADMISSION_BARCHART_ROW2+font_chart_purple_sm.max_font_height+3,
01137 (REPORT_X2),
01138 (REPORT_Y1)+MODE_ADMISSION_BARCHART_ROW2+font_chart_purple_sm.max_font_height*2,
01139 m.format(initial_yr_ug, 3));
01140
01141 font_chart_purple_sm.center_put((REPORT_X2)-150,
01142 (REPORT_Y1)+MODE_ADMISSION_BARCHART_ROW3+font_chart_purple_sm.max_font_height+3,
01143 (REPORT_X2)-75,
01144 (REPORT_Y1)+MODE_ADMISSION_BARCHART_ROW3+font_chart_purple_sm.max_font_height*2,
01145 m.format(initial_ar_master, 3));
01146 font_chart_purple_sm.center_put((REPORT_X2)-75,
01147 (REPORT_Y1)+MODE_ADMISSION_BARCHART_ROW3+font_chart_purple_sm.max_font_height+3,
01148 (REPORT_X2),
01149 (REPORT_Y1)+MODE_ADMISSION_BARCHART_ROW3+font_chart_purple_sm.max_font_height*2,
01150 m.format(initial_yr_master, 3));
01151
01152 font_chart_purple_sm.center_put((REPORT_X2)-150,
01153 (REPORT_Y1)+MODE_ADMISSION_BARCHART_ROW4+font_chart_purple_sm.max_font_height+3,
01154 (REPORT_X2)-75,
01155 (REPORT_Y1)+MODE_ADMISSION_BARCHART_ROW4+font_chart_purple_sm.max_font_height*2,
01156 m.format(initial_ar_doc, 3));
01157 font_chart_purple_sm.center_put((REPORT_X2)-75,
01158 (REPORT_Y1)+MODE_ADMISSION_BARCHART_ROW4+font_chart_purple_sm.max_font_height+3,
01159 (REPORT_X2),
01160 (REPORT_Y1)+MODE_ADMISSION_BARCHART_ROW4+font_chart_purple_sm.max_font_height*2,
01161 m.format(initial_yr_doc, 3));
01162
01163
01164
01165
01166
01167
01168
01169
01170
01171
01172
01173
01174
01175 #endif
01176
01177
01178
01179 int series_x1 = (REPORT_X1)+MODE_ADMISSION_BOX_WIDTH1+10;
01180 int series_x2 = (REPORT_X1)+MODE_ADMISSION_BOX_WIDTH1+MODE_ADMISSION_BOX_WIDTH2-10;
01181 int total,lastpos,newpos,barlen;
01182 int i;
01183
01184
01185 for(i=0,total=0;i<3;i++) {
01186 total+=bar[0][i];
01187 }
01188
01189
01190 if(total==0)total=1;
01191
01192 for(i=0,lastpos=series_x1;i<3;i++) {
01193 barlen=bar[0][i]*(series_x2-series_x1)/total;
01194 if(barlen<=0)barlen=0;
01195 newpos=lastpos+barlen;
01196 user_interface.bar(
01197 lastpos,
01198 (REPORT_Y1)+MODE_ADMISSION_BARCHART_ROW1,
01199 newpos,
01200 (REPORT_Y1)+MODE_ADMISSION_BARCHART_ROW1+13,
01201 mode_admission_bar_color[i]);
01202 if(barlen>20)
01203 font_barcharts.center_put(
01204 lastpos,
01205 (REPORT_Y1)+MODE_ADMISSION_BARCHART_ROW1,
01206 newpos,
01207 (REPORT_Y1)+MODE_ADMISSION_BARCHART_ROW1+13,
01208 m.format(bar[0][i],4)
01209 );
01210 lastpos=newpos;
01211 }
01212
01213
01214 for(i=0,total=0;i<3;i++) {
01215 total+=bar[1][i];
01216 }
01217
01218
01219 if(total==0)total=1;
01220
01221 for(i=0,lastpos=series_x1;i<3;i++) {
01222 barlen=bar[1][i]*(series_x2-series_x1)/total;
01223 if(barlen<=0)barlen=0;
01224 newpos=lastpos+barlen;
01225 user_interface.bar(
01226 lastpos,
01227 (REPORT_Y1)+MODE_ADMISSION_BARCHART_ROW2,
01228 newpos,
01229 (REPORT_Y1)+MODE_ADMISSION_BARCHART_ROW2+13,
01230 mode_admission_bar_color[i]);
01231 if(barlen>20)
01232 font_barcharts.center_put(
01233 lastpos,
01234 (REPORT_Y1)+MODE_A