Project

General

Profile

Feature #1211 ยป 0003-Drop-3D-stuff.patch

Marko Lindqvist, 01/11/2025 09:16 AM

View differences:

client/Makefile.am
$(top_builddir)/common/libfreeciv.la \
$(INTLLIBS) $(CLIENT_LIBS) $(CLIENTICON) \
$(TINYCTHR_LIBS) $(MAPIMG_WAND_LIBS) \
$(gui_3d_libs) \
$(gui_gtk3_22_libs)
endif
......
$(top_builddir)/common/libfreeciv.la \
$(INTLLIBS) $(CLIENT_LIBS) $(CLIENTICON) \
$(TINYCTHR_LIBS) $(MAPIMG_WAND_LIBS) \
$(gui_3d_libs) \
$(gui_gtk4_libs)
endif
......
$(top_builddir)/common/libfreeciv.la \
$(INTLLIBS) $(CLIENT_LIBS) $(CLIENTICON) \
$(TINYCTHR_LIBS) $(MAPIMG_WAND_LIBS) \
$(gui_3d_libs) \
$(gui_gtk5_libs)
endif
client/gui-gtk-3.22/gui_main.c
gui_properties.animations = FALSE;
gui_properties.views.isometric = TRUE;
gui_properties.views.overhead = TRUE;
#ifdef GTK3_3D_ENABLED
gui_properties.views.d3 = TRUE;
#else /* GTK3_3D_ENABLED */
gui_properties.views.d3 = FALSE;
#endif /* GTK3_3D_ENABLED */
}
client/gui-gtk-4.0/gui_main.c
gui_properties.animations = TRUE;
gui_properties.views.isometric = TRUE;
gui_properties.views.overhead = TRUE;
#ifdef GTK3_3D_ENABLED
gui_properties.views.d3 = TRUE;
#else /* GTK3_3D_ENABLED */
gui_properties.views.d3 = FALSE;
#endif /* GTK3_3D_ENABLED */
}
client/gui-gtk-5.0/gui_main.c
gui_properties.animations = TRUE;
gui_properties.views.isometric = TRUE;
gui_properties.views.overhead = TRUE;
#ifdef GTK3_3D_ENABLED
gui_properties.views.d3 = TRUE;
#else /* GTK3_3D_ENABLED */
gui_properties.views.d3 = FALSE;
#endif /* GTK3_3D_ENABLED */
}
client/gui-qt/gui_main.cpp
gui_properties.animations = FALSE;
gui_properties.views.isometric = TRUE;
gui_properties.views.overhead = TRUE;
gui_properties.views.d3 = FALSE;
}
client/gui-sdl2/gui_main.c
gui_properties.animations = FALSE;
gui_properties.views.isometric = TRUE;
gui_properties.views.overhead = TRUE;
gui_properties.views.d3 = FALSE;
}
client/gui-sdl3/gui_main.c
gui_properties.animations = FALSE;
gui_properties.views.isometric = TRUE;
gui_properties.views.overhead = TRUE;
gui_properties.views.d3 = FALSE;
}
client/gui_properties.h
struct {
bool isometric;
bool overhead;
bool d3;
} views;
};
client/tilespec.c
case TS_OVERHEAD:
vsup = gui_properties.views.overhead;
break;
case TS_3D:
vsup = gui_properties.views.d3;
break;
}
if (!vsup) {
client/tilespec.h
#define SPECENUM_VALUE0NAME N_("Overhead")
#define SPECENUM_VALUE1 TS_ISOMETRIC
#define SPECENUM_VALUE1NAME N_("Isometric")
#define SPECENUM_VALUE2 TS_3D
#define SPECENUM_VALUE2NAME N_("3D")
#include "specenum_gen.h"
#define SPECENUM_NAME fog_style
configure.ac
fi
done
AC_ARG_WITH([3d],
[AS_HELP_STRING([--with-3d], [build WIP 3D support to gtk3.22-client])],
[AC_DEFINE([GTK3_3D_ENABLED], [1], [3D support built to gtk3.22-client])
enable_3d=true])
gui_3d_libs=""
if test x$enable_3d = xtrue ; then
AC_CHECK_LIB([GL], [glBegin], [gui_3d_libs="-lGL"],
[AC_MSG_ERROR([libGL needed for 3D support not found])])
fi
AC_ARG_ENABLE([gitrev],
AS_HELP_STRING([--enable-gitrev], [get git revision to version information]),
[case "${enableval}" in
......
AM_CONDITIONAL([SRV_LIB],
[test "x$server" = "xyes" || test "x$fcmanual" = "xyes" || test "x$ruledit" = "xyes" || test "x$fcruleup" = "xyes"])
AC_SUBST([gui_3d_libs])
AC_SUBST([gui_gtk3_22_cflags])
AC_SUBST([gui_gtk3_22_libs])
AC_SUBST([gui_gtk3_22_ldflags])
data/3d.tilespec
[tilespec]
; Format and options of this tilespec file:
options = "+Freeciv-tilespec-3.3-Devel-2024-Nov-16"
; A simple name for the tileset specified by this file:
name = "Trident"
priority = 5
; There`s no separate versioning in tilesets part of main freeciv distribution
;version = ""
; Summary and full description of the tileset.
summary = _("Basic small overhead tileset.")
;description = ""
; TODO: add more overall information fields on tiles,
; eg, authors, colors, etc.
; What is the primary ruleset this tileset is meant for.
;for_ruleset = ""
; Basic tile sizes:
normal_tile_width = 30
normal_tile_height = 30
small_tile_width = 15
small_tile_height = 20
; The height svg flags should be drawn to, if they are used
svg_height = 44
; Basic tile style.
type = "3D"
is_hex = FALSE
; Was old iso style
fog_style = "Darkness"
; Was darkness style "CardinalFull" (15 sprites)
darkness_style = "Corner"
; offset the flags by this amount when drawing units
unit_flag_offset_x = 0
unit_flag_offset_y = 0
city_flag_offset_x = 0
city_flag_offset_y = 0
; offset the city occupied sprite by this amount
occupied_offset_x = 0
occupied_offset_y = 0
; offset the units by this amount
unit_offset_x = 0
unit_offset_y = 0
; offset of the normal activity icons
activity_offset_x = 0
activity_offset_y = 0
; offset of the selected unit sprites
select_offset_x = 0
select_offset_y = 0
; offset of the unit stack size number sprites
stack_size_offset_x = 0
stack_size_offset_y = 0
; offset the cities by this amount
city_offset_x = 0
city_offset_y = 0
; offset the city size number by this amount
; This is relative to full sprite origin.
city_size_offset_x = 0
city_size_offset_y = 0
; offset the city bar text by this amount (from the city tile origin)
citybar_offset_y = 27
; offset the tile label text by this amount
tilelabel_offset_y = 10
; offset the upkeep icons by this amount from the top of the unit itself.
; The default is the normal tile height, which means that the upkeep icons
; appear below the unit icon if the unit icons are equal to tile height
; (typical in overhead tileset), or overlay lower part of the unit icon,
; if unit icon is higher than tiles (typical in iso tilesets)
;unit_upkeep_offset_y = 0
; Like unit_upkeep_offset_y, but to be used in case there`s only small
; space for the overall icon produced. Defaults to unit_upkeep_offset_y -
; not having alternative layout.
; Set it to overlay lower part of the unit icon instead of taking extra
; space below.
unit_upkeep_small_offset_y = 20
; For tilesets with oriented units, the directional sprite to use to
; represent a unit type rather than a specific unit from the map
; (e.g., in worklists, editor, and online help). Does not have to be a
; valid direction for the tileset.
;unit_default_orientation = "s"
; How long (number of refreshes) it takes to move from an animation
; frame to the next.
time_per_frame = 3
; The map is rendered in "layers", just like any decent image editor
; supports. The setting below allows to change the layer drawing order. The
; first layer in the list will be drawn below the others; the second on top
; of it, and so on. No layer can be omitted from the list, nor can new ones
; be added.
;layer_order =
; "Background", ; Background color (if enabled, the player color where there
; ; are units or cities). You probably want to leave this
; ; first.
; "Terrain1", ; The three terrain layers. See sections [layerN] below.
; "Darkness", ; Darkness (unseen tiles)
; "Terrain2",
; "Terrain3",
; "Water", ; All extras with "River" style.
; "Roads", ; All extras with style "RoadAllSeparate",
; ; "RoadParityCombined" or "RoadAllCombined".
; "Special1", ; 1st layer for extras with style "3Layers", "Single2" or
; ; "Single1".
; "Grid1", ; Grid layer for isometric tilesets.
; "City1", ; City and walls.
; "Special2", ; 2nd layer for extras with "3Layers" and "Single2" styles.
; "Fog", ; Fog of war (on tiles one knows but doesn`t see).
; "Unit", ; Units except the selected one(s).
; "Special3", ; 3rd layer for extras with "3Layers" style, and base flags.
; "City2", ; City size when the city bar is disabled.
; "Grid2", ; Second grid layer (overhead tilesets only).
; "Overlays", ; Tile output sprites.
; "TileLabel", ; Tile labels ("Scorched spot").
; "CityBar", ; The city bar with name, production, food, ...
; "FocusUnit", ; The focused unit(s).
; "Goto", ; Goto turn count and intermediate points, *not* goto lines.
; "WorkerTask", ; The unit task indicators ("G", "S", ...).
; "Editor", ; Editor stuff (selected tile and start points).
; "InfraWork" ; Icons for the extras being placed.
; This is special because it gets freed and reloaded as required:
main_intro_file = "misc/intro"
; Below, the graphics spec files; must be somewhere (anywhere) in
; the data path. Order may be important for color allocation on
; low-color systems, and if there are any duplicate tags (lattermost
; tag is used).
files =
"misc/overlays.spec",
"misc/citybar.spec",
"trident/tiles.spec",
"trident/earth.spec",
"misc/small.spec",
"misc/events.spec",
"misc/governments.spec",
"misc/specialists.spec",
"trident/units.spec",
"trident/select.spec",
"misc/flags.spec",
"misc/shields.spec",
"misc/cursors.spec",
"trident/grid.spec",
"trident/roads.spec",
"misc/buildings.spec",
"misc/space.spec",
"misc/techs.spec",
"misc/treaty.spec",
"misc/icons.spec",
"misc/editor.spec",
"trident/fog.spec",
"trident/cities.spec",
"trident/explosions.spec"
; Include color definitions
*include "misc/colors.tilespec"
; Terrain info - see README.graphics
[layer0]
match_types = "desert", "forest", "grassland", "hills", "jungle", "mountains", "water", "plains", "swamp", "tundra"
[layer1]
match_types = "water", "land"
[layer2]
match_types = "water", "arctic"
; Water graphics referenced by terrain.ruleset
;
[tile_coast]
tag = "coast"
blend_layer = 0
num_layers = 3
layer0_match_type = "water"
layer0_match_with = "water"
layer0_sprite_type = "corner"
layer1_match_type = "water"
layer1_match_with = "water"
layer2_match_type = "water"
layer2_match_with = "water"
[tile_floor]
tag = "floor"
blend_layer = 0
num_layers = 3
layer0_match_type = "water"
layer0_match_with = "water"
layer0_sprite_type = "corner"
layer1_match_type = "water"
layer1_match_with = "water"
layer2_match_type = "water"
layer2_match_with = "water"
[tile_lake]
tag = "lake"
blend_layer = 0
num_layers = 3
layer0_match_type = "water"
layer0_match_with = "water"
layer0_sprite_type = "corner"
layer1_match_type = "water"
layer1_match_with = "water"
layer2_match_type = "water"
layer2_match_with = "water"
[tile_inaccessible]
tag = "inaccessible"
blend_layer = 0
num_layers = 3
layer0_match_type = "water"
layer0_match_with = "water"
layer0_sprite_type = "corner"
layer1_match_type = "water"
layer1_match_with = "water"
layer2_match_type = "water"
layer2_match_with = "water"
; Land graphics referenced by terrain.ruleset
;
[tile_arctic]
tag = "arctic"
blend_layer = 0
num_layers = 3
layer0_match_type = "tundra"
layer0_match_with = "tundra"
layer1_match_type = "water"
layer1_match_with = "water"
layer2_match_type = "arctic"
[tile_desert]
tag = "desert"
blend_layer = 0
num_layers = 3
layer0_match_type = "desert"
layer0_match_with = "desert"
layer1_match_type = "land"
layer2_match_type = "water"
[tile_forest]
tag = "forest"
blend_layer = 0
num_layers = 3
layer0_match_type = "forest"
layer0_match_with = "forest"
layer1_match_type = "land"
layer2_match_type = "water"
[tile_grassland]
tag = "grassland"
blend_layer = 0
num_layers = 3
layer0_match_type = "grassland"
layer1_match_type = "land"
layer2_match_type = "water"
[tile_hills]
tag = "hills"
blend_layer = 0
num_layers = 3
layer0_match_type = "hills"
layer0_match_with = "hills"
layer1_match_type = "land"
layer2_match_type = "water"
[tile_jungle]
tag = "jungle"
blend_layer = 0
num_layers = 3
layer0_match_type = "jungle"
layer0_match_with = "jungle"
layer1_match_type = "land"
layer2_match_type = "water"
[tile_mountains]
tag = "mountains"
blend_layer = 0
num_layers = 3
layer0_match_type = "mountains"
layer0_match_with = "mountains"
layer1_match_type = "land"
layer2_match_type = "water"
[tile_plains]
tag = "plains"
blend_layer = 0
num_layers = 3
layer0_match_type = "plains"
layer0_match_with = "plains"
layer1_match_type = "land"
layer2_match_type = "water"
[tile_swamp]
tag = "swamp"
blend_layer = 0
num_layers = 3
layer0_match_type = "swamp"
layer0_match_with = "swamp"
layer1_match_type = "land"
layer2_match_type = "water"
[tile_tundra]
tag = "tundra"
blend_layer = 0
num_layers = 3
layer0_match_type = "tundra"
layer0_match_with = "tundra"
layer1_match_type = "land"
layer2_match_type = "water"
[extras]
styles =
{ "name", "style"
"road.road", "RoadParityCombined"
"road.rail", "RoadParityCombined"
"road.maglev", "RoadParityCombined"
"road.river", "River"
"tx.irrigation", "Cardinals"
"tx.farmland", "Cardinals"
"tx.mine", "Single1"
"tx.oil_mine", "Single1"
"tx.oil_rig", "Single1"
"tx.pollution", "Single2"
"tx.fallout", "Single2"
"tx.village", "Single1"
"base.outpost", "3Layer"
"base.fortress", "3Layer"
"base.airstrip", "3Layer"
"base.airbase", "3Layer"
"base.buoy", "3Layer"
"extra.ruins", "3Layer"
"ts.gold", "Single1"
"ts.iron", "Single1"
"ts.tundra_game", "Single1"
"ts.furs", "Single1"
"ts.coal", "Single1"
"ts.fish", "Single1"
"ts.fruit", "Single1"
"ts.gems", "Single1"
"ts.buffalo", "Single1"
"ts.wheat", "Single1"
"ts.oasis", "Single1"
"ts.peat", "Single1"
"ts.pheasant", "Single1"
"ts.grassland_resources", "Single1"
"ts.arctic_ivory", "Single1"
"ts.silk", "Single1"
"ts.spice", "Single1"
"ts.whales", "Single1"
"ts.wine", "Single1"
"ts.oil", "Single1"
"ts.horses", "Single1"
"ts.seals", "Single1"
}
    (1-1/1)