Index: binaries/data/config/default.cfg
===================================================================
--- binaries/data/config/default.cfg
+++ binaries/data/config/default.cfg
@@ -47,6 +47,9 @@
xres = 0
yres = 0
+; Quality used for actors.
+max_actor_quality=200
+
; Force a non-standard bit depth (if 0 then use the current desktop bit depth)
bpp = 0
Index: binaries/data/mods/public/art/actors/actor.rng
===================================================================
--- binaries/data/mods/public/art/actors/actor.rng
+++ binaries/data/mods/public/art/actors/actor.rng
@@ -1,194 +1,266 @@
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+ 255
+ 0
+
+
+ low
+ medium
+ high
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
- 0
- 1
-
-
-
-
-
-
- 0
- 1
-
-
-
-
-
-
- 0
- 1
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+ 0
+ 1
+
+
+
+
+
+
+ 0
+ 1
+
+
+
+
+
+
+ 0
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- true
- false
-
-
-
-
-
-
-
+
+
+
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
Index: binaries/data/mods/public/art/actors/props/units/heads/new/head_hele_b.xml
===================================================================
--- binaries/data/mods/public/art/actors/props/units/heads/new/head_hele_b.xml
+++ binaries/data/mods/public/art/actors/props/units/heads/new/head_hele_b.xml
@@ -1,47 +1,79 @@
-
-
-
-
- props/new/dude_head.dae
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 184 151 98
-
-
- 255 205 125
-
-
- 153 145 129
-
-
- 129 152 153
-
-
- 8 8 8
-
-
- 250 130 78
-
-
- objectcolor.xml
-
+
+
+
+
+ props/new/dude_head.dae
+
+
+
+
+
+
+
+
+
+
+
+
+ 255 205 125
+
+
+ 153 145 129
+
+
+ 8 8 8
+
+
+ 250 130 78
+
+
+ objectcolor.xml
+
+
+
+
+
+ props/new/dude_head.dae
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 184 151 98
+
+
+ 255 205 125
+
+
+ 153 145 129
+
+
+ 129 152 153
+
+
+ 8 8 8
+
+
+ 250 130 78
+
+
+ objectcolor.xml
+
+
Index: binaries/data/mods/public/art/actors/props/units/heads/new/head_hele_e.xml
===================================================================
--- binaries/data/mods/public/art/actors/props/units/heads/new/head_hele_e.xml
+++ binaries/data/mods/public/art/actors/props/units/heads/new/head_hele_e.xml
@@ -1,41 +1,67 @@
-
-
-
-
- props/new/head_beard_small.dae
-
-
- props/new/head_beard_large.dae
-
-
- props/new/head_beard_wide.dae
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 184 151 98
-
-
- 255 205 125
-
-
- 153 145 129
-
-
- 129 152 153
-
-
- objectcolor.xml
-
+
+
+
+
+ props/new/head_beard_large.dae
+
+
+
+
+
+
+
+
+
+ 184 151 98
+
+
+ 255 205 125
+
+
+ 153 145 129
+
+
+ objectcolor.xml
+
+
+
+
+
+ props/new/head_beard_small.dae
+
+
+ props/new/head_beard_large.dae
+
+
+ props/new/head_beard_wide.dae
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 184 151 98
+
+
+ 255 205 125
+
+
+ 153 145 129
+
+
+ 129 152 153
+
+
+ objectcolor.xml
+
+
Index: binaries/data/mods/public/art/actors/props/units/shields/aspis_athen_e.xml
===================================================================
--- binaries/data/mods/public/art/actors/props/units/shields/aspis_athen_e.xml
+++ binaries/data/mods/public/art/actors/props/units/shields/aspis_athen_e.xml
@@ -1,28 +1,80 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- player_trans_parallax_spec_helmet.xml
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ player_trans.xml
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ player_trans_parallax_spec_helmet.xml
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ player_trans_parallax_spec_helmet.xml
+
+
Index: binaries/data/mods/public/art/actors/props/units/shields/props/aspis_back_bronze_01.xml
===================================================================
--- binaries/data/mods/public/art/actors/props/units/shields/props/aspis_back_bronze_01.xml
+++ binaries/data/mods/public/art/actors/props/units/shields/props/aspis_back_bronze_01.xml
@@ -1,15 +1,28 @@
-
-
-
-
- props/shield/aspis_01_back.dae
-
-
-
-
-
-
-
- no_trans_parallax_spec.xml
-
+
+
+
+
+ props/shield/aspis_01_back.dae
+
+
+
+
+
+ default.xml
+
+
+
+
+
+ props/shield/aspis_01_back.dae
+
+
+
+
+
+
+
+ no_trans_parallax_spec.xml
+
+
Index: binaries/data/mods/public/art/actors/props/units/weapons/arrow_back.xml
===================================================================
--- binaries/data/mods/public/art/actors/props/units/weapons/arrow_back.xml
+++ binaries/data/mods/public/art/actors/props/units/weapons/arrow_back.xml
@@ -1,13 +1,17 @@
-
-
-
-
- props/weap_arrow_back.dae
-
-
-
-
-
- default.xml
-
+
+
+
+
+
+
+
+ props/weap_arrow_back.dae
+
+
+
+
+
+ default.xml
+
+
Index: binaries/data/mods/public/art/actors/props/units/weapons/bow_short.xml
===================================================================
--- binaries/data/mods/public/art/actors/props/units/weapons/bow_short.xml
+++ binaries/data/mods/public/art/actors/props/units/weapons/bow_short.xml
@@ -1,24 +1,28 @@
-
-
-
-
- props/weapons/bow_greek.dae
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- player_trans.xml
-
+
+
+
+
+
+
+
+ props/weapons/bow_greek.dae
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ player_trans.xml
+
+
Index: binaries/data/mods/public/art/actors/props/units/weapons/spear_hoplite.xml
===================================================================
--- binaries/data/mods/public/art/actors/props/units/weapons/spear_hoplite.xml
+++ binaries/data/mods/public/art/actors/props/units/weapons/spear_hoplite.xml
@@ -1,13 +1,14 @@
-
-
-
-
-
-
- props/spear_hoplite.dae
-
-
-
-
-
+
+
+
+
+
+
+
+ props/spear_hoplite.dae
+
+
+
+
+
Index: binaries/data/mods/public/art/actors/units/athenians/infantry_archer_b.xml
===================================================================
--- binaries/data/mods/public/art/actors/units/athenians/infantry_archer_b.xml
+++ binaries/data/mods/public/art/actors/units/athenians/infantry_archer_b.xml
@@ -1,53 +1,155 @@
-
-
-
-
- skeletal/new/m_tunic_short.dae
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- player_trans.xml
-
+
+
+
+
+
+ skeletal/new/m_tunic_short.dae
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ player_trans.xml
+
+
+
+
+
+ skeletal/new/m_tunic_short.dae
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ player_trans.xml
+
+
+
+
+
+ skeletal/new/m_tunic_short.dae
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ player_trans.xml
+
+
Index: binaries/data/mods/public/art/actors/units/athenians/infantry_spearman_e.xml
===================================================================
--- binaries/data/mods/public/art/actors/units/athenians/infantry_spearman_e.xml
+++ binaries/data/mods/public/art/actors/units/athenians/infantry_spearman_e.xml
@@ -1,215 +1,6 @@
-
-
-
-
- skeletal/new/m_armor_tunic_short.dae
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- player_trans_spec.xml
-
+
+
+
+
+
Index: binaries/data/mods/public/art/actors/units/athenians/infantry_spearman_e_base.xml
===================================================================
--- binaries/data/mods/public/art/actors/units/athenians/infantry_spearman_e_base.xml
+++ binaries/data/mods/public/art/actors/units/athenians/infantry_spearman_e_base.xml
@@ -2,7 +2,15 @@
-
+
+ skeletal/new/m_armor_tunic_short.dae
+
+
+
+
+
+
+
skeletal/new/m_armor_tunic_short.dae
@@ -12,7 +20,7 @@
-
+
@@ -35,17 +43,17 @@
-
+
-
+
-
+
@@ -60,22 +68,22 @@
-
+
-
+
-
+
-
+
@@ -93,13 +101,13 @@
-
+
-
+
@@ -111,19 +119,19 @@
-
+
-
+
-
+
@@ -147,7 +155,7 @@
-
+
@@ -159,13 +167,13 @@
-
+
-
+
Index: binaries/data/mods/public/gui/options/options.json
===================================================================
--- binaries/data/mods/public/gui/options/options.json
+++ binaries/data/mods/public/gui/options/options.json
@@ -152,6 +152,17 @@
"min": 0,
"max": 1
},
+ {
+ "type": "dropdown",
+ "label": "Model quality",
+ "tooltip": "Model quality setting.",
+ "config": "max_actor_quality",
+ "list": [
+ { "value": 100, "label": "Low", "tooltip": "Simpler models for better performance." },
+ { "value": 150, "label": "Medium", "tooltip": "Average quality and average performance." },
+ { "value": 200, "label": "High", "tooltip": "High quality models." }
+ ]
+ },
{
"type": "slider",
"label": "Shader effects",
Index: source/graphics/Model.cpp
===================================================================
--- source/graphics/Model.cpp
+++ source/graphics/Model.cpp
@@ -1,4 +1,4 @@
-/* Copyright (C) 2020 Wildfire Games.
+/* Copyright (C) 2021 Wildfire Games.
* This file is part of 0 A.D.
*
* 0 A.D. is free software: you can redistribute it and/or modify
@@ -499,10 +499,6 @@
m_Anim = source->m_Anim;
m_AnimTime = source->m_AnimTime;
- m_Flags &= ~MODELFLAG_CASTSHADOWS;
- if (source->m_Flags & MODELFLAG_CASTSHADOWS)
- m_Flags |= MODELFLAG_CASTSHADOWS;
-
m_ObjectBounds.SetEmpty();
InvalidateBounds();
}
Index: source/graphics/ObjectBase.h
===================================================================
--- source/graphics/ObjectBase.h
+++ source/graphics/ObjectBase.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2019 Wildfire Games.
+/* Copyright (C) 2021 Wildfire Games.
* This file is part of 0 A.D.
*
* 0 A.D. is free software: you can redistribute it and/or modify
@@ -22,7 +22,9 @@
#include "ps/CStr.h"
#include "ps/CStrIntern.h"
+class CActorDef;
class CModel;
+class CObjectEntry;
class CObjectManager;
class CSkeletonAnim;
class CXeromyces;
@@ -30,12 +32,24 @@
#include
#include