src/news_gui.cpp
branchcpp_gui
changeset 6285 187e3ef04cc9
parent 6263 19dab6a68886
child 6298 c30fe89622df
equal deleted inserted replaced
6284:45d0233e7d79 6285:187e3ef04cc9
    51  * (Users can force messages through history or "last message") */
    51  * (Users can force messages through history or "last message") */
    52 static NewsID _forced_news = INVALID_NEWS;
    52 static NewsID _forced_news = INVALID_NEWS;
    53 
    53 
    54 static byte _total_news = 0; // total news count
    54 static byte _total_news = 0; // total news count
    55 
    55 
    56 void DrawNewsNewTrainAvail(BaseWindow *w);
    56 void DrawNewsNewVehicleAvail(BaseWindow *w);
    57 void DrawNewsNewRoadVehAvail(BaseWindow *w);
       
    58 void DrawNewsNewShipAvail(BaseWindow *w);
       
    59 void DrawNewsNewAircraftAvail(BaseWindow *w);
       
    60 void DrawNewsBankrupcy(BaseWindow *w);
    57 void DrawNewsBankrupcy(BaseWindow *w);
    61 static void MoveToNextItem(void);
    58 static void MoveToNextItem(void);
    62 
    59 
    63 StringID GetNewsStringNewTrainAvail(const NewsItem *ni);
    60 StringID GetNewsStringNewVehicleAvail(const NewsItem *ni);
    64 StringID GetNewsStringNewRoadVehAvail(const NewsItem *ni);
       
    65 StringID GetNewsStringNewShipAvail(const NewsItem *ni);
       
    66 StringID GetNewsStringNewAircraftAvail(const NewsItem *ni);
       
    67 StringID GetNewsStringBankrupcy(const NewsItem *ni);
    61 StringID GetNewsStringBankrupcy(const NewsItem *ni);
    68 
    62 
    69 static DrawNewsCallbackProc * const _draw_news_callback[] = {
    63 static DrawNewsCallbackProc * const _draw_news_callback[] = {
    70 	DrawNewsNewTrainAvail,    /* DNC_TRAINAVAIL */
    64 	DrawNewsNewVehicleAvail,  /* DNC_VEHICLEAVAIL */
    71 	DrawNewsNewRoadVehAvail,  /* DNC_ROADAVAIL */
       
    72 	DrawNewsNewShipAvail,     /* DNC_SHIPAVAIL */
       
    73 	DrawNewsNewAircraftAvail, /* DNC_AIRCRAFTAVAIL */
       
    74 	DrawNewsBankrupcy,        /* DNC_BANKRUPCY */
    65 	DrawNewsBankrupcy,        /* DNC_BANKRUPCY */
    75 };
    66 };
    76 
    67 
    77 extern GetNewsStringCallbackProc * const _get_news_string_callback[];
    68 extern GetNewsStringCallbackProc * const _get_news_string_callback[];
    78 GetNewsStringCallbackProc * const _get_news_string_callback[] = {
    69 GetNewsStringCallbackProc * const _get_news_string_callback[] = {
    79 	GetNewsStringNewTrainAvail,    /* DNC_TRAINAVAIL */
    70 	GetNewsStringNewVehicleAvail,  /* DNC_VEHICLEAVAIL */
    80 	GetNewsStringNewRoadVehAvail,  /* DNC_ROADAVAIL */
       
    81 	GetNewsStringNewShipAvail,     /* DNC_SHIPAVAIL */
       
    82 	GetNewsStringNewAircraftAvail, /* DNC_AIRCRAFTAVAIL */
       
    83 	GetNewsStringBankrupcy,        /* DNC_BANKRUPCY */
    71 	GetNewsStringBankrupcy,        /* DNC_BANKRUPCY */
    84 };
    72 };
    85 
    73 
    86 void InitNewsItemStructs(void)
    74 void InitNewsItemStructs(void)
    87 {
    75 {
   133 				DrawStringRightAligned(428, 1, STR_01FF, 0);
   121 				DrawStringRightAligned(428, 1, STR_01FF, 0);
   134 
   122 
   135 				if (!(ni->flags & NF_VIEWPORT)) {
   123 				if (!(ni->flags & NF_VIEWPORT)) {
   136 					COPY_IN_DPARAM(0, ni->params, lengthof(ni->params));
   124 					COPY_IN_DPARAM(0, ni->params, lengthof(ni->params));
   137 					DrawStringMultiCenter(215, ni->display_mode == NM_NORMAL ? 76 : 56,
   125 					DrawStringMultiCenter(215, ni->display_mode == NM_NORMAL ? 76 : 56,
   138 						ni->string_id, 426);
   126 						ni->string_id, w->Width() - 4);
   139 				} else {
   127 				} else {
   140 					byte bk = _display_opt;
   128 					byte bk = _display_opt;
   141 					_display_opt &= ~DO_TRANS_BUILDINGS;
   129 					_display_opt &= ~DO_TRANS_BUILDINGS;
   142 					w->DrawViewport();
   130 					w->DrawViewport();
   143 					_display_opt = bk;
   131 					_display_opt = bk;
   148 						vp->left - w->Left() + vp->width - 1, vp->top - w->Top() + vp->height - 1,
   136 						vp->left - w->Left() + vp->width - 1, vp->top - w->Top() + vp->height - 1,
   149 						(ni->flags & NF_INCOLOR ? PALETTE_TO_TRANSPARENT : PALETTE_TO_STRUCT_GREY) | (1 << USE_COLORTABLE)
   137 						(ni->flags & NF_INCOLOR ? PALETTE_TO_TRANSPARENT : PALETTE_TO_STRUCT_GREY) | (1 << USE_COLORTABLE)
   150 					);
   138 					);
   151 
   139 
   152 					COPY_IN_DPARAM(0, ni->params, lengthof(ni->params));
   140 					COPY_IN_DPARAM(0, ni->params, lengthof(ni->params));
   153 					DrawStringMultiCenter(w->Width() / 2, 20, ni->string_id, 428);
   141 					DrawStringMultiCenter(w->Width() / 2, 20, ni->string_id, w->Width() - 4);
   154 				}
   142 				}
   155 				break;
   143 				break;
   156 			}
   144 			}
   157 
   145 
   158 			case NM_CALLBACK: {
   146 			case NM_CALLBACK: {
   166 					COPY_IN_DPARAM(0, ni->params, lengthof(ni->params));
   154 					COPY_IN_DPARAM(0, ni->params, lengthof(ni->params));
   167 					DrawStringMultiCenter(140, 38, ni->string_id, 276);
   155 					DrawStringMultiCenter(140, 38, ni->string_id, 276);
   168 				} else {
   156 				} else {
   169 					w->DrawViewport();
   157 					w->DrawViewport();
   170 					COPY_IN_DPARAM(0, ni->params, lengthof(ni->params));
   158 					COPY_IN_DPARAM(0, ni->params, lengthof(ni->params));
   171 					DrawStringMultiCenter(w->Width() / 2, w->Height() - 16, ni->string_id, 276);
   159 					DrawStringMultiCenter(w->Width() / 2, w->Height() - 16, ni->string_id, w->Width() - 4);
   172 				}
   160 				}
   173 				break;
   161 				break;
   174 			}
   162 			}
   175 		}
   163 		}
   176 	} break;
   164 	} break;