void ChangeZoningLegend(EvaluationMode ev, StringID *strings) { memset(strings, INVALID_STRING_ID, sizeof(strings)); switch(ev) { /* Snip */ case CHECKACCEPTGOODS: //This is the only case where the act is different case CHECKPRODUCEGOODS://between outer and inner. for(CargoID i = 0; ((i < NUM_CARGO) || (i < ZONING_COLOURS)); i++) strings[(int)i] = GetCargo(i)->name; break; default: break; } } static void ZoningToolbWndProc(Window *w, WindowEvent *e) { /* Snip */ char buffer[512]; if(!_outer_legends[0]) memset(_outer_legends, INVALID_STRING_ID, sizeof(_outer_legends)); if(!_inner_legends[0]) memset(_inner_legends, INVALID_STRING_ID, sizeof(_inner_legends)); switch(e->event) { case WE_PAINT: /* Snip */ //Legends: for(int i = 0, y = 4; i