summaryrefslogtreecommitdiff
path: root/src/game/unit_soldier.cpp
diff options
context:
space:
mode:
authorPaweł Redman <pawel.redman@gmail.com>2018-04-22 17:37:38 +0200
committerPaweł Redman <pawel.redman@gmail.com>2018-04-22 17:37:38 +0200
commit87422cff1507f8b5a8633eee5dadbadfef872dab (patch)
tree19335fc72bde60efd41c9f87f3b8f44b153af5a4 /src/game/unit_soldier.cpp
parent478c6d955abc27024599aefbf483f55efe39da55 (diff)
Add the builder.
Diffstat (limited to 'src/game/unit_soldier.cpp')
-rw-r--r--src/game/unit_soldier.cpp32
1 files changed, 18 insertions, 14 deletions
diff --git a/src/game/unit_soldier.cpp b/src/game/unit_soldier.cpp
index 221667b..d511553 100644
--- a/src/game/unit_soldier.cpp
+++ b/src/game/unit_soldier.cpp
@@ -19,33 +19,33 @@ along with Minitrem. If not, see <http://www.gnu.org/licenses/>.
namespace game {
-static const char *initials[] = {
- "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M",
- "N", "O", "Ö", "P", "R", "S", "Ś", "T", "U", "Ü", "V", "W", "X",
- "Z"
-};
-
static std::string soldier_name(procgen::prng_t *prng)
{
std::stringstream ss;
static const char *names[] = {
- "Kowalski", "O'Neill", "Hammond", "Mitchell", "Hitler",
- "Stalin", "Wyspiański", "Bush", "Washington", "Jaruzelski",
- "Jackson", "Carter",
+ "Heinrich", "Hans", "Ernst", "Dieter", "Werner", "Wolfgang",
+ "Uwe", "Klaus", "Adolf"
+ };
+ static const char *surnames[] = {
+ "Kloss", "Schmidt", "Göring", "Fischer", "Müller", "Weber",
+ "Schulz", "Schäfer", "Klein", "Wofl", "Schröder", "Neumann",
+ "Zimmermann"
};
- ss << initials[prng->next() % (sizeof(initials) / sizeof(initials[0]))];
- ss << ". ";
ss << names[prng->next() % (sizeof(names) / sizeof(names[0]))];
+ ss << " ";
+ ss << surnames[prng->next() % (sizeof(surnames) / sizeof(surnames[0]))];
return ss.str();
}
+const float soldier_head_offset = 0.10f;
+
unit_soldier_t::unit_soldier_t(game::state_t *game) : unit_t(game, UNIT_SOLDIER)
{
size[0] = v2f_t(-0.3f, +0.0f);
size[1] = v2f_t(+0.3f, +0.3f);
- render_size[0] = v2f_t(-0.5f, -1.2f);
+ render_size[0] = v2f_t(-0.5f, -1.2f - soldier_head_offset);
render_size[1] = v2f_t(+0.5f, +0.3f);
cmodel.cflags = CF_BODY;
move.cflags = CF_SOLID | CF_BODY | CF_WATER;
@@ -240,9 +240,13 @@ void unit_soldier_t::render_to(render::state_t *render)
}
if (!dead) {
+ rectf_t rect_body;
render::oriented_sprite_t *legs, *body;
float body_angle;
+ rect_body = render_bounds;
+ rect_body[0][1] += soldier_head_offset;
+
if (move.moving && !move.blocked)
legs = &assets::soldier.legs_walking;
else
@@ -261,8 +265,8 @@ void unit_soldier_t::render_to(render::state_t *render)
body_angle = move.angle;
}
- render->render(game->now * 10, legs, render_bounds, move.angle);
- render->render(game->now * 10, body, render_bounds, body_angle);
+ render->render(game->now * 10, legs, rect_body, move.angle);
+ render->render(game->now * 10, body, rect_body, body_angle);
render->render(game->now * 10, &assets::soldier.head_idle, render_bounds, body_angle);
} else {