road_gui.c
changeset 2639 eeaefdabfdfd
parent 2635 7ed07303448d
child 2725 775e3e14ca46
equal deleted inserted replaced
2638:0811adaec525 2639:eeaefdabfdfd
   169 static void BuildRoadClick_Landscaping(Window *w)
   169 static void BuildRoadClick_Landscaping(Window *w)
   170 {
   170 {
   171 	ShowTerraformToolbar();
   171 	ShowTerraformToolbar();
   172 }
   172 }
   173 
   173 
   174 static OnButtonClick * const _build_road_button_proc[] = {
   174 static OnButtonClick* const _build_road_button_proc[] = {
   175 	BuildRoadClick_NE,
   175 	BuildRoadClick_NE,
   176 	BuildRoadClick_NW,
   176 	BuildRoadClick_NW,
   177 	BuildRoadClick_Demolish,
   177 	BuildRoadClick_Demolish,
   178 	BuildRoadClick_Depot,
   178 	BuildRoadClick_Depot,
   179 	BuildRoadClick_BusStation,
   179 	BuildRoadClick_BusStation,
   182 	BuildRoadClick_Tunnel,
   182 	BuildRoadClick_Tunnel,
   183 	BuildRoadClick_Remove,
   183 	BuildRoadClick_Remove,
   184 	BuildRoadClick_Landscaping,
   184 	BuildRoadClick_Landscaping,
   185 };
   185 };
   186 
   186 
   187 static void BuildRoadToolbWndProc(Window *w, WindowEvent *e) {
   187 static void BuildRoadToolbWndProc(Window* w, WindowEvent* e)
   188 	switch(e->event) {
   188 {
       
   189 	switch (e->event) {
   189 	case WE_PAINT:
   190 	case WE_PAINT:
   190 		w->disabled_state &= ~(1 << 11);
   191 		w->disabled_state &= ~(1 << 11);
   191 		if (!(w->click_state & ((1<<3)|(1<<4)))) {
   192 		if (!(w->click_state & ((1<<3)|(1<<4)))) {
   192 			w->disabled_state |= (1 << 11);
   193 			w->disabled_state |= (1 << 11);
   193 			w->click_state &= ~(1<<11);
   194 			w->click_state &= ~(1<<11);
   194 		}
   195 		}
   195 		DrawWindowWidgets(w);
   196 		DrawWindowWidgets(w);
   196 		break;
   197 		break;
   197 
   198 
   198 	case WE_CLICK: {
   199 	case WE_CLICK: {
   199 		if (e->click.widget >= 3)
   200 		if (e->click.widget >= 3) _build_road_button_proc[e->click.widget - 3](w);
   200 			_build_road_button_proc[e->click.widget - 3](w);
       
   201 	}	break;
   201 	}	break;
   202 
   202 
   203 	case WE_KEYPRESS:
   203 	case WE_KEYPRESS:
   204 		switch (e->keypress.keycode) {
   204 		switch (e->keypress.keycode) {
   205 			case '1': BuildRoadClick_NE(w);           break;
   205 			case '1': BuildRoadClick_NE(w);           break;
   226 	case WE_ABORT_PLACE_OBJ:
   226 	case WE_ABORT_PLACE_OBJ:
   227 		UnclickWindowButtons(w);
   227 		UnclickWindowButtons(w);
   228 		SetWindowDirty(w);
   228 		SetWindowDirty(w);
   229 
   229 
   230 		w = FindWindowById(WC_BUS_STATION, 0);
   230 		w = FindWindowById(WC_BUS_STATION, 0);
   231 		if (w != NULL) WP(w,def_d).close=true;
   231 		if (w != NULL) WP(w,def_d).close = true;
   232 		w = FindWindowById(WC_TRUCK_STATION, 0);
   232 		w = FindWindowById(WC_TRUCK_STATION, 0);
   233 		if (w != NULL) WP(w,def_d).close=true;
   233 		if (w != NULL) WP(w,def_d).close = true;
   234 		w = FindWindowById(WC_BUILD_DEPOT, 0);
   234 		w = FindWindowById(WC_BUILD_DEPOT, 0);
   235 		if (w != NULL) WP(w,def_d).close=true;
   235 		if (w != NULL) WP(w,def_d).close = true;
   236 		break;
   236 		break;
   237 
   237 
   238 	case WE_PLACE_DRAG: {
   238 	case WE_PLACE_DRAG: {
   239 		int sel_method;
   239 		int sel_method;
   240 		if (e->place.userdata == 1) {
   240 		if (e->place.userdata == 1) {
   349 void ShowBuildRoadScenToolbar(void)
   349 void ShowBuildRoadScenToolbar(void)
   350 {
   350 {
   351 	AllocateWindowDescFront(&_build_road_scen_desc, 0);
   351 	AllocateWindowDescFront(&_build_road_scen_desc, 0);
   352 }
   352 }
   353 
   353 
   354 static void BuildRoadDepotWndProc(Window *w, WindowEvent *e) {
   354 static void BuildRoadDepotWndProc(Window* w, WindowEvent* e)
   355 	switch(e->event) {
   355 {
       
   356 	switch (e->event) {
   356 	case WE_PAINT:
   357 	case WE_PAINT:
   357 		w->click_state = (1<<3) << _road_depot_orientation;
   358 		w->click_state = (1<<3) << _road_depot_orientation;
   358 		DrawWindowWidgets(w);
   359 		DrawWindowWidgets(w);
   359 
   360 
   360 		DrawRoadDepotSprite(70, 17, 0);
   361 		DrawRoadDepotSprite(70, 17, 0);
   361 		DrawRoadDepotSprite(70, 69, 1);
   362 		DrawRoadDepotSprite(70, 69, 1);
   362 		DrawRoadDepotSprite(2, 69, 2);
   363 		DrawRoadDepotSprite( 2, 69, 2);
   363 		DrawRoadDepotSprite(2, 17, 3);
   364 		DrawRoadDepotSprite( 2, 17, 3);
   364 		break;
   365 		break;
   365 
   366 
   366 	case WE_CLICK: {
   367 	case WE_CLICK: {
   367 		switch (e->click.widget) {
   368 		switch (e->click.widget) {
   368 		case 3: case 4: case 5: case 6:
   369 		case 3: case 4: case 5: case 6:
   372 			break;
   373 			break;
   373 		}
   374 		}
   374 	}	break;
   375 	}	break;
   375 
   376 
   376 	case WE_MOUSELOOP:
   377 	case WE_MOUSELOOP:
   377 		if (WP(w,def_d).close)
   378 		if (WP(w,def_d).close) DeleteWindow(w);
   378 			DeleteWindow(w);
       
   379 		break;
   379 		break;
   380 
   380 
   381 	case WE_DESTROY:
   381 	case WE_DESTROY:
   382 		if (!WP(w,def_d).close)
   382 		if (!WP(w,def_d).close) ResetObjectToPlace();
   383 			ResetObjectToPlace();
       
   384 		break;
   383 		break;
   385 	}
   384 	}
   386 }
   385 }
   387 
   386 
   388 static const Widget _build_road_depot_widgets[] = {
   387 static const Widget _build_road_depot_widgets[] = {
   464 
   463 
   465 		CheckRedrawStationCoverage(w);
   464 		CheckRedrawStationCoverage(w);
   466 	} break;
   465 	} break;
   467 
   466 
   468 	case WE_DESTROY:
   467 	case WE_DESTROY:
   469 		if (!WP(w,def_d).close)
   468 		if (!WP(w,def_d).close) ResetObjectToPlace();
   470 			ResetObjectToPlace();
       
   471 		break;
   469 		break;
   472 	}
   470 	}
   473 }
   471 }
   474 
   472 
   475 static const Widget _bus_station_picker_widgets[] = {
   473 static const Widget _bus_station_picker_widgets[] = {