00001
00002
00003
00004
00005
00006 #include <OSYS.H>
00007 #include <OSTR.H>
00008 #include <OMISC.H>
00009 #include <OPSCHOOL.H>
00010 #include <OGAMESET.H>
00011 #include <OWORLDMT.H>
00012 #include <ODEPT.H>
00013 #include <OVGA.H>
00014 #include <OIFACE.H>
00015 #include <OINFO.H>
00016 #include <COLOR.H>
00017 #include <OFONT.H>
00018 #include <OGAMESTR.H>
00019 #include <OMOUSE.H>
00020 #include <OBUTTON.H>
00021 #include <OTEXT.H>
00022 #include <OHELP.H>
00023 #include <OGRPHYR.H>
00024 #include <OPieChrt.H>
00025 #include <OGRPH_PT.H>
00026 #include <OGRPH_PM.H>
00027 #include <OLIBTECH.H>
00028 #include <ORADIOV.H>
00029 #include <OVALSLDR.H>
00030 #include <OGRPNFYR.H>
00031 #include <OGRPNFT.H>
00032
00033
00034
00035
00036 enum {
00037 BG_PIC_ID = 14
00038 };
00039
00040 enum {
00041 REPORT_X1 = ZOOM_X1,
00042 REPORT_Y1 = ZOOM_Y1+5,
00043 REPORT_X2 = ZOOM_X2-15,
00044 REPORT_Y2 = ZOOM_Y2-35
00045 };
00046
00047 enum {
00048 BOTTOM_BUTTON_X1 = REPORT_X1+120,
00049 BOTTOM_BUTTON_Y1 = REPORT_Y2-20,
00050 BOTTOM_BUTTON_X2 = REPORT_X2,
00051 BOTTOM_BUTTON_Y2 = REPORT_Y2+10
00052 };
00053 #if(GAME_VERSION>=200)
00054 enum {
00055 BOTTOM_BUTTON_WIDTH = 160,
00056 BOTTOM_BUTTON_HEIGHT = 22,
00057 BOTTOM_BUTTON_DISTANCE
00058 = (BOTTOM_BUTTON_X2-BOTTOM_BUTTON_X1-BOTTOM_BUTTON_WIDTH*3)/4
00059 };
00060 #else
00061 enum {
00062 BOTTOM_BUTTON_WIDTH = 250,
00063 BOTTOM_BUTTON_HEIGHT = 22,
00064 BOTTOM_BUTTON_DISTANCE
00065 = (BOTTOM_BUTTON_X2-BOTTOM_BUTTON_X1-BOTTOM_BUTTON_WIDTH*2)/3
00066 };
00067 #endif
00068
00069 enum {
00070 TABLE_COLUMN_COUNT=7,
00071 TABLE_COLUMN_WIDTH=102,
00072 TABLE_X1 = REPORT_X1+10,
00073 TABLE_X2 = TABLE_X1 + TABLE_COLUMN_WIDTH*TABLE_COLUMN_COUNT
00074 };
00075
00076 #if(GAME_VERSION>=200)
00077 enum {
00078 MODE_STATISTICS_GRAPH_WIDTH = 210,
00079 MODE_STATISTICS_GRAPH_HEIGHT = 115,
00080 MODE_STATISTICS_GRAPH_HORIZONTAL_DISTANCE = (REPORT_X2-REPORT_X1-MODE_STATISTICS_GRAPH_WIDTH*3)/3,
00081 MODE_STATISTICS_GRAPH_VERTICAL_DISTANCE = 20,
00082 };
00083 #endif
00084
00085 #if(GAME_VERSION>=200)
00086 static ButtonGroup type_button_group(6);
00087 #else
00088 static ButtonGroup type_button_group(4);
00089 #endif
00090
00091
00092
00093 #if(GAME_VERSION>=200)
00094 static char* reportTypeStrArray[]
00095 = {
00096 "Overview","Class types","Technology",
00097 "Overview","Summer teaching","Technology",
00098 };
00099 #else
00100 static char* reportTypeStrArray[]
00101 = {
00102 "Overview","Class types",
00103 "Overview","Summer teaching and technology",
00104 };
00105 #endif
00106
00107
00108 static char *mode_course_title = "Course report";
00109 static char *mode_course_label[] = {
00110 "Class type",
00111 "Number of sections",
00112 "Enrollment",
00113 "Average class\r\nsize (Norm)",
00114 "Class size deviation from norm",
00115 "Students denied entrance\r\nto courses",
00116
00117 "Percent failing courses\r\n(prior trimester)",
00118 "Overall average class size"
00119 };
00120 static char *mode_teaching_label[] = {
00121 "Small seminars",
00122 "Medium-sized classes",
00123 "Lecture courses with section meetings",
00124 "Distance learning courses",
00125 "Total",
00126 };
00127
00128 enum { DISP_TEACHING_METHOD_COUNT = 4 };
00129
00130 static char mode_teaching_id[] = {
00131 SEMINAR,
00132 GENERAL,
00133 CLASS_WITH_BREAKOUT,
00134 DISTANCE_LEARN_COURSE,
00135 BREAKOUT_LAB,
00136
00137
00138 };
00139
00140 enum { REPORT_MODE_COUNT = 2 };
00141 enum { REPORT_MODE_INSTITUTION, REPORT_MODE_DEPARTMENT};
00142
00143 #if(GAME_VERSION>=200)
00144 enum {
00145 REPORT_TYPE_DEPARTMENT_OVERVIEW, REPORT_TYPE_DEPARTMENT_CLASSTYPES, REPORT_TYPE_DEPARTMENT_TECHNOLOGY,
00146 REPORT_TYPE_INSTITUTION_OVERVIEW, REPORT_TYPE_INSTITUTION_SUMMERTEACHING, REPORT_TYPE_INSTITUTION_TECHNOLOGY,
00147 };
00148 #else
00149 enum {
00150 REPORT_TYPE_DEPARTMENT_OVERVIEW, REPORT_TYPE_DEPARTMENT_CLASSTYPES,
00151 REPORT_TYPE_INSTITUTION_OVERVIEW, REPORT_TYPE_INSTITUTION_SUMMERTEACHING,
00152 };
00153 #endif
00154
00155 static char current_report_mode=REPORT_MODE_DEPARTMENT;
00156
00157 static char report_init_flag = 0;
00158
00159
00160 static GraphPerformanceIndicatorTrimester mode_course_graphicon;
00161 static Text mode_course_text2;
00162 static Text mode_course_text[MAX_TEACHING_METHOD_N_TOTAL][8];
00163
00164
00165 static Text mode_course_current_fraction1;
00166 static Text mode_course_current_fraction2;
00167 static Text mode_course_current_fraction3;
00168 static PieChart mode_course_piechart1;
00169 static PieChart mode_course_piechart2;
00170 static ValueSlider mode_course_valueslider1;
00171 static ValueSlider mode_course_valueslider2;
00172 static ValueSlider mode_course_valueslider3;
00173
00174
00175 static RadioButtonVert mode_course_rbv;
00176 static ValueSlider mode_course_valueslider4;
00177 static GraphPerformanceIndicatorMonth mode_course_graphicon2;
00178 static char* mode_course_rblabel[]= {
00179 "None",
00180 "Encourage summer enrollment",
00181 "Strongly encourage summer enrollment",
00182 #if(GAME_VERSION>=200)
00183 "Require traditional undergraduates to enroll for at least two summer sessions before graduation.",
00184 #else
00185 "Require traditional undergraduates to enroll for at least two summer trimesters before graduation.",
00186 #endif
00187 };
00188
00189 #if(GAME_VERSION>=200)
00190
00191 static ValueSlider mode_course_technology_slider[3];
00192
00193 static GraphNonFinancialTrimester it_utilization_graph;
00194 static GraphNonFinancialYear outsourcing_credits_graph;
00195 static GraphNonFinancialTrimester distance_credits_graph;
00196 static char* graphTypeStrArray[]
00197 = {
00198 "Percentage of courses redesigned to make optimal use of information technology",
00199 "Outsourced credits",
00200 "Distance learning credits provided",
00201 };
00202 static char* sliderTypeStrArray[]
00203 = {
00204 "Departmental incentives for faculty to optimize IT in teaching",
00205 "Ease of outsourcing credits for closed courses",
00206 "Priority for provision of distance learning credits",
00207 };
00208 #endif
00209
00210 enum {
00211 MODE_PRIORITY_BOX_HEIGHT = 165,
00212 MODE_PRIORITY_BOX_WIDTH = 650,
00213 MODE_PRIORITY_BOX_TAB1 = 40,
00214 MODE_PRIORITY_BOX_TAB2 = 240,
00215 #if(GAME_VERSION>=200)
00216 MODE_PRIORITY_BOX_TAB3 = 360,
00217 #else
00218 MODE_PRIORITY_BOX_TAB3 = 380,
00219 #endif
00220 MODE_PRIORITY_VALUE_SLIDER_HEIGHT = 18,
00221 MODE_PRIORITY_VALUE_SLIDER_WIDTH = 180,
00222 };
00223
00224
00225
00226
00230
00231 if(department_array.current_report_type==REPORT_TYPE_INSTITUTION_OVERVIEW) {
00232 current_report_mode=REPORT_MODE_INSTITUTION;
00233 sys.is_institution_report=1;
00234 course_report_1(refreshFlag);
00235 }
00236 else if(department_array.current_report_type==REPORT_TYPE_DEPARTMENT_OVERVIEW) {
00237 current_report_mode=REPORT_MODE_DEPARTMENT;
00238 sys.is_institution_report=0;
00239 course_report_1(refreshFlag);
00240 }
00241 else if(department_array.current_report_type==REPORT_TYPE_INSTITUTION_SUMMERTEACHING) {
00242 current_report_mode=REPORT_MODE_INSTITUTION;
00243 sys.is_institution_report=1;
00244 course_report_4(refreshFlag);
00245 }
00246 else if(department_array.current_report_type==REPORT_TYPE_DEPARTMENT_CLASSTYPES) {
00247 current_report_mode=REPORT_MODE_DEPARTMENT;
00248 sys.is_institution_report=0;
00249 course_report_2(refreshFlag);
00250 }
00251 #if(GAME_VERSION>=200)
00252 else if(department_array.current_report_type==REPORT_TYPE_INSTITUTION_TECHNOLOGY) {
00253 current_report_mode=REPORT_MODE_INSTITUTION;
00254 sys.is_institution_report=1;
00255 course_report_5(refreshFlag);
00256 }
00257 else if(department_array.current_report_type==REPORT_TYPE_DEPARTMENT_TECHNOLOGY) {
00258 current_report_mode=REPORT_MODE_DEPARTMENT;
00259 sys.is_institution_report=0;
00260 course_report_5(refreshFlag);
00261 }
00262 #endif
00263 }
00264
00265
00266
00267
00269
00270
00271 const static int vtab1=19;
00272 const static int vtab2=63;
00273 const static int vtab3=67;
00274 const static int vtab4=302;
00275 const static int vtab5=305;
00276 const static int vtab6=350;
00277
00278 static int data_num=HISTORY_TRIMESTER_COUNT;
00279 static int *dataArray;
00280 static int v[MAX_TEACHING_METHOD_N_TOTAL][7];
00281 static int v2;
00282
00283
00284 #if(GAME_VERSION>=200)
00285 static int initialv[MAX_TEACHING_METHOD_N_TOTAL][7];
00286 static int initialv2;
00287
00288 memset(initialv,0,sizeof(initialv));
00289 #endif
00290
00291
00292
00293
00294 memset(v,0,sizeof(v));
00295
00296 if(current_report_mode==REPORT_MODE_INSTITUTION) {
00297 for(int i=0;i<MAX_TEACHING_METHOD_N_TOTAL;i++) {
00298 v[i][0]=department_array.class_section_count[i];
00299 v[i][1]=department_array.convention_student_count[i];
00300 v[i][2]=department_array.average_class_size[i];
00301 v[i][3]=department_array.size_deviation[i];
00302 v[i][4]=department_array.admission_denied_count[i];
00303
00304
00305 if(department_array.convention_student_count[i]<1)
00306 v[i][5]=0;
00307 else
00308
00309 v[i][5]=(int)((float)department_array.failure_count[i] / (float)department_array.convention_student_count[i] * 100.0f);
00310
00311 v[i][6]=department_array.normal_class_size[i];
00312
00313
00314 #if(GAME_VERSION>=200)
00315 initialv[i][0]=department_array.initial_class_section_count[i];
00316 initialv[i][1]=department_array.initial_convention_student_count[i];
00317 initialv[i][2]=department_array.initial_average_class_size[i];
00318 initialv[i][3]=department_array.initial_size_deviation[i];
00319 initialv[i][4]=department_array.initial_admission_denied_count[i];
00320 if(department_array.initial_convention_student_count[i]<1)
00321 initialv[i][5]=0;
00322 else
00323 initialv[i][5]=(int)((float)department_array.initial_failure_count[i] / (float)department_array.initial_convention_student_count[i] * 100.0f);
00324 initialv[i][6]=department_array.initial_normal_class_size[i];
00325 #endif
00326
00327
00328 }
00329 dataArray=department_array.experienced_class_size;
00330 v2=dataArray[data_num-1];
00331
00332
00333 #if(GAME_VERSION>=200)
00334 initialv2=department_array.initial_experienced_class_size;
00335 #endif
00336
00337
00338 }
00339 else {
00340 int deptRecno = department_array.selected_recno;
00341 Department* cur_dept_ptr = department_array[deptRecno];
00342 for(int i=0;i<MAX_TEACHING_METHOD_N_TOTAL;i++) {
00343 v[i][0]=cur_dept_ptr->course_array.class_section_count[i];
00344 v[i][1]=cur_dept_ptr->course_array.convention_student_count[i];
00345 v[i][2]=cur_dept_ptr->course_array.average_class_size[i];
00346 v[i][3]=cur_dept_ptr->course_array.size_deviation[i];
00347 v[i][4]=cur_dept_ptr->course_array.admission_denied_count[i];
00348
00349
00350 if(cur_dept_ptr->course_array.convention_student_count[i]<1)
00351 v[i][5]=0;
00352 else
00353
00354 v[i][5]=(int)((float)cur_dept_ptr->course_array.failure_count[i] / (float)cur_dept_ptr->course_array.convention_student_count[i] * 100.0f);
00355
00356 v[i][6]=cur_dept_ptr->course_array.normal_class_size[i];
00357
00358
00359 #if(GAME_VERSION>=200)
00360 initialv[i][0]=cur_dept_ptr->course_array.initial_class_section_count[i];
00361 initialv[i][1]=cur_dept_ptr->course_array.initial_convention_student_count[i];
00362 initialv[i][2]=cur_dept_ptr->course_array.initial_average_class_size[i];
00363 initialv[i][3]=cur_dept_ptr->course_array.initial_size_deviation[i];
00364 initialv[i][4]=cur_dept_ptr->course_array.initial_admission_denied_count[i];
00365 if(cur_dept_ptr->course_array.initial_convention_student_count[i]<1)
00366 initialv[i][5]=0;
00367 else
00368 initialv[i][5]=(int)((float)cur_dept_ptr->course_array.initial_failure_count[i] / (float)cur_dept_ptr->course_array.initial_convention_student_count[i] * 100.0f);
00369 initialv[i][6]=cur_dept_ptr->course_array.initial_normal_class_size[i];
00370 #endif
00371
00372
00373 }
00374 dataArray=cur_dept_ptr->course_array.experienced_class_size;
00375 v2=dataArray[data_num-1];
00376
00377
00378 #if(GAME_VERSION>=200)
00379 initialv2=cur_dept_ptr->course_array.initial_experienced_class_size;
00380 #endif
00381
00382 }
00383
00384
00385
00386
00387
00388
00389
00390
00391
00392
00393
00394
00395
00396
00397
00398
00399
00400
00401
00402
00403
00404
00405
00406
00407 vga.use_back();
00408
00409 if (refreshFlag == INFO_REPAINT) {
00410
00411 user_interface.bg_img(BG_PIC_ID, &vga_back);
00412
00413 user_interface.brighten(REPORT_X1+100,REPORT_Y1-5,REPORT_X1+630,REPORT_Y1+14);
00414 user_interface.rect(REPORT_X1+100,REPORT_Y1-5,REPORT_X1+630,REPORT_Y1+14,1);
00415 font_charts.put(REPORT_X1+320,REPORT_Y1-2,"Courses");
00416
00417 user_interface.brighten(TABLE_X1,REPORT_Y1+vtab1,TABLE_X2,REPORT_Y1+vtab6);
00418
00419 user_interface.rect(
00420 TABLE_X1,REPORT_Y1+vtab5,
00421 TABLE_X2+1,REPORT_Y1+vtab6,1);
00422
00423
00424 user_interface.rect(
00425 TABLE_X1,REPORT_Y1+vtab1,
00426 TABLE_X1+TABLE_COLUMN_WIDTH+17,REPORT_Y1+vtab2+4,1);
00427
00428 user_interface.rect(
00429 TABLE_X1,REPORT_Y1+vtab3,
00430 TABLE_X1+TABLE_COLUMN_WIDTH+17,REPORT_Y1+vtab4+2,1);
00431
00432 font_chartsm.put_paragraph(
00433 TABLE_X1+7,REPORT_Y1+vtab1+3,
00434 (int)(TABLE_X1+(1.1)*TABLE_COLUMN_WIDTH),REPORT_Y1+vtab2,
00435 mode_course_label[0],-1);
00436
00437 user_interface.rect(
00438 TABLE_X1+TABLE_COLUMN_WIDTH+15,REPORT_Y1+vtab1,
00439 TABLE_X1+TABLE_COLUMN_WIDTH+TABLE_COLUMN_WIDTH+2,REPORT_Y1+vtab2+4,1);
00440
00441 user_interface.rect(
00442 TABLE_X1+TABLE_COLUMN_WIDTH+15,REPORT_Y1+vtab3,
00443 TABLE_X1+TABLE_COLUMN_WIDTH+TABLE_COLUMN_WIDTH+2,REPORT_Y1+vtab4+2,1);
00444
00445 font_chartsm.put_paragraph(
00446 TABLE_X1+TABLE_COLUMN_WIDTH+25,REPORT_Y1+vtab1+3,
00447 (int)(TABLE_X1+(2.1)*TABLE_COLUMN_WIDTH),REPORT_Y1+vtab2,
00448 mode_course_label[1],-1);
00449
00450 for(int i=2;i<TABLE_COLUMN_COUNT;i++) {
00451 user_interface.rect(
00452 TABLE_X1+i*TABLE_COLUMN_WIDTH,REPORT_Y1+vtab1,
00453 TABLE_X1+i*TABLE_COLUMN_WIDTH+TABLE_COLUMN_WIDTH+2,REPORT_Y1+vtab2+4,1);
00454
00455 user_interface.rect(
00456 TABLE_X1+i*TABLE_COLUMN_WIDTH,REPORT_Y1+vtab3,
00457 TABLE_X1+i*TABLE_COLUMN_WIDTH+TABLE_COLUMN_WIDTH+2,REPORT_Y1+vtab4+2,1);
00458
00459 font_chartsm.put_paragraph(
00460 TABLE_X1+i*TABLE_COLUMN_WIDTH+7,REPORT_Y1+vtab1+3,
00461 (int)(TABLE_X1+(i+1.1)*TABLE_COLUMN_WIDTH),REPORT_Y1+vtab2+10,
00462 mode_course_label[i],-1);
00463 }
00464 for(i=0;i<3;i++) {
00465 font_chartsm.put_paragraph(
00466 TABLE_X1+7,REPORT_Y1+vtab3+45*i+15,
00467 TABLE_X1+10+TABLE_COLUMN_WIDTH,REPORT_Y1+vtab3+45*i+70,
00468 mode_teaching_label[i],-1);
00469 }
00470
00471 for(i=3;i<DISP_TEACHING_METHOD_COUNT+1;i++) {
00472
00473 #if(GAME_VERSION>=200)
00474 if ( i == 3 )
00475 continue;
00476
00477 if (i == 4) {
00478 font_chartsm.put_paragraph(
00479 TABLE_X1+7,REPORT_Y1+vtab3+50*i,
00480 TABLE_X1+10+TABLE_COLUMN_WIDTH,REPORT_Y1+vtab3+50*i+70,
00481 mode_teaching_label[i],-1);
00482
00483 font_chart_purple_sm.put(TABLE_X1+7,REPORT_Y1+vtab3+50*4+20, "Initial");
00484 vga_back.line(TABLE_X1+7,REPORT_Y1+vtab3+50*4+18, font_chart_purple_sm.text_width("Initial")+TABLE_X1+7,REPORT_Y1+vtab3+50*4+18,V_BLACK);
00485 }
00486 else {
00487 #endif
00488
00489 font_chartsm.put_paragraph(
00490 TABLE_X1+7,REPORT_Y1+vtab3+50*i+15,
00491 TABLE_X1+10+TABLE_COLUMN_WIDTH,REPORT_Y1+vtab3+50*i+70,
00492 mode_teaching_label[i],-1);
00493
00494 #if(GAME_VERSION>=200)
00495 }
00496 #endif
00497
00498 }
00499
00500 if(report_init_flag)
00501 course_report_deinit();
00502
00503 report_init_flag=1;
00504
00505
00506
00507
00508
00509
00510
00511
00512
00513 short x = BOTTOM_BUTTON_X1;
00514 short y = BOTTOM_BUTTON_Y1;
00515 font_chartsm.put(REPORT_X1,y+2," Department :");
00516 font_chartsm.put(REPORT_X1,y+30," Institution :");
00517 #if(GAME_VERSION>=200)
00518 for (i = 0; i < 3; i++, x+=BOTTOM_BUTTON_WIDTH+BOTTOM_BUTTON_DISTANCE) {
00519 type_button_group[i].create_text(x, y,
00520 x+BOTTOM_BUTTON_WIDTH, y+BOTTOM_BUTTON_HEIGHT,
00521 reportTypeStrArray[i]);
00522 }
00523 x = BOTTOM_BUTTON_X1;
00524 y = BOTTOM_BUTTON_Y1+28;
00525 for (i = 3; i < 6; i++, x+=BOTTOM_BUTTON_WIDTH+BOTTOM_BUTTON_DISTANCE) {
00526 type_button_group[i].create_text(x, y,
00527 x+BOTTOM_BUTTON_WIDTH, y+BOTTOM_BUTTON_HEIGHT,
00528 reportTypeStrArray[i]);
00529 }
00530 #else
00531 for (i = 0; i < 2; i++, x+=BOTTOM_BUTTON_WIDTH+BOTTOM_BUTTON_DISTANCE) {
00532 type_button_group[i].create_text(x, y,
00533 x+BOTTOM_BUTTON_WIDTH, y+BOTTOM_BUTTON_HEIGHT,
00534 reportTypeStrArray[i]);
00535 }
00536 x = BOTTOM_BUTTON_X1;
00537 y = BOTTOM_BUTTON_Y1+28;
00538 for (i = 2; i < 4; i++, x+=BOTTOM_BUTTON_WIDTH+BOTTOM_BUTTON_DISTANCE) {
00539 type_button_group[i].create_text(x, y,
00540 x+BOTTOM_BUTTON_WIDTH, y+BOTTOM_BUTTON_HEIGHT,
00541 reportTypeStrArray[i]);
00542 }
00543 #endif
00544
00545
00546
00547
00548
00549
00550
00551
00552
00553
00554
00555
00556
00557
00558
00559
00560
00561
00562
00563
00564
00565
00566
00567
00568
00569
00570
00571
00572
00573
00574
00575
00576 font_chartsm.put(TABLE_X1+110,REPORT_Y1+vtab5+15,mode_course_label[7]);
00577
00578 mode_course_text2.right_put(TABLE_X1+400,REPORT_Y1+vtab5+15,&v2,4);
00579 mode_course_graphicon.init(TABLE_X1+500,REPORT_Y1+vtab5+5,
00580 TABLE_X1+600,REPORT_Y1+vtab5+40,
00581 1 ,&data_num ,dataArray, 1, 0, 3);
00582 mode_course_graphicon.paint();
00583
00584 for(i=0;i<MAX_TEACHING_METHOD-1;i++) {
00585 int classId = mode_teaching_id[i];
00586 #if(GAME_VERSION>=200)
00587 if ( classId == 1 )
00588 continue;
00589 #endif
00590 for(int j=0;j<6;j++) {
00591
00592 if(j==5) {
00593 mode_course_text[i][j].right_put
00594 (
00595 (int)(TABLE_X1+(j+1.4)*TABLE_COLUMN_WIDTH+((j==0)?35:20)-((j==2)?20:0)+((j==3)?10:0)),
00596 REPORT_Y1+vtab3+50*i+15,
00597 &(v[classId][j]),
00598 3
00599 );
00600 }
00601 else {
00602 mode_course_text[i][j].right_put
00603 (
00604 (int)(TABLE_X1+(j+1.4)*TABLE_COLUMN_WIDTH+((j==0)?35:20)-((j==2)?20:0)+((j==3)?10:0)),
00605 REPORT_Y1+vtab3+50*i+15,
00606 &(v[classId][j]),
00607 (j==3)?3:4
00608 );
00609 }
00610 }
00611
00612 mode_course_text[i][6].right_put
00613 ( (int)(TABLE_X1+3.4*TABLE_COLUMN_WIDTH+25+((j==0)?45:30)),
00614 REPORT_Y1+vtab3+50*i+15,
00615 &(v[classId][6]),
00616 13
00617 );
00618
00619 }
00620 for(int j=0;j<6;j++) {
00621
00622 if(j==5) {
00623 mode_course_text[MAX_TEACHING_METHOD-1][j].right_put
00624 ( (int)(TABLE_X1+(j+1.4)*TABLE_COLUMN_WIDTH+((j==0)?35:20)+((j==3)?10:0)),
00625
00626 REPORT_Y1+vtab3+50*4,
00627 &(v[MAX_TEACHING_METHOD_N_TOTAL-1][j]),
00628 3
00629 );
00630
00631
00632 #if(GAME_VERSION>=200)
00633 font_chart_purple_sm.right_put
00634 ( (int)(TABLE_X1+(j+1.4)*TABLE_COLUMN_WIDTH+((j==0)?35:20)+((j==3)?10:0)),
00635 REPORT_Y1+vtab3+50*4+20,
00636 m.format(initialv[MAX_TEACHING_METHOD_N_TOTAL-1][j],3));
00637
00638 if ( font_chart_purple_sm.text_width(m.format(initialv[MAX_TEACHING_METHOD_N_TOTAL-1][j],3)) > font_chartsm.text_width(m.format(v[MAX_TEACHING_METHOD_N_TOTAL-1][j],3)) )
00639 vga_back.line
00640 ( (int)(TABLE_X1+(j+1.4)*TABLE_COLUMN_WIDTH+((j==0)?35:20)+((j==3)?10:0))-font_chart_purple_sm.text_width(m.format(initialv[MAX_TEACHING_METHOD_N_TOTAL-1][j],3)),
00641 REPORT_Y1+vtab3+50*4+17,
00642 (int)(TABLE_X1+(j+1.4)*TABLE_COLUMN_WIDTH+((j==0)?35:20)+((j==3)?10:0)),
00643 REPORT_Y1+vtab3+50*4+17,
00644 V_BLACK);
00645 else
00646 vga_back.line
00647 ( (int)(TABLE_X1+(j+1.4)*TABLE_COLUMN_WIDTH+((j==0)?35:20)+((j==3)?10:0))-font_chartsm.text_width(m.format(v[MAX_TEACHING_METHOD_N_TOTAL-1][j],3)),
00648 REPORT_Y1+vtab3+50*4+17,
00649 (int)(TABLE_X1+(j+1.4)*TABLE_COLUMN_WIDTH+((j==0)?35:20)+((j==3)?10:0)),
00650 REPORT_Y1+vtab3+50*4+17,
00651 V_BLACK);
00652 #endif
00653
00654
00655 }
00656 else {
00657
00658 mode_course_text[MAX_TEACHING_METHOD-1][j].right_put
00659 ( (int)(TABLE_X1+(j+1.4)*TABLE_COLUMN_WIDTH+((j==0)?35:20)+((j==3)?10:0)),
00660
00661 REPORT_Y1+vtab3+50*4,
00662 &(v[MAX_TEACHING_METHOD_N_TOTAL-1][j]),
00663 (j==3)?3:4
00664 );
00665
00666
00667 #if(GAME_VERSION>=200)
00668 font_chart_purple_sm.right_put
00669 ( (int)(TABLE_X1+(j+1.4)*TABLE_COLUMN_WIDTH+((j==0)?35:20)+((j==3)?10:0)),
00670 REPORT_Y1+vtab3+50*4+20,
00671 m.format(initialv[MAX_TEACHING_METHOD_N_TOTAL-1][j],(j==3)?3:4));
00672 if (font_chart_purple_sm.text_width(m.format(initialv[MAX_TEACHING_METHOD_N_TOTAL-1][j],(j==3)?3:4)) > font_chartsm.text_width(m.format(v[MAX_TEACHING_METHOD_N_TOTAL-1][j],(j==3)?3:4)) )
00673 vga_back.line
00674 ( (int)(TABLE_X1+(j+1.4)*TABLE_COLUMN_WIDTH+((j==0)?35:20)+((j==3)?10:0))-font_chart_purple_sm.text_width(m.format(initialv[MAX_TEACHING_METHOD_N_TOTAL-1][j],(j==3)?3:4)),
00675 REPORT_Y1+vtab3+50*4+17,
00676 (int)(TABLE_X1+(j+1.4)*TABLE_COLUMN_WIDTH+((j==0)?35:20)+((j==3)?10:0)),
00677 REPORT_Y1+vtab3+50*4+17,
00678 V_BLACK);
00679 else
00680 vga_back.line
00681 ( (int)(TABLE_X1+(j+1.4)*TABLE_COLUMN_WIDTH+((j==0)?35:20)+((j==3)?10:0))-font_chartsm.text_width(m.format(v[MAX_TEACHING_METHOD_N_TOTAL-1][j],(j==3)?3:4)),
00682 REPORT_Y1+vtab3+50*4+17,
00683 (int)(TABLE_X1+(j+1.4)*TABLE_COLUMN_WIDTH+((j==0)?35:20)+((j==3)?10:0)),
00684 REPORT_Y1+vtab3+50*4+17,
00685 V_BLACK);
00686 #endif
00687
00688
00689 }
00690
00691 }
00692
00693 }
00694 else {
00695
00696 for(int i=0;i<MAX_TEACHING_METHOD;i++)
00697 for(int j=0;j<7;j++)
00698 mode_course_text[i][j].refresh();
00699 mode_course_text2.refresh();
00700 mode_course_graphicon.refresh();
00701
00702
00703 #if(GAME_VERSION>=200)
00704 for(int j=0;j<6;j++) {
00705 if(j==5) {
00706 font_chart_purple_sm.right_put
00707 ( (int)(TABLE_X1+(j+1.4)*TABLE_COLUMN_WIDTH+((j==0)?35:20)+((j==3)?10:0)),
00708 REPORT_Y1+vtab3+50*4+20,
00709 m.format(initialv[MAX_TEACHING_METHOD_N_TOTAL-1][j],3));
00710 if (font_chart_purple_sm.text_width(m.format(initialv[MAX_TEACHING_METHOD_N_TOTAL-1][j],3)) > font_chartsm.text_width(m.format(v[MAX_TEACHING_METHOD_N_TOTAL-1][j],3)) )
00711 vga_back.line
00712 ( (int)(TABLE_X1+(j+1.4)*TABLE_COLUMN_WIDTH+((j==0)?35:20)+((j==3)?10:0))-font_chart_purple_sm.text_width(m.format(initialv[MAX_TEACHING_METHOD_N_TOTAL-1][j],(j==3)?3:4)),
00713 REPORT_Y1+vtab3+50*4+17,
00714 (int)(TABLE_X1+(j+1.4)*TABLE_COLUMN_WIDTH+((j==0)?35:20)+((j==3)?10:0)),
00715 REPORT_Y1+vtab3+50*4+17,
00716 V_BLACK);
00717 else
00718 vga_back.line
00719 ( (int)(TABLE_X1+(j+1.4)*TABLE_COLUMN_WIDTH+((j==0)?35:20)+((j==3)?10:0))-font_chartsm.text_width(m.format(v[MAX_TEACHING_METHOD_N_TOTAL-1][j],(j==3)?3:4)),
00720 REPORT_Y1+vtab3+50*4+17,
00721 (int)(TABLE_X1+(j+1.4)*TABLE_COLUMN_WIDTH+((j==0)?35:20)+((j==3)?10:0)),
00722 REPORT_Y1+vtab3+50*4+17,
00723 V_BLACK);
00724 }
00725 else {
00726 font_chart_purple_sm.right_put
00727 ( (int)(TABLE_X1+(j+1.4)*TABLE_COLUMN_WIDTH+((j==0)?35:20)+((j==3)?10:0)),
00728 REPORT_Y1+vtab3+50*4+20,
00729 m.format(initialv[MAX_TEACHING_METHOD_N_TOTAL-1][j],(j==3)?3:4));
00730 if (font_chart_purple_sm.text_width(m.format(initialv[MAX_TEACHING_METHOD_N_TOTAL-1][j],(j==3)?3:4)) > font_chartsm.text_width(m.format(v[MAX_TEACHING_METHOD_N_TOTAL-1][j],(j==3)?3:4)) )
00731 vga_back.line
00732 ( (int)(TABLE_X1+(j+1.4)*TABLE_COLUMN_WIDTH+((j==0)?35:20)+((j==3)?10:0))-font_chart_purple_sm.text_width(m.format(initialv[MAX_TEACHING_METHOD_N_TOTAL-1][j],(j==3)?3:4)),
00733 REPORT_Y1+vtab3+50*4+17,
00734 (int)(TABLE_X1+(j+1.4)*TABLE_COLUMN_WIDTH+((j==0)?35:20)+((j==3)?10:0)),
00735 REPORT_Y1+vtab3+50*4+17,
00736 V_BLACK);
00737 else
00738 vga_back.line
00739 ( (int)(TABLE_X1+(j+1.4)*TABLE_COLUMN_WIDTH+((j==0)?35:20)+((j==3)?10:0))-font_chartsm.text_width(m.format(v[MAX_TEACHING_METHOD_N_TOTAL-1][j],(j==3)?3:4)),
00740 REPORT_Y1+vtab3+50*4+17,
00741 (int)(TABLE_X1+(j+1.4)*TABLE_COLUMN_WIDTH+((j==0)?35:20)+((j==3)?10:0)),
00742 REPORT_Y1+vtab3+50*4+17,
00743 V_BLACK);
00744 }
00745 }
00746 #endif
00747
00748
00749 }
00750
00751 type_button_group.paint(department_array.current_report_type);
00752
00753
00754
00755
00756
00757
00758
00759
00760
00761
00762
00763
00764
00765
00766
00767
00768
00769
00770
00771
00772
00773
00774
00775
00776
00777
00778
00779
00780
00781
00782
00783
00784
00785
00786
00787
00788
00789
00790
00791
00792
00793
00794
00795
00796
00797
00798
00799 vga.blt_buf(ZOOM_X1, ZOOM_Y1, ZOOM_X2, ZOOM_Y2);
00800
00801 }
00802
00803 void Department::course_report_2(int refreshFlag) {
00804
00805 const static int vtab1=21;
00806 const static int vtab2=51;
00807 const static int vtab3=51;
00808 const static int vtab4=201;
00809 const static int vtab5=211;
00810 const static int vtab6=350;
00811 const static int tab1=TABLE_X1;
00812 const static int tab2=TABLE_X1+250;
00813 const static int tab3=TABLE_X1+250;
00814 const static int tab4=TABLE_X1+470;
00815 const static int tab5=TABLE_X1+470;
00816 const static int tab6=TABLE_X2-10;
00817
00818 static int u[3]= {
00819 11,22,23
00820 }
00821 ,v[3]= {
00822 40,25,35
00823 };
00824 static xStart=1991,xEnd=1998;
00825
00826
00827 int deptRecno = department_array.selected_recno;
00828 Department* cur_dept_ptr = department_array[deptRecno];
00829 cur_dept_ptr->course_array;
00830
00831 u[0]=cur_dept_ptr->course_preference[0];
00832 u[1]=cur_dept_ptr->course_preference[1];
00833 u[2]=cur_dept_ptr->course_preference[2];
00834 v[0]=cur_dept_ptr->course_preference_input[0];
00835 v[1]=cur_dept_ptr->course_preference_input[1];
00836 v[2]=cur_dept_ptr->course_preference_input[2];
00837
00838
00839 CourseTemplate* templ = course_res.get_template(department_id);
00840
00841 vga.use_back();
00842
00843 if (refreshFlag == INFO_REPAINT) {
00844
00845 user_interface.bg_img(BG_PIC_ID, &vga_back);
00846
00847 user_interface.brighten(tab3,REPORT_Y1+vtab1,tab6,REPORT_Y1+vtab2);
00848 user_interface.brighten(tab1,REPORT_Y1+vtab3,tab6,REPORT_Y1+vtab6);
00849
00850 user_interface.brighten(REPORT_X1+100,REPORT_Y1-5,REPORT_X1+630,REPORT_Y1+14);
00851 user_interface.rect(REPORT_X1+100,REPORT_Y1-5,REPORT_X1+630,REPORT_Y1+14,1);
00852 font_charts.put(REPORT_X1+320,REPORT_Y1-2,"Courses");
00853
00854 user_interface.rect(tab1,REPORT_Y1+vtab3,tab6,REPORT_Y1+vtab4,1);
00855 user_interface.rect(tab1,REPORT_Y1+vtab4,tab6,REPORT_Y1+vtab6,1);
00856 user_interface.rect(tab3,REPORT_Y1+vtab1,tab4,REPORT_Y1+vtab6,1);
00857 user_interface.rect(tab5-3,REPORT_Y1+vtab1,tab6,REPORT_Y1+vtab6,1);
00858
00859 if(report_init_flag)
00860 course_report_deinit();
00861 report_init_flag=1;
00862
00863 short x = BOTTOM_BUTTON_X1;
00864 short y = BOTTOM_BUTTON_Y1;
00865 font_chartsm.put(REPORT_X1,y+2," Department :");
00866 font_chartsm.put(REPORT_X1,y+30," Institution :");
00867 #if(GAME_VERSION>=200)
00868 for (int i = 0; i < 3; i++, x+=BOTTOM_BUTTON_WIDTH+BOTTOM_BUTTON_DISTANCE) {
00869 type_button_group[i].create_text(x, y,
00870 x+BOTTOM_BUTTON_WIDTH, y+BOTTOM_BUTTON_HEIGHT,
00871 reportTypeStrArray[i]);
00872 }
00873 x = BOTTOM_BUTTON_X1;
00874 y = BOTTOM_BUTTON_Y1+28;
00875 for (i = 3; i < 6; i++, x+=BOTTOM_BUTTON_WIDTH+BOTTOM_BUTTON_DISTANCE) {
00876 type_button_group[i].create_text(x, y,
00877 x+BOTTOM_BUTTON_WIDTH, y+BOTTOM_BUTTON_HEIGHT,
00878 reportTypeStrArray[i]);
00879 }
00880 #else
00881 for (int i = 0; i < 2; i++, x+=BOTTOM_BUTTON_WIDTH+BOTTOM_BUTTON_DISTANCE) {
00882 type_button_group[i].create_text(x, y,
00883 x+BOTTOM_BUTTON_WIDTH, y+BOTTOM_BUTTON_HEIGHT,
00884 reportTypeStrArray[i]);
00885 }
00886 x = BOTTOM_BUTTON_X1;
00887 y = BOTTOM_BUTTON_Y1+28;
00888 for (i = 2; i < 4; i++, x+=BOTTOM_BUTTON_WIDTH+BOTTOM_BUTTON_DISTANCE) {
00889 type_button_group[i].create_text(x, y,
00890 x+BOTTOM_BUTTON_WIDTH, y+BOTTOM_BUTTON_HEIGHT,
00891 reportTypeStrArray[i]);
00892 }
00893 #endif
00894
00895 mode_course_current_fraction1.right_put(tab3+90,REPORT_Y1+vtab5+15,u,3);
00896 mode_course_current_fraction2.right_put(tab3+90,REPORT_Y1+vtab5+65,u+1,3);
00897 mode_course_current_fraction3.right_put(tab3+90,REPORT_Y1+vtab5+115,u+2,3);
00898
00899 for( i=0 ; i<3 ; i++ ) {
00900 #if(GAME_VERSION>=200)
00901
00902 font_chart_purple_sm.right_put( tab3+150, REPORT_Y1+vtab5+15+i*50, m.format(cur_dept_ptr->initial_course_preference[i],3) );
00903 #else
00904 font_chartsm.right_put( tab3+150, REPORT_Y1+vtab5+15+i*50, m.format(-templ->target_preference[i],3) );
00905 #endif
00906 }
00907
00908 mode_course_piechart1.init(tab3,REPORT_Y1+vtab3,tab4,REPORT_Y1+vtab4,3,u,&xStart,&xEnd,
00909 NULL, NULL, NULL, 1, 1, 0, 3);
00910 mode_course_piechart2.init(tab5-3,REPORT_Y1+vtab3,tab6,REPORT_Y1+vtab4,3,v,&xStart,&xEnd,
00911 NULL, NULL, NULL, 1, 1, 0, 3);
00912 mode_course_piechart1.paint();
00913 mode_course_piechart2.paint();
00914
00915
00916 font_chartsm.put(tab1+75,REPORT_Y1+vtab5+15,"Seminar");
00917 font_chartsm.put(tab1+75,REPORT_Y1+vtab5+65,"Medium-sized classes");
00918 font_chartsm.put(tab1+75,REPORT_Y1+vtab5+115,"Lectures with breakouts");
00919 user_interface.bar(
00920 tab1+54,REPORT_Y1+vtab5+15,tab1+66,REPORT_Y1+vtab5+27,
00921 ((mode_course_piechart1.series_color)[0]));
00922 user_interface.bar(
00923 tab1+54,REPORT_Y1+vtab5+65,tab1+66,REPORT_Y1+vtab5+77,
00924 ((mode_course_piechart1.series_color)[1]));
00925 user_interface.bar(
00926 tab1+54,REPORT_Y1+vtab5+115,tab1+66,REPORT_Y1+vtab5+127,
00927 ((mode_course_piechart1.series_color)[2]));
00928
00929 font_chartsm.put(tab3+45,REPORT_Y1+vtab1+10,"Current fraction");
00930 font_chartsm.put(tab5+45,REPORT_Y1+vtab1+10,"Target fraction");
00931 mode_course_valueslider1.init(tab5+15,REPORT_Y1+vtab5+10,200,20,0,100,&(v[0]),1,((mode_course_piechart1.series_color)[0]),3);
00932 mode_course_valueslider2.init(tab5+15,REPORT_Y1+vtab5+60,200,20,0,100,&(v[1]),1,((mode_course_piechart1.series_color)[1]),3);
00933 mode_course_valueslider3.init(tab5+15,REPORT_Y1+vtab5+110,200,20,0,100,&(v[2]),1,((mode_course_piechart1.series_color)[2]),3);
00934 }
00935 else {
00936
00937 mode_course_current_fraction1.refresh();
00938 mode_course_current_fraction2.refresh();
00939 mode_course_current_fraction3.refresh();
00940 mode_course_piechart1.refresh();
00941 mode_course_piechart2.refresh();
00942 }
00943
00944 mode_course_valueslider1.refresh();
00945 mode_course_valueslider2.refresh();
00946 mode_course_valueslider3.refresh();
00947 type_button_group.paint(department_array.current_report_type);
00948
00949 vga.blt_buf(ZOOM_X1, ZOOM_Y1, ZOOM_X2, ZOOM_Y2);
00950
00951 }
00952
00953 void Department::course_report_4(int refreshFlag) {
00954
00955 const static int vtab1=20;
00956 const static int vtab2=78;
00957 const static int vtab3=82;
00958 const static int vtab4=280;
00959 const static int vtab5=285;
00960 const static int vtab6=350;
00961
00962 static int data_num=HISTORY_MONTH_COUNT;
00963 static float *dataArray;
00964
00965 static int v1=0;
00966 static double v2=12.345;
00967 static int v3=23;
00968
00969
00970 int deptRecno = department_array.selected_recno;
00971 Department* cur_dept_ptr = department_array[deptRecno];
00972 cur_dept_ptr->course_array;
00973
00974 v1=player_school.summer_emphasis;
00975
00976
00977 dataArray=library_tech_office.tech_utilization_history;
00978 v2=library_tech_office.tech_utilization_history[HISTORY_MONTH_COUNT-1];
00980
00981 vga.use_back();
00982
00983 if (refreshFlag == INFO_REPAINT) {
00984
00985 user_interface.bg_img(BG_PIC_ID, &vga_back);
00986
00987 user_interface.brighten(REPORT_X1+100,REPORT_Y1-5,REPORT_X1+630,REPORT_Y1+14);
00988 user_interface.rect(REPORT_X1+100,REPORT_Y1-5,REPORT_X1+630,REPORT_Y1+14,1);
00989 font_charts.put(REPORT_X1+320,REPORT_Y1-2,"Courses");
00990
00991 user_interface.brighten(TABLE_X1,REPORT_Y1+vtab1,TABLE_X2,REPORT_Y1+vtab2);
00992 user_interface.brighten(TABLE_X1,REPORT_Y1+vtab3,TABLE_X2,REPORT_Y1+vtab6);
00993
00994 user_interface.rect(
00995 TABLE_X1,REPORT_Y1+vtab1,
00996 TABLE_X2,REPORT_Y1+vtab2+3,1);
00997
00998 user_interface.rect(
00999 TABLE_X1,REPORT_Y1+vtab3,
01000 TABLE_X2,REPORT_Y1+vtab6,1);
01001
01002
01003 font_chartsm.put_paragraph(
01004 TABLE_X1+50,REPORT_Y1+vtab3+15,
01005 TABLE_X2,REPORT_Y1+vtab3+45,
01006 "Emphasis on summer course-taking");
01007
01008 if(report_init_flag)
01009 course_report_deinit();
01010 report_init_flag=1;
01011
01012
01013
01014
01015
01016
01017
01018
01019
01020
01021
01022
01023
01024
01025
01026
01027
01028
01029
01030
01031
01032
01033
01034
01035
01036
01037
01038
01039
01040
01041
01042
01043
01044 short x = BOTTOM_BUTTON_X1;
01045 short y = BOTTOM_BUTTON_Y1;
01046 font_chartsm.put(REPORT_X1,y+2," Department :");
01047 font_chartsm.put(REPORT_X1,y+30," Institution :");
01048 #if(GAME_VERSION>=200)
01049 for (int i = 0; i < 3; i++, x+=BOTTOM_BUTTON_WIDTH+BOTTOM_BUTTON_DISTANCE) {
01050 type_button_group[i].create_text(x, y,
01051 x+BOTTOM_BUTTON_WIDTH, y+BOTTOM_BUTTON_HEIGHT,
01052 reportTypeStrArray[i]);
01053 }
01054 x = BOTTOM_BUTTON_X1;
01055 y = BOTTOM_BUTTON_Y1+28;
01056 for (i = 3; i < 6; i++, x+=BOTTOM_BUTTON_WIDTH+BOTTOM_BUTTON_DISTANCE) {
01057 type_button_group[i].create_text(x, y,
01058 x+BOTTOM_BUTTON_WIDTH, y+BOTTOM_BUTTON_HEIGHT,
01059 reportTypeStrArray[i]);
01060 }
01061 #else
01062 for (int i = 0; i < 2; i++, x+=BOTTOM_BUTTON_WIDTH+BOTTOM_BUTTON_DISTANCE) {
01063 type_button_group[i].create_text(x, y,
01064 x+BOTTOM_BUTTON_WIDTH, y+BOTTOM_BUTTON_HEIGHT,
01065 reportTypeStrArray[i]);
01066 }
01067 x = BOTTOM_BUTTON_X1;
01068 y = BOTTOM_BUTTON_Y1+28;
01069 for (i = 2; i < 4; i++, x+=BOTTOM_BUTTON_WIDTH+BOTTOM_BUTTON_DISTANCE) {
01070 type_button_group[i].create_text(x, y,
01071 x+BOTTOM_BUTTON_WIDTH, y+BOTTOM_BUTTON_HEIGHT,
01072 reportTypeStrArray[i]);
01073 }
01074 #endif
01075
01076 font_chartsm.put(REPORT_X1+50,REPORT_Y1+vtab1+25,"Percentage of courses using information technology");
01077
01078
01079
01080
01081
01082
01083 mode_course_text2.right_put(REPORT_X1+450,REPORT_Y1+vtab1+25,&v2,3);
01084 mode_course_graphicon2.init(REPORT_X1+550,REPORT_Y1+vtab1+10,
01085 REPORT_X1+650,REPORT_Y1+vtab1+50,
01086 1 ,&data_num ,dataArray, 1, 0, 3);
01087
01088 mode_course_rbv.init(
01089 REPORT_X1+100,
01090 REPORT_Y1+vtab3+60,
01091 REPORT_X2,
01092 REPORT_Y1+vtab6,
01093 4,
01094 &v1,
01095 mode_course_rblabel,
01096 NULL
01097 );
01098
01099
01100
01101 mode_course_graphicon2.paint();
01102
01103 }
01104 else {
01105
01106 mode_course_text2.refresh();
01107 mode_course_graphicon2.refresh();
01108 mode_course_rbv.refresh();
01109
01110
01111
01112
01113
01114
01115
01116
01117
01118
01119
01120
01121
01122 }
01123
01124
01125
01126
01127
01128
01129
01130
01131
01132 type_button_group.paint(department_array.current_report_type);
01133
01134 vga.blt_buf(ZOOM_X1, ZOOM_Y1, ZOOM_X2, ZOOM_Y2);
01135
01136 }
01137
01138 #if(GAME_VERSION>=200)
01139
01140
01141 void Department::course_report_5(int refreshFlag) {
01142 const static int vtab1=21;
01143 const static int vtab2=51;
01144 const static int vtab3=51;
01145 const static int vtab4=201;
01146 const static int vtab5=211;
01147 const static int vtab6=350;
01148 const static int tab1=TABLE_X1;
01149 const static int tab2=TABLE_X1+250;
01150 const static int tab3=TABLE_X1+250;
01151 const static int tab4=TABLE_X1+470;
01152 const static int tab5=TABLE_X1+470;
01153 const static int tab6=TABLE_X2-10;
01154
01155 int deptRecno = department_array.selected_recno;
01156 Department* deptPtr = department_array[deptRecno];
01157 int sliderVar1=deptPtr->department_incentives;
01158 int sliderVar2=deptPtr->ease_outsourcing_credits;
01159 int sliderVar3=deptPtr->distance_learning_credits;
01160
01161 vga.use_back();
01162
01163 if ( (refreshFlag == INFO_REPAINT) || (info.is_begin_trimester()) ) {
01164 if(report_init_flag)
01165 course_report_deinit();
01166 report_init_flag=1;
01167
01168
01169 static float dataArray[HISTORY_TRIMESTER_COUNT];
01170 static int dataArray2[HISTORY_YEAR_COUNT];
01171
01172 static int dataArray3[HISTORY_TRIMESTER_COUNT];
01173 static int numSeriesData = HISTORY_TRIMESTER_COUNT;
01174 static int numSeriesData2 = HISTORY_YEAR_COUNT;
01175
01176 memset( dataArray, 0, sizeof(dataArray) );
01177 memset( dataArray2, 0, sizeof(dataArray2) );
01178 memset( dataArray3, 0, sizeof(dataArray3) );
01179
01180
01181 user_interface.bg_img(BG_PIC_ID, &vga_back);
01182
01183 user_interface.brighten(tab1,REPORT_Y1+vtab3,tab6,REPORT_Y1+vtab6);
01184
01185 user_interface.brighten(REPORT_X1+100,REPORT_Y1-5,REPORT_X1+630,REPORT_Y1+14);
01186 user_interface.rect(REPORT_X1+100,REPORT_Y1-5,REPORT_X1+630,REPORT_Y1+14,1);
01187 font_charts.put(REPORT_X1+180,REPORT_Y1-2,"Information Technology and Distance Learning Credits");
01188
01189 int shiftNumber;
01190 if ( player_school.is_trimester_off ) {
01191 if ( player_school.cur_trimester != 0 )
01192 shiftNumber = player_school.cur_trimester - 1;
01193 else
01194 shiftNumber = 2;
01195 }
01196 else
01197 shiftNumber = player_school.cur_trimester;
01198
01199 if ( current_report_mode==REPORT_MODE_INSTITUTION ) {
01200 for ( int i=0; i<HISTORY_TRIMESTER_COUNT; i++ ) {
01201 for ( int j=department_array.size(); j>0; j-- ) {
01202 if ( department_array.is_deleted(j) )
01203 continue;
01204
01205 dataArray[i] += department_array[j]->p_tech_utilization_history[i];
01206 dataArray3[i] += department_array[j]->distance_credits_provided_history[i];
01207 }
01208 dataArray[i] /= department_array.size();
01209 dataArray[i] = (int) dataArray[i];
01210 }
01211
01212 for ( i=0; i<HISTORY_YEAR_COUNT; i++ ) {
01213 for ( int j=department_array.size(); j>0; j-- ) {
01214 if ( department_array.is_deleted(j) )
01215 continue;
01216
01217 int index = HISTORY_TRIMESTER_COUNT - shiftNumber - (HISTORY_YEAR_COUNT-1-i)*3 - 1;
01218 dataArray2[i] += department_array[j]->course_array.outsourcing_credits_history[MAX_TEACHING_METHOD][index];
01219 }
01220 }
01221
01222 }
01223 else {
01224 for ( int i=0; i<HISTORY_TRIMESTER_COUNT; i++ ) {
01225 dataArray[i] = (int)deptPtr->p_tech_utilization_history[i];
01226 dataArray3[i] = (int)deptPtr->distance_credits_provided_history[i];
01227 }
01228 for ( i=0; i<HISTORY_YEAR_COUNT; i++ ) {
01229 int index = HISTORY_TRIMESTER_COUNT - shiftNumber - (HISTORY_YEAR_COUNT-1-i)*3 - 1;
01230 dataArray2[i] = (int)deptPtr->course_array.outsourcing_credits_history[MAX_TEACHING_METHOD][index];
01231 }
01232 }
01233
01234
01235 it_utilization_graph.init(
01236 REPORT_X1+20,
01237 REPORT_Y1+70,
01238 REPORT_X1+MODE_STATISTICS_GRAPH_WIDTH+20,
01239 REPORT_Y1+MODE_STATISTICS_GRAPH_HEIGHT+70,
01240 1, &numSeriesData, dataArray, 0,
01241 NULL, NULL, NULL, 1, 1, 1, 3);
01242 outsourcing_credits_graph.init(
01243 REPORT_X1+