00001
00002
00003
00004 #include <KEY.H>
00005 #include <OVGA.H>
00006 #include <OMATH.H>
00007 #include <OFONT.H>
00008 #include <OWORLD.H>
00009 #include <OSYS.H>
00010 #include <OINFO.H>
00011 #include <OFINANCE.H>
00012 #include <OENROLL.H>
00013 #include <OIFACE.H>
00014 #include <OBUTTON.H>
00015 #include <OVALSLDR.H>
00016 #include <ODEPT.H>
00017 #include <OPSCHOOL.H>
00018 #include <OSTUOFF.H>
00019 #include <OSTUDENT.H>
00020 #include <OGAMESTR.H>
00021 #include <OSPINNER.H>
00022 #include <OGRPHYR.H>
00023 #include <OGRPNFYR.H>
00024 #include <OPIECHRT.H>
00025 #include <OGRPH_PY.H>
00026 #include <OGRPH_PT.H>
00027 #include <OGRPH_PM.H>
00028 #include <OGRPNFT.H>
00029 #include <OTEXT.H>
00030 #include <OHELP.H>
00031
00032
00033
00034 enum {
00035 REPORT_X1 = ZOOM_X1+15,
00036 REPORT_Y1 = ZOOM_Y1+15,
00037 REPORT_X2 = ZOOM_X2-15,
00038 REPORT_Y2 = ZOOM_Y2-40,
00039 };
00040
00041 enum { FACULTY_REC_HEIGHT = 84, RESEARCH_REC_HEIGHT = 16 };
00042
00043
00044
00045 enum {
00046 BG_PIC_ID = 8
00047 };
00048
00049 #if(GAME_VERSION>=200)
00050 enum { STD_SUM_REPORT_TYPE_COUNT = 10};
00051 enum {
00052 REPORT_TYPE_DEPARTMENT_PROFILE1, REPORT_TYPE_DEPARTMENT_PROFILE2,
00053 REPORT_TYPE_DEPARTMENT_ACTIVITIES, REPORT_TYPE_TURNOVER,
00054 REPORT_TYPE_INSTITUTION_PROFILE1, REPORT_TYPE_INSTITUTION_PROFILE2,
00055 REPORT_TYPE_INSTITUTION_ACTIVITIES, REPORT_TYPE_INSTITUTION_UNDERGRADUATE,
00056 REPORT_TYPE_FINANCE,
00057 REPORT_TYPE_RESIDENCE_HALL,
00058 };
00059 #else
00060 enum { STD_SUM_REPORT_TYPE_COUNT = 9};
00061 enum {
00062 REPORT_TYPE_DEPARTMENT_PROFILE1, REPORT_TYPE_DEPARTMENT_PROFILE2,
00063 REPORT_TYPE_DEPARTMENT_ACTIVITIES,
00064 REPORT_TYPE_INSTITUTION_PROFILE1, REPORT_TYPE_INSTITUTION_PROFILE2,
00065 REPORT_TYPE_INSTITUTION_ACTIVITIES, REPORT_TYPE_INSTITUTION_UNDERGRADUATE,
00066 REPORT_TYPE_FINANCE,
00067 REPORT_TYPE_RESIDENCE_HALL,
00068 };
00069 #endif
00070
00071 enum { REPORT_MODE_COUNT = 2 };
00072 enum { REPORT_MODE_INSTITUTION, REPORT_MODE_DEPARTMENT};
00073
00074 enum { BUTTON_Y1=REPORT_Y2+10 };
00075
00076 enum {
00077 BOTTOM_BUTTON_X1 = REPORT_X1+68,
00078 BOTTOM_BUTTON_Y1 = REPORT_Y2-20,
00079 BOTTOM_BUTTON_TAB1 = 400,
00080 BOTTOM_BUTTON_X2 = REPORT_X2,
00081 BOTTOM_BUTTON_Y2 = REPORT_Y2+10
00082 };
00083 enum {
00084 TAB1=20,
00085 TAB2=200,
00086 TAB3=210,
00087 TAB4=450,
00088 TAB5=500,
00089 TAB6=610,
00090 VTAB1=5,
00091 VTAB2=160,
00092 VTAB3=180,
00093 VTAB4=310,
00094 VTAB5=420,
00095 };
00096
00097 enum {
00098 BOTTOM_BUTTON_WIDTH = 104,
00099 BOTTOM_BUTTON_WIDTH2 = 85,
00100 BOTTOM_BUTTON_HEIGHT = 22,
00101 BOTTOM_BUTTON_DISTANCE = 2
00102 };
00103
00104 enum {
00105 MODE_FINANCIAL_BOX1_HEIGHT = 65,
00106 MODE_FINANCIAL_BOX2_HEIGHT = 260,
00107 MODE_FINANCIAL_GRAPH_WIDTH = 400,
00108 MODE_FINANCIAL_GRAPH_HEIGHT = 150,
00109 MODE_FINANCIAL_LEGEND_HEIGHT = 26,
00110 MODE_FINANCIAL_LEGEND_WIDTH = 400,
00111
00112 MODE_FINANCIAL_TAB1 = 15,
00113 MODE_FINANCIAL_TAB2 = 280,
00114 MODE_FINANCIAL_TAB3 = 360,
00115 MODE_FINANCIAL_TAB4 = 400,
00116 MODE_FINANCIAL_TAB5 = 520,
00117 MODE_FINANCIAL_TAB6 = 600,
00118 };
00119
00120 enum {
00121 FINANCIAL_BUTTON_X1 = REPORT_X1+MODE_FINANCIAL_TAB4+60,
00122 FINANCIAL_BUTTON_Y1 = REPORT_Y1+MODE_FINANCIAL_BOX1_HEIGHT+132,
00123 FINANCIAL_BUTTON_X2 = REPORT_X2,
00124 FINANCIAL_BUTTON_Y2 = REPORT_Y2-30
00125 };
00126
00127 enum {
00128 FINANCIAL_BUTTON2_Y1 = REPORT_Y1+MODE_FINANCIAL_BOX1_HEIGHT+262,
00129 FINANCIAL_BUTTON2_Y2 = REPORT_Y2-30
00130 };
00131
00132 enum {
00133 FINANCIAL_BUTTON_WIDTH = 200,
00134 FINANCIAL_BUTTON_HEIGHT = 20,
00135 FINANCIAL_BUTTON_DISTANCE = 3
00136 };
00137
00138 enum {
00139 MODE_FINANCIAL_IMPLEMENT = 2,
00140 MODE_FINANCIAL_ANNOUNCE = 1,
00141 MODE_FINANCIAL_CONSIDER = 0,
00142 };
00143
00144 #if(GAME_VERSION>=200)
00145 static ButtonGroup type_button_group(10);
00146 #else
00147 static ButtonGroup type_button_group(9);
00148 #endif
00149
00150
00151 #if(GAME_VERSION>=200)
00152 static Button mode_turnover_button;
00153 static Button mode_turnover_next_button;
00154 #endif
00155
00156 static short *text_refresh_bitmap1;
00157
00158
00159 static char *mode_financial_str[] = {
00160 "Gross tuition income",
00161 "Student life spending",
00162 "Student life satisfaction",
00163 "",
00164 "Change",
00165 "Change in tuition rate",
00166 "Change in student life \r\nexpenditures"
00167 };
00168
00169 static char *mode_financial_label[] = {
00170 "Revenue", "Expenditure","Profit", "Loss",
00171 };
00172
00173 #if(GAME_VERSION>=200)
00174 static char* mode_turnover_label1[] = {
00175 "Prior year's","Admissions","","","Current",
00176 };
00177
00178 static char* mode_turnover_label2[] = {
00179 "enrollment","target","Graduations","Dropouts","enrollment",
00180 };
00181
00182 static char* mode_turnover_row_label[] = {
00183 "Student level","Undergraduate traditional","Undergraduates nontraditional",
00184 "Graduate: Master's","Graduate: Doctoral","Total",
00185 };
00186 #endif
00187
00188 static short *mode_financial_stats_bitmap;
00189 static Spinner financial_spinner_budget1;
00190 static Spinner financial_spinner_budget2;
00191 static ButtonGroup financial_button_group1(3);
00192 static short *financial_button1_up_bitmap[3];
00193 static short *financial_button1_down_bitmap[3];
00194 static ButtonGroup financial_button_group2(3);
00195 static short *financial_button2_up_bitmap[3];
00196 static short *financial_button2_down_bitmap[3];
00197 static char *financial_button_label[] = {
00198 "Consider for next year", "Promise for next year", "Implement now"
00199 };
00200 static char financial_current_mode = MODE_FINANCIAL_CONSIDER;
00201
00202 static GraphYear mode_financial_graph_profitloss1;
00203 static GraphYear mode_financial_graph_profitloss2;
00204 static GraphPerformanceIndicatorMonth mode_financial_graphicon;
00205 static Text mode_financial_text;
00206 static char *mode_financial_graph_title="";
00207 static char *mode_financial_legend_label[] = {
00208 "Gross tuition revenue","Student life spending",
00209 };
00210
00211
00212
00213
00214 static Text mode_hall_text;
00215 static char *mode_hall_str[] = {
00216 "Occupied beds/ Available beds",
00217 "Percentage of traditional undergraduate students in residence halls"
00218 };
00219
00220 static char *mode_hall_legend1[] = {
00221 "Available beds","Occupied beds"
00222 };
00223
00224 static char *mode_hall_legend2[] = {
00225 "Tuition rate","Room & board rate"
00226 };
00227
00228 static GraphNonFinancialYear mode_hall_graph1;
00229 static GraphNonFinancialYear mode_hall_graph2;
00230 static ValueSlider mode_hall_value_slider;
00231
00232
00233 static Department* cur_dept_ptr;
00234
00235
00236
00237
00238
00239 #if(GAME_VERSION>=200)
00240 static char* reportTypeStrArray[]
00241 = {
00242 "Levels", "Profiles","Activities", "Turnover",
00243 "Levels", "Profiles","Activities","Undergraduate","Finance","Tuition &\nResidence halls",
00244 };
00245 #else
00246 static char* reportTypeStrArray[]
00247 = {
00248 "Levels", "Profiles","Activities",
00249 "Levels", "Profiles","Activities","Undergraduate","Finance","Residence halls",
00250 };
00251 #endif
00252
00253 #if(GAME_VERSION>=200)
00254 static char* std_sum_rank_label[] = {
00255 "Undergraduate traditional",
00256 "Undergraduate nontraditional",
00257 "Graduate : master's",
00258 "Graduate : doctoral",
00259 "",
00260 "Total",
00261 };
00262 #else
00263 static char* std_sum_rank_label[] = {
00264 "Undergraduate traditional",
00265 "Undergraduate nontraditional",
00266 "Graduate : master's",
00267 "Graduate : doctoral",
00268 "Distance learners\r\n(Undergraduates)",
00269 "Total",
00270 };
00271 #endif
00272
00273 static char* std_sum_ge_label[] = {
00274 "Nonminority male",
00275 "Nonminority female",
00276 "Minority male",
00277 "Minority female",
00278 "Total",
00279 };
00280 static char* std_sum_title[] = {
00281 "Student Distribution by Student Level",
00282 "Student Distribution by Gender and Ethnicity",
00283 };
00284
00285 static char* std_sum_title2[] = {
00286 "Academic talent",
00287 "Academic performance",
00288 "Number of degrees awarded",
00289 "Undergraduate talent",
00290 "Undergraduate satisfaction"
00291 };
00292
00293 static char* std_sum_title3[] = {
00294 "Academic talent",
00295 "Academic performance",
00296 "Number of degrees awarded",
00297 "Time to degree (years)",
00298 "Number of dropouts",
00299 #if(GAME_VERSION>=200)
00300 "Morale",
00301 #endif
00302 };
00303
00304 static char* std_sum_label2[] = {
00305 "Undergraduate students","Master's and professional students","Doctoral students",
00306 "Academic","Extracurricular","Athletics",
00307 "Academic","Student life","Athletics","Morale\r\n(overall satisfaction)"
00308 };
00309
00310 static PieChart std_sum_rank_piechart;
00311 static PieChart std_sum_gender_ethnic_piechart;
00312 static GraphPerformanceIndicatorTrimester mode_std_sum_graphicon_t[14];
00313 static GraphPerformanceIndicatorMonth mode_std_sum_graphicon_m[14];
00314 static GraphPerformanceIndicatorYear mode_std_sum_graphicon_y[14];
00315 #if(GAME_VERSION>=200)
00316 static GraphPerformanceIndicatorTrimester mode_std_sum_student_morale;
00317 #endif
00318 #if(GAME_VERSION>=200)
00319 static Text std_sum_text[15];
00320 #else
00321 static Text std_sum_text[14];
00322 #endif
00323 static Text std_sum_text2[14];
00324 static char report_init_flag=0;
00325
00327
00328
00329 void PlayerSchool::summary_student_report_1(int refreshFlag) {
00330 static int percentDataArray[MAX_STUDENT_LEVEL+1];
00331 static int xStart = 1991, xEnd = 1998;
00332
00333 static int data_num=HISTORY_YEAR_COUNT;
00334 static int data_numT=HISTORY_TRIMESTER_COUNT;
00335
00336 static int *dataArray[MAX_STUDENT_LEVEL+1];
00337 #if(GAME_VERSION>=200)
00338
00339 int initialDataArray[MAX_STUDENT_LEVEL+1];
00340 #endif
00341
00342 int rankLevelCount[MAX_STUDENT_LEVEL+1];
00343 #if(GAME_VERSION>=200)
00344 int initialRankLevelCount[MAX_STUDENT_LEVEL+1];
00345 #endif
00346 int deptRecno;
00347
00348 memset( rankLevelCount,0, sizeof(rankLevelCount) );
00349 #if(GAME_VERSION>=200)
00350
00351 memset( initialRankLevelCount,0, sizeof(initialRankLevelCount) );
00352 #endif
00353
00354
00355 if(current_report_mode==REPORT_MODE_DEPARTMENT) {
00356 if( department_array.selected_recno )
00357 deptRecno = department_array.selected_recno;
00358 cur_dept_ptr = department_array[deptRecno];
00359
00360 for(int i=0;i<MAX_STUDENT_LEVEL_N_TOTAL;i++) {
00361
00362 dataArray[i] = cur_dept_ptr->dept_student_level_history[i];
00363 #if(GAME_VERSION>=200)
00364
00365 initialDataArray[i] = cur_dept_ptr->initial_dept_student_level_history[i];
00366 #endif
00367
00368 rankLevelCount[i]=dataArray[i][data_numT-1];
00369
00370 #if(GAME_VERSION>=200)
00371
00372
00373 initialRankLevelCount[i]=initialDataArray[i];
00374 #endif
00375 }
00376 }
00377 else {
00378
00379 for(int i=0;i<MAX_STUDENT_LEVEL_N_TOTAL;i++) {
00380
00381
00382
00383
00384
00385 dataArray[i]=player_school.ins_student_level_history[i];
00386
00387 rankLevelCount[i]=dataArray[i][data_numT-1] + department_res.general_dept.dept_student_level_no[i];
00388
00389
00390 #if(GAME_VERSION>=200)
00391 initialDataArray[i]=player_school.initial_ins_student_level_history[i];
00392
00393
00394 initialRankLevelCount[i]=initialDataArray[i] + department_res.general_dept.initial_dept_student_level_no[i];
00395 #endif
00396
00397
00398 }
00399 }
00400
00401
00402
00403
00404
00405 int sum=0;
00406 for(int i=0;i<MAX_STUDENT_LEVEL;i++) {
00407 #if(GAME_VERSION>=200)
00408 if ( i == DISTANCE_LEARN )
00409 continue;
00410 #endif
00411 sum+=rankLevelCount[i];
00412 }
00413 rankLevelCount[MAX_STUDENT_LEVEL_N_TOTAL-1]=sum;
00414
00415
00416 #if(GAME_VERSION>=200)
00417 int initialSum=0;
00418 for(i=0;i<MAX_STUDENT_LEVEL_N_TOTAL-1;i++) {
00419 if ( i == 4 )
00420 continue;
00421 initialSum+=initialRankLevelCount[i];
00422 }
00423 initialRankLevelCount[MAX_STUDENT_LEVEL_N_TOTAL-1]=initialSum;
00424 #endif
00425
00426 if(sum!=0) {
00427 int diff=200;
00428 for(i=0;i<MAX_STUDENT_LEVEL_N_TOTAL;i++) {
00429 percentDataArray[i]=(rankLevelCount[i]*100)/sum;
00430 diff-=percentDataArray[i];
00431 }
00432 int maxpercent=percentDataArray[0],maxi=0;
00433 for(i=1;i<MAX_STUDENT_LEVEL_N_TOTAL-1;i++) {
00434 if(percentDataArray[i]>maxpercent) {
00435 maxpercent=percentDataArray[i];
00436 maxi=i;
00437 }
00438 }
00439 percentDataArray[maxi]+=diff;
00440 }
00441 else
00442 for(i=0;i<MAX_STUDENT_LEVEL_N_TOTAL;i++)
00443 percentDataArray[i]=0;
00444
00445
00446 vga.use_back();
00447 if( refreshFlag == INFO_REPAINT ) {
00448 if( report_init_flag )
00449 summary_student_report_deinit();
00450
00451 report_init_flag = 1;
00452
00453 user_interface.bg_img(BG_PIC_ID, &vga_back);
00454 user_interface.brighten(
00455 REPORT_X1+TAB1,
00456 REPORT_Y1+VTAB1+20,
00457 REPORT_X1+TAB2,
00458 REPORT_Y1+VTAB4
00459 );
00460 user_interface.brighten(
00461 REPORT_X1+TAB2,
00462 REPORT_Y1+VTAB1+20,
00463 REPORT_X2,
00464 REPORT_Y1+VTAB4);
00465
00466 user_interface.rect(
00467 REPORT_X1+TAB2-2,
00468 REPORT_Y1+VTAB1+20,
00469 REPORT_X2,
00470 REPORT_Y1+VTAB4,1);
00471
00472
00473
00474
00475
00476
00477
00478
00479
00480
00481
00482
00483
00484
00485
00486
00487
00488
00489
00490 user_interface.brighten(REPORT_X1+100,REPORT_Y1-13,REPORT_X1+630,REPORT_Y1+10);
00491 user_interface.rect(REPORT_X1+100,REPORT_Y1-13,REPORT_X1+630,REPORT_Y1+10,1);
00492 font_charts.put(REPORT_X1+230,REPORT_Y1-8,std_sum_title[0]);
00493
00494
00495
00496 text_refresh_bitmap1=NULL;
00497 text_refresh_bitmap1=vga_back.save_area(
00498 REPORT_X1+TAB4,
00499 REPORT_Y1+VTAB1,
00500 REPORT_X2-100,
00501 REPORT_Y1+VTAB4,
00502 text_refresh_bitmap1);
00503
00504 short x = BOTTOM_BUTTON_X1;
00505 short y = BOTTOM_BUTTON_Y1;
00506 font_chartsm.put(REPORT_X1-10,y+2,"Department :");
00507 font_chartsm.put(REPORT_X1-10,y+30," Institution :");
00508 for (int i = 0; i < 3; i++, x+=BOTTOM_BUTTON_WIDTH+BOTTOM_BUTTON_DISTANCE)
00509 type_button_group[i].create_text(x, y,
00510 x+BOTTOM_BUTTON_WIDTH, y+BOTTOM_BUTTON_HEIGHT,
00511 reportTypeStrArray[i]);
00512 #if(GAME_VERSION>=200) // Turnover
00513 type_button_group[i].create_text(x+BOTTOM_BUTTON_WIDTH+BOTTOM_BUTTON_DISTANCE, y,
00514 x+BOTTOM_BUTTON_WIDTH+BOTTOM_BUTTON_WIDTH+BOTTOM_BUTTON_DISTANCE, y+BOTTOM_BUTTON_HEIGHT,
00515 reportTypeStrArray[i]);
00516 #endif
00517 x = BOTTOM_BUTTON_X1;
00518 y = BOTTOM_BUTTON_Y1+28;
00519 #if(GAME_VERSION>=200)
00520 for (i = 4; i < 9; i++, x+=BOTTOM_BUTTON_WIDTH+BOTTOM_BUTTON_DISTANCE)
00521 #else
00522 for (i = 3; i < 9; i++, x+=BOTTOM_BUTTON_WIDTH+BOTTOM_BUTTON_DISTANCE)
00523 #endif
00524 type_button_group[i].create_text(x, y,
00525 x+BOTTOM_BUTTON_WIDTH, y+BOTTOM_BUTTON_HEIGHT,
00526 reportTypeStrArray[i]);
00527
00528 #if(GAME_VERSION>=200)
00529 y = BOTTOM_BUTTON_Y1;
00530 type_button_group[i].create_text(x, y,
00531 x+BOTTOM_BUTTON_WIDTH+10, y+BOTTOM_BUTTON_HEIGHT+28,
00532 reportTypeStrArray[i]);
00533 #endif
00534
00535
00536
00537
00538
00539
00540
00541
00542
00543
00544
00545
00546
00547
00548
00549
00550
00551
00552
00553
00554
00555
00556
00557
00558
00559
00560
00561 #if(GAME_VERSION>=200)
00562 std_sum_rank_piechart.init(
00563 REPORT_X1+TAB1,
00564 REPORT_Y1+VTAB1+20,
00565 REPORT_X1+TAB2,
00566 REPORT_Y1+VTAB4,
00567 4, rankLevelCount, &xStart,&xEnd,
00568 NULL, NULL, NULL, 1, 1, 0, 3);
00569 #else
00570 std_sum_rank_piechart.init(
00571 REPORT_X1+TAB1,
00572 REPORT_Y1+VTAB1+20,
00573 REPORT_X1+TAB2,
00574 REPORT_Y1+VTAB4,
00575 5, rankLevelCount, &xStart,&xEnd,
00576 NULL, NULL, NULL, 1, 1, 0, 3);
00577 #endif
00578
00579 std_sum_rank_piechart.refresh();
00580
00581
00582
00583 for(i=0;i<MAX_STUDENT_LEVEL_N_TOTAL;i++) {
00584 #if(GAME_VERSION>=200)
00585 if (i == 4)
00586 continue;
00587 #endif
00588 font_chartsm.put_paragraph(
00589 REPORT_X1+TAB3+60,
00590 REPORT_Y1+VTAB1+i*43+43,
00591 REPORT_X1+TAB4+20,
00592 REPORT_Y1+VTAB1+i*43+83,
00593 std_sum_rank_label[i]);
00594 font_chartsm.right_put(
00595 REPORT_X1+TAB4+60,
00596 REPORT_Y1+VTAB1+i*43+43,
00597 m.format(rankLevelCount[i],4));
00598
00599 #if(GAME_VERSION>=200)
00600 font_chart_purple_sm.right_put(
00601 REPORT_X1+TAB5+60,
00602 REPORT_Y1+VTAB1+i*43+43,
00603 m.format(initialRankLevelCount[i],4));
00604 #else
00605 font_chartsm.right_put(
00606 REPORT_X1+TAB5+60,
00607 REPORT_Y1+VTAB1+i*43+43,
00608 m.format(percentDataArray[i],3));
00609 #endif
00610
00611
00612 mode_std_sum_graphicon_t[i].init(
00613 REPORT_X1+TAB6,
00614 REPORT_Y1+VTAB1+i*43+30,
00615 REPORT_X1+TAB6+80,
00616 REPORT_Y1+VTAB1+i*43+68,
00617
00618 1 ,&data_numT ,dataArray[i] , 1, 0, 3);
00619
00620
00621 mode_std_sum_graphicon_t[i].paint();
00622
00623 if(i!=MAX_STUDENT_LEVEL_N_TOTAL-1)
00624 user_interface.bar(
00625 REPORT_X1+TAB3+30,
00626 REPORT_Y1+VTAB1+43+i*43,
00627 REPORT_X1+TAB3+41,
00628 REPORT_Y1+VTAB1+55+i*43,
00629 ((std_sum_rank_piechart.series_color)[i]));
00630 }
00631 }
00632 else {
00633 std_sum_rank_piechart.refresh();
00634 vga_back.rest_area(text_refresh_bitmap1,0,0);
00635 for(int i=0;i<MAX_STUDENT_LEVEL_N_TOTAL;i++) {
00636
00637 #if(GAME_VERSION>=200)
00638 if ( i==4 )
00639 continue;
00640 #endif
00641 font_chartsm.right_put(
00642 REPORT_X1+TAB4+60,
00643 REPORT_Y1+VTAB1+i*43+43,
00644 m.format(rankLevelCount[i],4));
00645
00646
00647 #if(GAME_VERSION>=200)
00648 font_chart_purple_sm.right_put(
00649 REPORT_X1+TAB5+60,
00650 REPORT_Y1+VTAB1+i*43+43,
00651 m.format(initialRankLevelCount[i],4));
00652 #else
00653 font_chartsm.right_put(
00654 REPORT_X1+TAB5+60,
00655 REPORT_Y1+VTAB1+i*43+43,
00656 m.format(percentDataArray[i],3));
00657 #endif
00658
00659 }
00660 for(i=0;i<MAX_STUDENT_LEVEL_N_TOTAL;i++) {
00661
00662 #if(GAME_VERSION>=200)
00663 if ( i==4 )
00664 continue;
00665 #endif
00666 mode_std_sum_graphicon_t[i].refresh();
00667 }
00668 }
00669
00670
00671 type_button_group.paint(current_report_type);
00672 #if(GAME_VERSION>=200)
00673
00674 int x1, x2, y1, y2;
00675
00676 for ( int z=3; z<10; z++ ) {
00677 x1 = type_button_group[z].x1+1;
00678 x2 = type_button_group[z].x2+1;
00679 y1 = type_button_group[z].y1+1;
00680 y2 = type_button_group[z].y2-1;
00681
00682 user_interface.rect(x1,y1,x2,y2,1,70);
00683 }
00684 #endif
00685
00686
00687
00688 int totalCourse=0, totalStudent=0;
00689
00690 for( int j=department_array.size() ; j>0 ; j-- ) {
00691 Department* deptPtr = department_array[j];
00692
00693 for( i=deptPtr->student_array.size() ; i>0 ; i-- ) {
00694 if( deptPtr->student_array.is_deleted(i) )
00695 continue;
00696
00697 totalStudent ++;
00698 totalCourse += deptPtr->student_array[i]->total_course_all;
00699 }
00700 }
00701
00702
00703
00704 vga.blt_buf(ZOOM_X1, ZOOM_Y1, ZOOM_X2, ZOOM_Y2);
00705 vga.use_front();
00706 }
00707
00708
00710
00712
00713
00714 void PlayerSchool::summary_student_report_2(int refreshFlag) {
00715 static int percentDataArray2[GENDER_ETHNIC_TYPE_COUNT_N_TOTAL];
00716 static int xStart = 1991, xEnd = 1998;
00717
00718 int deptRecno;
00719 static int data_num=HISTORY_YEAR_COUNT;
00720 static int data_numT=HISTORY_TRIMESTER_COUNT;
00721 static int *dataArray[GENDER_ETHNIC_TYPE_COUNT_N_TOTAL];
00722 int genderEthnicGroupCount[GENDER_ETHNIC_TYPE_COUNT_N_TOTAL];
00723 memset( genderEthnicGroupCount,0, sizeof(genderEthnicGroupCount) );
00724
00725
00726 #if(GAME_VERSION>=200)
00727
00728
00729 int initialDataArray[GENDER_ETHNIC_TYPE_COUNT_N_TOTAL];
00730 int initialGenderEthnicGroupCount[GENDER_ETHNIC_TYPE_COUNT_N_TOTAL];
00731 memset( initialGenderEthnicGroupCount,0, sizeof(initialGenderEthnicGroupCount) );
00732 #endif
00733
00734
00735
00736 if(current_report_mode==REPORT_MODE_DEPARTMENT) {
00737 if( department_array.selected_recno )
00738 deptRecno = department_array.selected_recno;
00739 cur_dept_ptr = department_array[deptRecno];
00740
00741
00742 for(int i=0;i<GENDER_ETHNIC_TYPE_COUNT_N_TOTAL;i++) {
00743
00744
00745 dataArray[i]=cur_dept_ptr->dept_gender_student_level_history[i];
00746 genderEthnicGroupCount[i]=dataArray[i][data_numT-1];
00747
00748
00749 #if(GAME_VERSION>=200)
00750 initialDataArray[i]=cur_dept_ptr->initial_dept_gender_student_level_history[i];
00751
00752
00753 initialGenderEthnicGroupCount[i]=initialDataArray[i];
00754 #endif
00755
00756 }
00757 }
00758 else {
00759
00760 for(int i=0;i<GENDER_ETHNIC_TYPE_COUNT_N_TOTAL;i++) {
00761
00762
00763 dataArray[i]=player_school.ins_gender_student_level_history[i];
00764 genderEthnicGroupCount[i]=dataArray[i][data_numT-1];
00765
00766
00767 #if(GAME_VERSION>=200)
00768 initialDataArray[i]=player_school.initial_ins_gender_student_level_history[i];
00769
00770
00771 initialGenderEthnicGroupCount[i]=initialDataArray[i];
00772 #endif
00773
00774 }
00775 }
00776
00777 int sum=0;
00778 for(int i=0;i<GENDER_ETHNIC_TYPE_COUNT_N_TOTAL-1;i++)
00779 sum+=genderEthnicGroupCount[i];
00780 genderEthnicGroupCount[GENDER_ETHNIC_TYPE_COUNT_N_TOTAL-1]=sum;
00781
00782 #if(GAME_VERSION>=200)
00783 int initialSum=0;
00784 for(i=0;i<GENDER_ETHNIC_TYPE_COUNT_N_TOTAL-1;i++)
00785 initialSum+=initialGenderEthnicGroupCount[i];
00786 initialGenderEthnicGroupCount[GENDER_ETHNIC_TYPE_COUNT_N_TOTAL-1]=initialSum;
00787 #endif
00788
00789
00790 if(sum!=0) {
00791 int diff=200;
00792 for(i=0;i<GENDER_ETHNIC_TYPE_COUNT_N_TOTAL;i++) {
00793 percentDataArray2[i]=(genderEthnicGroupCount[i]*100)/sum;
00794 diff-=percentDataArray2[i];
00795 }
00796 int maxpercent=percentDataArray2[0],maxi=0;
00797 for(i=1;i<GENDER_ETHNIC_TYPE_COUNT_N_TOTAL-1;i++) {
00798 if(percentDataArray2[i]>maxpercent) {
00799 maxpercent=percentDataArray2[i];
00800 maxi=i;
00801 }
00802 }
00803 percentDataArray2[maxi]+=diff;
00804 }
00805 else
00806 for(i=0;i<GENDER_ETHNIC_TYPE_COUNT_N_TOTAL;i++)
00807 percentDataArray2[i]=0;
00808
00809
00810 vga.use_back();
00811 if( refreshFlag == INFO_REPAINT ) {
00812 if( report_init_flag )
00813 summary_student_report_deinit();
00814
00815 report_init_flag = 1;
00816
00817 user_interface.bg_img(BG_PIC_ID, &vga_back);
00818 user_interface.brighten(
00819 REPORT_X1+TAB1,
00820 REPORT_Y1+VTAB1+20,
00821 REPORT_X1+TAB2,
00822 REPORT_Y1+VTAB4
00823 );
00824
00825 user_interface.brighten(
00826 REPORT_X1+TAB2,
00827 REPORT_Y1+VTAB1+20,
00828 REPORT_X2,
00829 REPORT_Y1+VTAB4);
00830 user_interface.rect(
00831 REPORT_X1+TAB2-2,
00832 REPORT_Y1+VTAB1+20,
00833 REPORT_X2,
00834 REPORT_Y1+VTAB4,1);
00835
00836
00837 user_interface.brighten(REPORT_X1+100,REPORT_Y1-13,REPORT_X1+630,REPORT_Y1+10);
00838 user_interface.rect(REPORT_X1+100,REPORT_Y1-13,REPORT_X1+630,REPORT_Y1+10,1);
00839 font_charts.put(REPORT_X1+180,REPORT_Y1-8,std_sum_title[1]);
00840
00841
00842
00843 text_refresh_bitmap1=NULL;
00844 text_refresh_bitmap1=vga_back.save_area(
00845 REPORT_X1+TAB4,
00846 REPORT_Y1+VTAB1,
00847 REPORT_X2-100,
00848 REPORT_Y1+VTAB4,
00849 text_refresh_bitmap1);
00850
00851 short x = BOTTOM_BUTTON_X1;
00852 short y = BOTTOM_BUTTON_Y1;
00853 font_chartsm.put(REPORT_X1-10,y+2,"Department :");
00854 font_chartsm.put(REPORT_X1-10,y+30," Institution :");
00855 for (int i = 0; i < 3; i++, x+=BOTTOM_BUTTON_WIDTH+BOTTOM_BUTTON_DISTANCE)
00856 type_button_group[i].create_text(x, y,
00857 x+BOTTOM_BUTTON_WIDTH, y+BOTTOM_BUTTON_HEIGHT,
00858 reportTypeStrArray[i]);
00859 #if(GAME_VERSION>=200) // Turnover
00860 type_button_group[i].create_text(x+BOTTOM_BUTTON_WIDTH+BOTTOM_BUTTON_DISTANCE, y,
00861 x+BOTTOM_BUTTON_WIDTH+BOTTOM_BUTTON_WIDTH+BOTTOM_BUTTON_DISTANCE, y+BOTTOM_BUTTON_HEIGHT,
00862 reportTypeStrArray[i]);
00863 #endif
00864 x = BOTTOM_BUTTON_X1;
00865 y = BOTTOM_BUTTON_Y1+28;
00866 #if(GAME_VERSION>=200)
00867 for (i = 4; i < 9; i++, x+=BOTTOM_BUTTON_WIDTH+BOTTOM_BUTTON_DISTANCE)
00868 #else
00869 for (i = 3; i < 9; i++, x+=BOTTOM_BUTTON_WIDTH+BOTTOM_BUTTON_DISTANCE)
00870 #endif
00871 type_button_group[i].create_text(x, y,
00872 x+BOTTOM_BUTTON_WIDTH, y+BOTTOM_BUTTON_HEIGHT,
00873 reportTypeStrArray[i]);
00874
00875 #if(GAME_VERSION>=200)
00876 y = BOTTOM_BUTTON_Y1;
00877 type_button_group[i].create_text(x, y,
00878 x+BOTTOM_BUTTON_WIDTH+10, y+BOTTOM_BUTTON_HEIGHT+28,
00879 reportTypeStrArray[i]);
00880 #endif
00881
00882 std_sum_gender_ethnic_piechart.init(
00883 REPORT_X1+TAB1,
00884 REPORT_Y1+VTAB1+20,
00885 REPORT_X1+TAB2,
00886 REPORT_Y1+VTAB4,
00887 4, genderEthnicGroupCount, &xStart,&xEnd,
00888 NULL, NULL, NULL, 1, 1, 0, 3);
00889
00890 std_sum_gender_ethnic_piechart.refresh();
00891
00892
00893
00894 for(i=0;i<GENDER_ETHNIC_TYPE_COUNT_N_TOTAL;i++) {
00895 font_chartsm.put(
00896 REPORT_X1+TAB3+60,
00897 REPORT_Y1+VTAB1+i*47+43,
00898 std_sum_ge_label[i]);
00899 font_chartsm.right_put(
00900 REPORT_X1+TAB4+60,
00901 REPORT_Y1+VTAB1+i*47+43,
00902 m.format(genderEthnicGroupCount[i],4));
00903
00904 #if(GAME_VERSION>=200)
00905 font_chart_purple_sm.right_put(
00906 REPORT_X1+TAB5+60,
00907 REPORT_Y1+VTAB1+i*47+43,
00908 m.format(initialGenderEthnicGroupCount[i],4));
00909 #else
00910 font_chartsm.right_put(
00911 REPORT_X1+TAB5+60,
00912 REPORT_Y1+VTAB1+i*47+43,
00913 m.format(percentDataArray2[i],3));
00914 #endif
00915
00916
00917 mode_std_sum_graphicon_t[i].init(
00918 REPORT_X1+TAB6,
00919 REPORT_Y1+VTAB1+i*47+30,
00920 REPORT_X1+TAB6+80,
00921 REPORT_Y1+VTAB1+i*47+72,
00922
00923 1 ,&data_numT ,dataArray[i] , 1, 0, 3);
00924
00925
00926 mode_std_sum_graphicon_t[i].paint();
00927
00928 if(i!=GENDER_ETHNIC_TYPE_COUNT_N_TOTAL-1)
00929 user_interface.bar(
00930 REPORT_X1+TAB3+30,
00931 REPORT_Y1+VTAB1+43+i*47,
00932 REPORT_X1+TAB3+41,
00933 REPORT_Y1+VTAB1+55+i*47,
00934 ((std_sum_gender_ethnic_piechart.series_color)[i]));
00935 }
00936 }
00937 else {
00938 std_sum_gender_ethnic_piechart.refresh();
00939 vga_back.rest_area(text_refresh_bitmap1,0,0);
00940 for(i=0;i<GENDER_ETHNIC_TYPE_COUNT_N_TOTAL;i++) {
00941 font_chartsm.right_put(
00942 REPORT_X1+TAB4+60,
00943 REPORT_Y1+VTAB1+i*47+43,
00944 m.format(genderEthnicGroupCount[i],4));
00945
00946 #if(GAME_VERSION>=200)
00947 font_chart_purple_sm.right_put(
00948 REPORT_X1+TAB5+60,
00949 REPORT_Y1+VTAB1+i*47+43,
00950 m.format(initialGenderEthnicGroupCount[i],4));
00951 #else
00952 font_chartsm.right_put(
00953 REPORT_X1+TAB5+60,
00954 REPORT_Y1+VTAB1+i*47+43,
00955 m.format(percentDataArray2[i],3));
00956 #endif
00957
00958
00959 mode_std_sum_graphicon_t[i].refresh();
00960 }
00961 }
00962
00963
00964 type_button_group.paint(current_report_type);
00965 #if(GAME_VERSION>=200)
00966
00967 int x1, x2, y1, y2;
00968
00969 for ( int z=3; z<10; z++ ) {
00970 x1 = type_button_group[z].x1+1;
00971 x2 = type_button_group[z].x2+1;
00972 y1 = type_button_group[z].y1+1;
00973 y2 = type_button_group[z].y2-1;
00974
00975 user_interface.rect(x1,y1,x2,y2,1,70);
00976 }
00977 #endif
00978
00979 vga.blt_buf(ZOOM_X1, ZOOM_Y1, ZOOM_X2, ZOOM_Y2);
00980 vga.use_front();
00981 }
00982
00983
00985
00987
00988 void PlayerSchool::summary_student_report_3(int refreshFlag) {
00989 int tab1=10;
00990 int tab2=230;
00991 int tab3=300;
00992 int tab4=380;
00993 int tab5=450;
00994 int tab6=530;
00995 int tab7=610;
00996 int vtab1=15;
00997 int vtab2=160;
00998 int vtab3=193;
00999 int vtab4=338;
01000 static int data_num1=HISTORY_MONTH_COUNT;
01001 static int data_num2=HISTORY_YEAR_COUNT;
01002 #if(GAME_VERSION>=200)
01003 static int numSeriesData2 = HISTORY_TRIMESTER_COUNT;
01004 #endif
01005 static int v1[3];
01006 static int v2[3];
01007 static int v3[3];
01008 static float v4[3];
01009 static float v5[3];
01010 #if(GAME_VERSION>=200)
01011 static float v6;
01012 #endif
01013 static int dataArray1[8][HISTORY_MONTH_COUNT];
01014 static int dataArray2[3][HISTORY_YEAR_COUNT];
01015 static int dataArray3[8][HISTORY_MONTH_COUNT];
01016 static float dataArray4[DEGREE_TYPE_COUNT][HISTORY_YEAR_COUNT];
01017 static float dataArray5[DEGREE_TYPE_COUNT][HISTORY_YEAR_COUNT];
01018 #if(GAME_VERSION>=200)
01019 static float *dataArray6;
01020 #endif
01021
01022
01023 #if(GAME_VERSION>=200)
01024 static int initialv1[3];
01025 static int initialv2[3];
01026 static int initialv3[3];
01027 static float initialv4[3];
01028 static float initialv5[3];
01029 #if(GAME_VERSION>=200)
01030 static float initialv6;
01031 #endif
01032 int initialDataArray1[8][HISTORY_MONTH_COUNT];
01033 int initialDataArray2[3][HISTORY_YEAR_COUNT];
01034
01035 float initialDataArray4[DEGREE_TYPE_COUNT][HISTORY_YEAR_COUNT];
01036 float initialDataArray5[DEGREE_TYPE_COUNT][HISTORY_YEAR_COUNT];
01037
01038 memset(initialDataArray1,0,sizeof(initialDataArray1));
01039 memset(initialDataArray2,0,sizeof(initialDataArray2));
01040 #endif
01041
01042 int deptRecno=1;
01043
01044 memset(dataArray1,0,sizeof(dataArray1));
01045 memset(dataArray2,0,sizeof(dataArray2));
01046
01047
01048 if(current_report_mode==REPORT_MODE_DEPARTMENT) {
01049 if( department_array.selected_recno )
01050 deptRecno = department_array.selected_recno;
01051
01052 cur_dept_ptr = department_array[deptRecno];
01053
01054 #if(GAME_VERSION>=200)
01055 dataArray6=cur_dept_ptr->p_student_morale_history;
01056 #endif
01057
01058
01059 for(int j=0;j<HISTORY_MONTH_COUNT;j++) {
01060 dataArray1[0][j]=cur_dept_ptr->student_array.talent_academic_all[BACHELOR_DEGREE][j];
01061 dataArray1[1][j]=cur_dept_ptr->student_array.talent_academic_all[MASTER_DEGREE][j];
01062 dataArray1[2][j]=cur_dept_ptr->student_array.talent_academic_all[DOCTOR_DEGREE][j];
01063 dataArray1[3][j]=cur_dept_ptr->student_array.performance_academic_ug[j];
01064
01065
01066 #if(GAME_VERSION>=200)
01067 initialDataArray1[0][j]=cur_dept_ptr->student_array.initial_talent_academic_all[BACHELOR_DEGREE][j];
01068 initialDataArray1[1][j]=cur_dept_ptr->student_array.initial_talent_academic_all[MASTER_DEGREE][j];
01069 initialDataArray1[2][j]=cur_dept_ptr->student_array.initial_talent_academic_all[DOCTOR_DEGREE][j];
01070 initialDataArray1[3][j]=cur_dept_ptr->student_array.initial_performance_academic_ug[j];
01071 #endif
01072
01073 }
01074
01075 for(j=0;j<HISTORY_YEAR_COUNT;j++) {
01076 #if(GAME_VERSION>=200)
01077 dataArray2[0][j]=cur_dept_ptr->student_array.bachelor_degree[j]+
01078 cur_dept_ptr->student_array.non_ug_bachelor_degree[j];
01079 #else
01080 dataArray2[0][j]=cur_dept_ptr->student_array.bachelor_degree[j];
01081 #endif
01082 dataArray2[1][j]=cur_dept_ptr->student_array.master_degree[j];
01083 dataArray2[2][j]=cur_dept_ptr->student_array.doctor_degree[j];
01084 dataArray4[0][j]=cur_dept_ptr->student_array.fake_disp_time_to_degree[BACHELOR_DEGREE][j];
01085 dataArray4[1][j]=cur_dept_ptr->student_array.time_to_degree[MASTER_DEGREE][j];
01086 dataArray4[2][j]=cur_dept_ptr->student_array.time_to_degree[DOCTOR_DEGREE][j];
01087 dataArray5[0][j]=cur_dept_ptr->student_array.dropout_rate[BACHELOR_DEGREE][j];
01088 dataArray5[1][j]=cur_dept_ptr->student_array.dropout_rate[MASTER_DEGREE][j];
01089 dataArray5[2][j]=cur_dept_ptr->student_array.dropout_rate[DOCTOR_DEGREE][j];
01090
01091
01092 #if(GAME_VERSION>=200)
01093 initialDataArray2[0][j]=cur_dept_ptr->student_array.initial_bachelor_degree[j];
01094 initialDataArray2[1][j]=cur_dept_ptr->student_array.initial_master_degree[j];
01095 initialDataArray2[2][j]=cur_dept_ptr->student_array.initial_doctor_degree[j];
01096 initialDataArray4[0][j]=cur_dept_ptr->student_array.initial_fake_disp_time_to_degree[BACHELOR_DEGREE][j];
01097 initialDataArray4[1][j]=cur_dept_ptr->student_array.initial_time_to_degree[MASTER_DEGREE][j];
01098 initialDataArray4[2][j]=cur_dept_ptr->student_array.initial_time_to_degree[DOCTOR_DEGREE][j];
01099 initialDataArray5[0][j]=cur_dept_ptr->student_array.initial_dropout_rate[BACHELOR_DEGREE][j];
01100 initialDataArray5[1][j]=cur_dept_ptr->student_array.initial_dropout_rate[MASTER_DEGREE][j];
01101 initialDataArray5[2][j]=cur_dept_ptr->student_array.initial_dropout_rate[DOCTOR_DEGREE][j];
01102 #endif
01103
01104 }
01105 for(j=0;j<3;j++) {
01106 v1[j]=dataArray1[j][HISTORY_MONTH_COUNT-1];
01107 v3[j]=dataArray2[j][HISTORY_YEAR_COUNT-1];
01108 v4[j]=dataArray4[j][HISTORY_YEAR_COUNT-1];
01109 v5[j]=dataArray5[j][HISTORY_YEAR_COUNT-1];
01110
01111
01112 #if(GAME_VERSION>=200)
01113 initialv1[j]=initialDataArray1[j][HISTORY_MONTH_COUNT-1];
01114 initialv3[j]=initialDataArray2[j][HISTORY_YEAR_COUNT-1];
01115 initialv4[j]=initialDataArray4[j][HISTORY_YEAR_COUNT-1];
01116 initialv5[j]=initialDataArray5[j][HISTORY_YEAR_COUNT-1];
01117 #endif
01118
01119 }
01120 v2[0]=dataArray1[3][HISTORY_MONTH_COUNT-1];
01121 #if(GAME_VERSION>=200)
01122 v6 = dataArray6[HISTORY_TRIMESTER_COUNT-1];
01123 initialv6 = cur_dept_ptr->initial_p_student_morale;
01124 #endif
01125
01126
01127 #if(GAME_VERSION>=200)
01128 initialv2[0]=initialDataArray1[3][HISTORY_MONTH_COUNT-1];
01129 #endif
01130
01131 }
01132 else {
01133
01134 #if(GAME_VERSION>=200)
01135 dataArray6=department_array.p_student_morale_history;
01136 #endif
01137
01138 for(int j=0;j<HISTORY_MONTH_COUNT;j++) {
01139 dataArray1[0][j]=player_school.talent_academic_all[BACHELOR_DEGREE][j];
01140 dataArray1[1][j]=player_school.talent_academic_all[MASTER_DEGREE][j];
01141 dataArray1[2][j]=player_school.talent_academic_all[DOCTOR_DEGREE][j];
01142 dataArray1[3][j]=player_school.performance_academic_ug[j];
01143
01144
01145 #if(GAME_VERSION>=200)
01146 initialDataArray1[0][j]=player_school.initial_talent_academic_all[BACHELOR_DEGREE][j];
01147 initialDataArray1[1][j]=player_school.initial_talent_academic_all[MASTER_DEGREE][j];
01148 initialDataArray1[2][j]=player_school.initial_talent_academic_all[DOCTOR_DEGREE][j];
01149 initialDataArray1[3][j]=player_school.initial_performance_academic_ug[j];
01150 #endif
01151
01152 }
01153
01154 for(j=0;j<HISTORY_YEAR_COUNT;j++) {
01155 #if(GAME_VERSION>=200)
01156 dataArray2[0][j]=player_school.bachelor_degree[j]+
01157 player_school.non_ug_bachelor_degree[j];
01158 #else
01159 dataArray2[0][j]=player_school.bachelor_degree[j];
01160 #endif
01161 dataArray2[1][j]=player_school.master_degree[j];
01162 dataArray2[2][j]=player_school.doctor_degree[j];
01163 dataArray4[0][j]=player_school.fake_disp_time_to_degree[BACHELOR_DEGREE][j];
01164 dataArray4[1][j]=player_school.time_to_degree[MASTER_DEGREE][j];
01165 dataArray4[2][j]=player_school.time_to_degree[DOCTOR_DEGREE][j];
01166 dataArray5[0][j]=player_school.dropout_rate[BACHELOR_DEGREE][j];
01167 dataArray5[1][j]=player_school.dropout_rate[MASTER_DEGREE][j];
01168 dataArray5[2][j]=player_school.dropout_rate[DOCTOR_DEGREE][j];
01169
01170
01171 #if(GAME_VERSION>=200)
01172 initialDataArray2[0][j]=player_school.initial_bachelor_degree[j];
01173 initialDataArray2[1][j]=player_school.initial_master_degree[j];
01174 initialDataArray2[2][j]=player_school.initial_doctor_degree[j];
01175
01176
01177 initialDataArray4[0][j]=player_school.initial_fake_disp_time_to_degree[j];
01178 initialDataArray4[1][j]=player_school.initial_time_to_degree[MASTER_DEGREE][j];
01179 initialDataArray4[2][j]=player_school.initial_time_to_degree[DOCTOR_DEGREE][j];
01180 initialDataArray5[0][j]=player_school.initial_dropout_rate[BACHELOR_DEGREE][j];
01181 initialDataArray5[1][j]=player_school.initial_dropout_rate[MASTER_DEGREE][j];
01182 initialDataArray5[2][j]=player_school.initial_dropout_rate[DOCTOR_DEGREE][j];
01183 #endif
01184
01185 }
01186
01187 for(j=0;j<3;j++) {
01188 v1[j]=dataArray1[j][HISTORY_MONTH_COUNT-1];
01189 v3[j]=dataArray2[j][HISTORY_YEAR_COUNT-1];
01190 v4[j]=dataArray4[j][HISTORY_YEAR_COUNT-1];
01191 v5[j]=dataArray5[j][HISTORY_YEAR_COUNT-1];
01192
01193
01194 #if(GAME_VERSION>=200)
01195 initialv1[j]=initialDataArray1[j][HISTORY_MONTH_COUNT-1];
01196 initialv3[j]=initialDataArray2[j][HISTORY_YEAR_COUNT-1];
01197 initialv4[j]=initialDataArray4[j][HISTORY_YEAR_COUNT-1];
01198 initialv5[j]=initialDataArray5[j][HISTORY_YEAR_COUNT-1];
01199 #endif
01200
01201 }
01202 v2[0]=dataArray1[3][HISTORY_MONTH_COUNT-1];
01203 #if(GAME_VERSION>=200)
01204 v6 = dataArray6[HISTORY_TRIMESTER_COUNT-1];
01205 initialv6 = player_school.sub_score_start[S_STUDENT_MORALE];
01206
01207 initialv2[0]=initialDataArray1[3][HISTORY_MONTH_COUNT-1];
01208 #endif
01209 }
01210
01211
01212 vga.use_back();
01213 if( refreshFlag == INFO_REPAINT ) {
01214
01215 if( report_init_flag )
01216 summary_student_report_deinit();
01217 report_init_flag =1;
01218
01219
01220 user_interface.bg_img(BG_PIC_ID, &vga_back);
01221 #if(GAME_VERSION>=200)
01222
01223 user_interface.brighten(REPORT_X1+tab1-5,REPORT_Y1+vtab1+4,
01224 REPORT_X2-tab1,REPORT_Y1+vtab2);
01225
01226 user_interface.brighten(REPORT_X1+tab2,REPORT_Y1+vtab1-13,
01227 REPORT_X2-tab1,REPORT_Y1+vtab1+4);
01228
01229
01230 user_interface.brighten(REPORT_X1+tab1-5,REPORT_Y1+vtab3+4,
01231 REPORT_X2-tab1,REPORT_Y1+vtab4);
01232
01233 user_interface.brighten(REPORT_X1+tab2,REPORT_Y1+vtab3-30,
01234 REPORT_X2-tab1,REPORT_Y1+vtab3+4);
01235
01236 user_interface.rect( REPORT_X1+tab2,REPORT_Y1+vtab1-15,
01237 REPORT_X1+tab4+3,REPORT_Y1+vtab2,1);
01238 user_interface.rect( REPORT_X1+tab4,REPORT_Y1+vtab1-15,
01239 REPORT_X1+tab6+3,REPORT_Y1+vtab2,1);
01240 user_interface.rect( REPORT_X1+tab6,REPORT_Y1+vtab1-15,
01241 REPORT_X2-tab1,REPORT_Y1+vtab2,1);
01242 user_interface.rect( REPORT_X1+tab1-5,REPORT_Y1+vtab1+4,
01243 REPORT_X2-tab1,REPORT_Y1+vtab2,1);
01244
01245 user_interface.rect( REPORT_X1+tab2,REPORT_Y1+vtab3-30,
01246 REPORT_X1+tab4+3,REPORT_Y1+vtab4,1);
01247 user_interface.rect( REPORT_X1+tab4,REPORT_Y1+vtab3-30,
01248 REPORT_X1+tab6+3,REPORT_Y1+vtab4,1);
01249 user_interface.rect( REPORT_X1+tab6,REPORT_Y1+vtab3-30,
01250 REPORT_X2-tab1,REPORT_Y1+vtab4,1);
01251 user_interface.rect( REPORT_X1+tab1-5,REPORT_Y1+vtab3+4,
01252 REPORT_X2-tab1,REPORT_Y1+vtab4,1);
01253 #else
01254 user_interface.brighten(REPORT_X1+tab1-5,REPORT_Y1+vtab1+4,
01255 REPORT_X1+tab6,REPORT_Y1+vtab2);
01256 user_interface.brighten(REPORT_X1+tab2,REPORT_Y1+vtab1-13,
01257 REPORT_X1+tab6,REPORT_Y1+vtab1+4);
01258
01259 user_interface.brighten(REPORT_X1+tab1-5,REPORT_Y1+vtab3+4,
01260 REPORT_X2-tab1,REPORT_Y1+vtab4);
01261 user_interface.brighten(REPORT_X1+tab2,REPORT_Y1+vtab3-30,
01262 REPORT_X2-tab1,REPORT_Y1+vtab3+4);
01263
01264 user_interface.rect( REPORT_X1+tab2,REPORT_Y1+vtab1-15,
01265 REPORT_X1+tab4+3,REPORT_Y1+vtab2,1);
01266 user_interface.rect( REPORT_X1+tab4,REPORT_Y1+vtab1-15,
01267 REPORT_X1+tab6+3,REPORT_Y1+vtab2,1);
01268
01269
01270 user_interface.rect(