smallmap_gui.c
changeset 2989 99c95a3ebcaa
parent 2984 225bffc79071
child 3144 426b825578f9
equal deleted inserted replaced
2988:032feb8d9d8a 2989:99c95a3ebcaa
   345 	TileType t = GetTileType(tile);
   345 	TileType t = GetTileType(tile);
   346 
   346 
   347 	if (t == MP_TUNNELBRIDGE) {
   347 	if (t == MP_TUNNELBRIDGE) {
   348 		t = _m[tile].m5;
   348 		t = _m[tile].m5;
   349 		if ((t & 0x80) == 0) t >>= 1;
   349 		if ((t & 0x80) == 0) t >>= 1;
   350 		if ((t & 6) == 0) {
   350 		switch (t & 0x06) {
   351 			t = MP_RAILWAY;
   351 			case 0x00: t = MP_RAILWAY; break;
   352 		} else if ((t & 6) == 2) {
   352 			case 0x02: t = MP_STREET;  break;
   353 			t = MP_STREET;
   353 			default:   t = MP_WATER;   break;
   354 		} else {
       
   355 			t = MP_WATER;
       
   356 		}
   354 		}
   357 	}
   355 	}
   358 	return t;
   356 	return t;
   359 }
   357 }
   360 
   358 
   640 	ptr = dpi->dst_ptr - dx - 4;
   638 	ptr = dpi->dst_ptr - dx - 4;
   641 	x = - dx - 4;
   639 	x = - dx - 4;
   642 	y = 0;
   640 	y = 0;
   643 
   641 
   644 	for (;;) {
   642 	for (;;) {
   645 		uint32 mask;
   643 		uint32 mask = 0xFFFFFFFF;
   646 		int reps;
   644 		int reps;
   647 		int t;
   645 		int t;
   648 
       
   649 		mask = 0xFFFFFFFF;
       
   650 
   646 
   651 		/* distance from left edge */
   647 		/* distance from left edge */
   652 		if (x < 0) {
   648 		if (x < 0) {
   653 			if (x < -3) goto skip_column;
   649 			if (x < -3) goto skip_column;
   654 			/* mask to use at the left edge */
   650 			/* mask to use at the left edge */
   893 	Window *w;
   889 	Window *w;
   894 	ViewPort *vp;
   890 	ViewPort *vp;
   895 	int x,y;
   891 	int x,y;
   896 
   892 
   897 	w = AllocateWindowDescFront(&_smallmap_desc, 0);
   893 	w = AllocateWindowDescFront(&_smallmap_desc, 0);
   898 	if (w) {
   894 	if (w != NULL) {
   899 		w->click_state = ((1<<5) << _smallmap_type) | (_smallmap_show_towns << 12);
   895 		w->click_state = ((1<<5) << _smallmap_type) | (_smallmap_show_towns << 12);
   900 		w->resize.width = 350;
   896 		w->resize.width = 350;
   901 		w->resize.height = 250;
   897 		w->resize.height = 250;
   902 
   898 
   903 		vp = FindWindowById(WC_MAIN_WINDOW, 0)->viewport;
   899 		vp = FindWindowById(WC_MAIN_WINDOW, 0)->viewport;
   991 {
   987 {
   992 	Window *w, *v;
   988 	Window *w, *v;
   993 	int i = 0;
   989 	int i = 0;
   994 
   990 
   995 	// find next free window number for extra viewport
   991 	// find next free window number for extra viewport
   996 	while (FindWindowById(WC_EXTRA_VIEW_PORT, i) ) {
   992 	while (FindWindowById(WC_EXTRA_VIEW_PORT, i) != NULL) i++;
   997 		i++;
       
   998 	}
       
   999 
   993 
  1000 	w = AllocateWindowDescFront(&_extra_view_port_desc, i);
   994 	w = AllocateWindowDescFront(&_extra_view_port_desc, i);
  1001 	if (w) {
   995 	if (w != NULL) {
  1002 		int x, y;
   996 		int x, y;
  1003 		// the main window with the main view
   997 		// the main window with the main view
  1004 		v = FindWindowById(WC_MAIN_WINDOW, 0);
   998 		v = FindWindowById(WC_MAIN_WINDOW, 0);
  1005 		// New viewport start ats (zero,zero)
   999 		// New viewport start ats (zero,zero)
  1006 		AssignWindowViewport(w, 3, 17, 294, 214, 0 , 0);
  1000 		AssignWindowViewport(w, 3, 17, 294, 214, 0 , 0);