00001
00002
00003
00004 #include <ALL.H>
00005 #include <OVGA.H>
00006 #include <OFONT.H>
00007 #include <OSYS.H>
00008 #include <OINFO.H>
00009 #include <OIFACE.H>
00010 #include <OSTR.H>
00011 #include <OMISC.H>
00012 #include <OGRPHYR.H>
00013 #include <OGRPH_PY.H>
00014 #include <OGRPH_PT.H>
00015 #include <OGRPH_PM.H>
00016 #include <OFINANCE.H>
00017 #include <OPSCHOOL.H>
00018 #include <ODEPT.H>
00019
00020 static GraphPerformanceIndicatorTrimester graph_t[6];
00021 static GraphPerformanceIndicatorMonth graph_m[6];
00022 static GraphPerformanceIndicatorYear graph_y[6];
00023
00024 #if(GAME_VERSION>=200)
00025 int graph_series_color[2] = { V_BLUE, V_ORANGE };
00026 #else
00027 int graph_series_color[2] = { V_BLUE, V_GREEN };
00028 #endif
00029
00030
00031 void Info::disp_6_graphs() {
00032 if(!disp_6_graphs_flag) {
00033 image_interface.put_back(MIN_MAX_X1,MIN_MAX_Y1,"MAX");
00034 return;
00035 }
00036 image_interface.put_back(MIN_MAX_X1,MIN_MAX_Y1,"MIN");
00037 user_interface.brighten(GRAPH1_X1,GRAPH1_Y1,GRAPH1_X2,GRAPH1_Y2);
00038 user_interface.rect(GRAPH1_X1,GRAPH1_Y1,GRAPH1_X2,GRAPH1_Y2,2);
00039 user_interface.bar(GRAPH1_X1+5,GRAPH1_Y1+10,GRAPH1_X1+10,GRAPH1_Y1+15,V_BLUE);
00040
00041 font_chartsm.put_paragraph(GRAPH1_X1+18,GRAPH1_Y1+5,GRAPH1_X1+150,GRAPH1_Y2,"Surplus or deficit");
00042
00043
00044 user_interface.brighten(GRAPH2_X1,GRAPH2_Y1,GRAPH2_X2,GRAPH2_Y2);
00045 user_interface.rect(GRAPH2_X1,GRAPH2_Y1,GRAPH2_X2,GRAPH2_Y2,2);
00046 user_interface.bar(GRAPH2_X1+5,GRAPH2_Y1+10,GRAPH2_X1+10,GRAPH2_Y1+15,V_BLUE);
00047
00048 font_chartsm.put_paragraph(GRAPH2_X1+18,GRAPH2_Y1+5,GRAPH2_X1+150,GRAPH2_Y2,"Projected reserves");
00049
00050
00051 user_interface.brighten(GRAPH3_X1,GRAPH3_Y1,GRAPH3_X2,GRAPH3_Y2);
00052 user_interface.rect(GRAPH3_X1,GRAPH3_Y1,GRAPH3_X2,GRAPH3_Y2,2);
00053
00054
00055
00056 user_interface.bar(GRAPH3_X1+5,GRAPH3_Y1+10,GRAPH3_X1+10,GRAPH3_Y1+15,V_ORANGE);
00057 font_chartsm.put_paragraph(GRAPH3_X1+18,GRAPH3_Y1+5,GRAPH3_X2,GRAPH3_Y2,"Net tuition");
00058
00059
00060
00061 user_interface.bar(GRAPH3_X1+5,GRAPH3_Y1+27,GRAPH3_X1+10,GRAPH3_Y1+32,V_BLUE);
00062 font_chartsm.put_paragraph(GRAPH3_X1+18,GRAPH3_Y1+23,GRAPH3_X2,GRAPH3_Y2+18,"Research");
00063
00064 user_interface.brighten(GRAPH4_X1,GRAPH4_Y1,GRAPH4_X2,GRAPH4_Y2);
00065 user_interface.rect(GRAPH4_X1,GRAPH4_Y1,GRAPH4_X2,GRAPH4_Y2,2);
00066 user_interface.bar(GRAPH4_X1+5,GRAPH4_Y1+10,GRAPH4_X1+10,GRAPH4_Y1+15, graph_series_color[0] );
00067 #if(GAME_VERSION>=200)
00068
00069 font_chartsm.put_paragraph(GRAPH4_X1+18,GRAPH4_Y1+5,GRAPH4_X1+120,GRAPH4_Y2+22,"Prestige");
00070
00071 user_interface.bar(GRAPH4_X1+5,GRAPH4_Y1+27,GRAPH4_X1+10,GRAPH4_Y1+32, graph_series_color[1] );
00072 font_chartsm.put_paragraph(GRAPH4_X1+18,GRAPH4_Y1+23,GRAPH4_X2-5,GRAPH4_Y1+40,"Selectivity");
00073 #else
00074 font_chartsm.put_paragraph(GRAPH4_X1+18,GRAPH4_Y1+5,GRAPH4_X1+120,GRAPH4_Y2,"Institutional prestige");
00075 #endif
00076
00077 user_interface.brighten(GRAPH5_X1,GRAPH5_Y1,GRAPH5_X2,GRAPH5_Y2);
00078 user_interface.rect(GRAPH5_X1,GRAPH5_Y1,GRAPH5_X2,GRAPH5_Y2,2);
00079 user_interface.bar(GRAPH5_X1+5,GRAPH5_Y1+10,GRAPH5_X1+10,GRAPH5_Y1+15,graph_series_color[0] );
00080 #if(GAME_VERSION>=200)
00081
00082 font_chartsm.put_paragraph(GRAPH5_X1+18,GRAPH5_Y1+5,GRAPH5_X1+120,GRAPH5_Y2,"Total students");
00083
00084 user_interface.bar(GRAPH5_X1+5,GRAPH5_Y1+27,GRAPH5_X1+10,GRAPH5_Y1+32,graph_series_color[1] );
00085 font_chartsm.put_paragraph(GRAPH5_X1+18,GRAPH5_Y1+23,GRAPH5_X2-5,GRAPH5_Y1+40,"Total faculty");
00086 #else
00087 font_chartsm.put_paragraph(GRAPH5_X1+18,GRAPH5_Y1+5,GRAPH5_X1+120,GRAPH5_Y2,"Undergraduate selectivity");
00088 #endif
00089
00090 user_interface.brighten(GRAPH6_X1,GRAPH6_Y1,GRAPH6_X2,GRAPH6_Y2);
00091 user_interface.rect(GRAPH6_X1,GRAPH6_Y1,GRAPH6_X2,GRAPH6_Y2,2);
00092
00093 user_interface.bar(GRAPH6_X1+5,GRAPH6_Y1+10,GRAPH6_X1+10,GRAPH6_Y1+15, graph_series_color[0] );
00094 font_chartsm.put_paragraph(GRAPH6_X1+18,GRAPH6_Y1+5,GRAPH6_X2-5,GRAPH6_Y1+22,"Faculty morale");
00095
00096 user_interface.bar(GRAPH6_X1+5,GRAPH6_Y1+27,GRAPH6_X1+10,GRAPH6_Y1+32, graph_series_color[1] );
00097 font_chartsm.put_paragraph(GRAPH6_X1+18,GRAPH6_Y1+23,GRAPH6_X2-5,GRAPH6_Y1+40,"Student morale");
00098
00099 static int data_num1=HISTORY_MONTH_COUNT;
00100 static int data_num2=HISTORY_YEAR_COUNT;
00101
00102 static float dataArray1[2*HISTORY_MONTH_COUNT];
00103
00104
00105
00106 for(int i=0;i<HISTORY_MONTH_COUNT;i++) {
00107 dataArray1[i]=(float)(finance.surplus_deficit_history[i]);
00108 }
00109 graph_m[0].init(GRAPH1_X1,GRAPH1_Y1+40,GRAPH1_X2,GRAPH1_Y2,
00110 1 ,&data_num1 ,dataArray1, 1, 0, 3);
00111 graph_m[0].refresh();
00112 graph_m[0].deinit();
00113
00114 if(dataArray1[HISTORY_MONTH_COUNT-1]<0)
00115 font_chart_red_sm.put_paragraph(GRAPH1_X1+18,GRAPH1_Y1+23,GRAPH1_X2,GRAPH1_Y1+40,m.format(dataArray1[HISTORY_MONTH_COUNT-1],2));
00116 else
00117 font_chartsm.put_paragraph(GRAPH1_X1+18,GRAPH1_Y1+23,GRAPH1_X2,GRAPH1_Y1+40,m.format(dataArray1[HISTORY_MONTH_COUNT-1],2));
00118
00119
00120
00121 for(i=0;i<HISTORY_MONTH_COUNT;i++) {
00122 dataArray1[i]=(float)(finance.operating_sub_surplus_history[i]);
00123 }
00124 graph_m[1].init(GRAPH2_X1,GRAPH2_Y1+40,GRAPH2_X2,GRAPH2_Y2,
00125 1 ,&data_num1 ,dataArray1, 1, 0, 3);
00126 graph_m[1].refresh();
00127 graph_m[1].deinit();
00128
00129 if(dataArray1[HISTORY_MONTH_COUNT-1]<0)
00130 font_chart_red_sm.put_paragraph(GRAPH2_X1+18,GRAPH2_Y1+23,GRAPH2_X2,GRAPH2_Y1+40,m.format(dataArray1[HISTORY_MONTH_COUNT-1],2));
00131 else
00132 font_chartsm.put_paragraph(GRAPH2_X1+18,GRAPH2_Y1+23,GRAPH2_X2,GRAPH2_Y1+40,m.format(dataArray1[HISTORY_MONTH_COUNT-1],2));
00133
00134
00135
00136
00137
00138 for(i=0;i<HISTORY_MONTH_COUNT;i++) {
00139 dataArray1[i+HISTORY_MONTH_COUNT]=(float)(finance.net_tuition_history[i]);
00140 dataArray1[i]=(float)(finance.sponsored_research_history[i]);
00141 }
00142
00143
00144
00145 graph_m[2].init(GRAPH3_X1,GRAPH3_Y1+40,GRAPH3_X2,GRAPH3_Y2,
00146 2 ,&data_num1 ,dataArray1, 1, 0, 3);
00147
00148 graph_m[2].refresh();
00149 graph_m[2].deinit();
00150
00151
00152
00153
00154
00155
00156
00157
00158
00159 font_chartsm.put_paragraph(GRAPH3_X1+85,GRAPH3_Y1+5,GRAPH3_X2,GRAPH3_Y1+22,m.format((int)dataArray1[2*HISTORY_MONTH_COUNT-1],2));
00160
00161 font_chartsm.put_paragraph(GRAPH3_X1+85,GRAPH3_Y1+23,GRAPH3_X2,GRAPH3_Y1+40,m.format((int)dataArray1[HISTORY_MONTH_COUNT-1],2));
00162
00163
00164
00165 for(i=0;i<HISTORY_MONTH_COUNT;i++) {
00166 dataArray1[i]=(float)(player_school.sub_score[S_PRESTIGE][i]);
00167 }
00168 graph_m[3].init(GRAPH4_X1,GRAPH4_Y1+40,GRAPH4_X2,GRAPH4_Y2,
00169 1 ,&data_num1 ,dataArray1, 1, 0, 3, graph_series_color );
00170 graph_m[3].refresh();
00171 graph_m[3].deinit();
00172 #if(GAME_VERSION>=200)
00173 if(dataArray1[HISTORY_MONTH_COUNT-1]<0)
00174 font_chart_red_sm.put_paragraph(GRAPH4_X1+110,GRAPH4_Y1+5,GRAPH4_X2-5,GRAPH4_Y1+22,m.format((int)dataArray1[HISTORY_MONTH_COUNT-1],3));
00175 else
00176 font_chartsm.put_paragraph(GRAPH4_X1+110,GRAPH4_Y1+5,GRAPH4_X2-5,GRAPH4_Y1+22,m.format((int)dataArray1[HISTORY_MONTH_COUNT-1],3));
00177 #else
00178 if(dataArray1[HISTORY_MONTH_COUNT-1]<0)
00179 font_chart_red_sm.put_paragraph(GRAPH4_X1+110,GRAPH4_Y1+23,GRAPH4_X2-5,GRAPH4_Y1+40,m.format((int)dataArray1[HISTORY_MONTH_COUNT-1],3));
00180 else
00181 font_chartsm.put_paragraph(GRAPH4_X1+110,GRAPH4_Y1+23,GRAPH4_X2-5,GRAPH4_Y1+40,m.format((int)dataArray1[HISTORY_MONTH_COUNT-1],3));
00182 #endif
00183
00184 #if(GAME_VERSION>=200)
00185
00186
00187
00188 for(i=0;i<HISTORY_YEAR_COUNT;i++) {
00189 dataArray1[i]=(float)(finance.sl1_sel_history[i]*100);
00190 }
00191 graph_y[3].init(GRAPH4_X1,GRAPH4_Y1+40,GRAPH4_X2,GRAPH4_Y2,
00192 1 ,&data_num2 ,dataArray1, 1, 0, 3, graph_series_color+1 );
00193 graph_y[3].refresh();
00194 graph_y[3].deinit();
00195 if(dataArray1[HISTORY_MONTH_COUNT-1]<0)
00196 font_chart_red_sm.put_paragraph(GRAPH4_X1+110,GRAPH4_Y1+23,GRAPH4_X2-5,GRAPH4_Y1+40,m.format((int)dataArray1[HISTORY_YEAR_COUNT-1],3));
00197 else
00198 font_chartsm.put_paragraph(GRAPH4_X1+110,GRAPH4_Y1+23,GRAPH4_X2-5,GRAPH4_Y1+40,m.format((int)dataArray1[HISTORY_YEAR_COUNT-1],3));
00199 #endif
00200
00201
00202 #if(GAME_VERSION>=200)
00203
00204 for(i=0;i<HISTORY_YEAR_COUNT;i++) {
00205 dataArray1[i] = department_array.student_level_history[MAX_STUDENT_LEVEL_TOTAL][i] / 10;
00206 dataArray1[i+HISTORY_YEAR_COUNT] = department_array.faculty_level_history[FACULTY_RANK_LEVEL_TOTAL][i];
00207 }
00208 graph_y[4].init(GRAPH5_X1,GRAPH5_Y1+40,GRAPH5_X2,GRAPH5_Y2,
00209 2 ,&data_num2 ,dataArray1, 1, 0, 3, graph_series_color );
00210 graph_y[4].refresh();
00211 graph_y[4].deinit();
00212 if ( (int)department_array.student_level_history[MAX_STUDENT_LEVEL_TOTAL][HISTORY_YEAR_COUNT-1] >= 10000 ) {
00213 font_chartsm.right_put(GRAPH5_X2-15,GRAPH5_Y1+5,
00214
00215 m.format((int)department_array.student_level_history[MAX_STUDENT_LEVEL_TOTAL][HISTORY_YEAR_COUNT-1],30));
00216 }
00217 else {
00218 font_chartsm.right_put(GRAPH5_X2-15,GRAPH5_Y1+5,
00219
00220 m.format((int)department_array.student_level_history[MAX_STUDENT_LEVEL_TOTAL][HISTORY_YEAR_COUNT-1],1));
00221 }
00222 font_chartsm.put_paragraph(GRAPH5_X1+110,GRAPH5_Y1+23,GRAPH5_X2-5,GRAPH5_Y1+40,m.format((int)dataArray1[2*HISTORY_YEAR_COUNT-1],1));
00223 #else
00224 for(i=0;i<HISTORY_YEAR_COUNT;i++) {
00225 dataArray1[i]=(float)(finance.sl1_sel_history[i]*100);
00226 }
00227 graph_y[4].init(GRAPH5_X1,GRAPH5_Y1+40,GRAPH5_X2,GRAPH5_Y2,
00228 1 ,&data_num2 ,dataArray1, 1, 0, 3, graph_series_color );
00229 graph_y[4].refresh();
00230 graph_y[4].deinit();
00231
00232
00233 if(dataArray1[HISTORY_YEAR_COUNT-1]<0)
00234
00235 font_chart_red_sm.put_paragraph(GRAPH5_X1+110,GRAPH5_Y1+23,GRAPH5_X2-5,GRAPH5_Y1+40,m.format((int)dataArray1[HISTORY_YEAR_COUNT-1],3));
00236 else
00237 font_chartsm.put_paragraph(GRAPH5_X1+110,GRAPH5_Y1+23,GRAPH5_X2-5,GRAPH5_Y1+40,m.format((int)dataArray1[HISTORY_YEAR_COUNT-1],3));
00238 #endif
00239
00240
00241 for(i=0;i<HISTORY_MONTH_COUNT;i++) {
00242 dataArray1[i] = player_school.sub_score[S_FACULTY_MORALE][i];
00243 dataArray1[i+HISTORY_MONTH_COUNT] = player_school.sub_score[S_STUDENT_MORALE][i];
00244
00245
00246 }
00247 graph_m[5].init(GRAPH6_X1,GRAPH6_Y1+40,GRAPH6_X2,GRAPH6_Y2,
00248 2 ,&data_num1 ,dataArray1, 1, 0, 3, graph_series_color );
00249 graph_m[5].refresh();
00250 graph_m[5].deinit();
00251 font_chartsm.put_paragraph(GRAPH6_X1+110,GRAPH6_Y1+5,GRAPH6_X2-5,GRAPH6_Y1+22,m.format((int)dataArray1[HISTORY_MONTH_COUNT-1],3));
00252 font_chartsm.put_paragraph(GRAPH6_X1+110,GRAPH6_Y1+23,GRAPH6_X2-5,GRAPH6_Y1+40,m.format((int)dataArray1[2*HISTORY_MONTH_COUNT-1],3));
00253 }
00254
00255