24 Commits

Author SHA1 Message Date
yvt
7c3a39e639
Modernize
- Replaced raw pointers with references or smart pointers. Nullable
  references are represented by `stmp::optional<const T&>`. (There are
  many raw pointers still remaining. They should be replaced at some
  point.)
- Added class template specializations `stmp::optional<T &>` and
  `stmp::optional<const T&>`.
- Fixed `stmp::optional`'s various behaviors
- `World::{players, playerPersistents}` are now `std::array`.
- More uses of `stmp::optional` to clarify the semantics
- Renamed `PlayerThrownGrenade` to `PlayerThrewGrenade`
- Replaced old-style `for` loops with range based ones
- Deleted `Player`'s default constructors and `operator =`
- Deleted `TCGameMode`'s default constructor and `operator =`
- Deleted `CTFGameMode`'s default constructor and `operator =`
- Replaced `static_cast` with `dynamic_cast` for down-casting
- `RefCountedObject::operator*()` no longer requires non-constness to
  return `T &`.
- Replaced the uses of `std::vector::operator[]` with `std::vector::at`
  for bounds checking.
- Made some methods of `GameMap` `const`.
- Added some null checks.
2019-07-17 00:31:00 +09:00
yvt
30e49b68aa Implement thread-local random number generator 2018-09-18 22:18:54 +09:00
yvt
585cbfce1c Improve random number generation
The global RNG state is now protected from simultaneous accesses by
employing a mutex.

Performance sensitive code requiring generation of a large number of
random numbers can utilize `LocalRNG`. This is not thread-safe but
provides a much greater throughput. `LocalRNG` is seeded by the global
RNG only at construction time.
2018-09-17 23:48:38 +09:00
yvt
660066fc2f Rewrite the camera control logic
- Fixes #664
- Fixes #520
2017-12-05 15:42:24 +09:00
yvt
a853a58631 Remove corpses after respawn on a certain game mode
Fixes #145.
2017-09-03 16:56:01 +09:00
yvt
6d6e55b7f8 Change appearance of tracers 2017-01-09 03:45:37 +09:00
Tomoaki Kawada
624d291f79 Update #includes
- Reorder them so that system libraries come first
- Use C++-style headers (`<cmath>`) instead of C-style headers (`<math.h>`)
2016-12-03 19:04:58 +09:00
Tomoaki Kawada
2eb9e35c65 Apply clang-format to all non-external source files 2016-12-03 18:23:47 +09:00
Tomoaki Kawada
4d964d6595 Add more camera shake (cg_shake 2) and additional movements of view weapons 2016-11-22 01:25:22 +09:00
Tomoaki Kawada
18f3e81fd1 Convert space indentations to tabs 2016-11-20 19:13:00 +09:00
Tomoaki Kawada
5e3b41b8ed Provide more game experience options
- Fixes #448. (Setting `cg_animations` to `0` disables the ADS animation)
2016-11-20 18:13:49 +09:00
Tomoaki Kawada
6a7af96daf Refactor setting variables 2016-11-19 21:27:13 +09:00
Tomoaki Kawada
3f7fcee586 Reorganise resource files 2016-07-16 00:14:59 +09:00
yvt
665dde5d7d Fixed to compile 2015-06-20 20:40:45 +09:00
yvt
70a1dd4b36 Fixed to compile 2015-06-20 18:52:11 +09:00
yvt
9f3cdbb70f Fixed compile error (::isfinite undefined) 2015-06-20 18:45:18 +09:00
yvt
95488c00d6 Auto-focus speed is now adjustable 2015-06-20 18:44:23 +09:00
yvt
f4c4f52254 Adjusted auto-focus 2015-06-20 17:15:01 +09:00
yvt
40f8be07c0 Realistic camera focal control mode
Set `cg_manualFocus` to `1` to use it. By default, mouse wheel adjusts the focal length, and pressing mouse wheel button enables auto-focus.
2015-06-20 17:10:26 +09:00
faineance
1bdaa42012 fix multiple default values 2014-12-14 12:36:40 +00:00
yvt
e398ede806 Adjusted blood smoke 2014-05-08 02:57:45 +09:00
yvt
063efdde63 Additional smoke textures looking like explosion 2014-05-08 02:41:10 +09:00
yvt
b3491e1a2b Water bullet impact 2014-03-12 03:38:45 +09:00
yvt
2599d14900 Refactor 2014-03-09 21:43:38 +09:00