Commit Graph

436 Commits

Author SHA1 Message Date
Phillip Stephens 118fb22ce0
Merge pull request #117 from lioncash/layout
CCharLayoutInfo: Minor changes
2019-10-26 18:37:59 -07:00
Lioncash 30af6f0bfb CSegId: Make constexpr capable
Allows the class to be used within constexpr contexts, given it's such a
small class.
2019-10-26 21:36:30 -04:00
Lioncash 69831b4a13 CCharLayoutInfo: Make constructors explicit
Makes constructions of the types visibly explicit, given they aren't
conversion constructors.
2019-10-26 21:27:03 -04:00
Lioncash bb9da96870 CCharLayoutInfo: Invert conditional within GetFromParentUnrotated()
Inverts the conditional to be in terms of the true case, making it a
little nicer to read.
2019-10-26 21:24:10 -04:00
Lioncash 9193f4c4d7 CCharLayoutInfo: Make use of const where applicable
Makes trivial variables const to make it explicit that they aren't
modified.
2019-10-26 21:21:57 -04:00
Lioncash 293d19cf13 CCharLayoutInfo: std::move std::string instance in CCharLayoutInfo constructor
Avoids performing a copy (and by extension also avoids redundant
allocations).
2019-10-26 21:19:57 -04:00
Lioncash e7b0470f55 CCharLayoutInfo: Use heterogenous lookup with std::map
Allows using std::string_view with std::map without the need to
construct a completely new std::string instance. Making the lookups via
GetSegIdFromString() completely non-allocating.

Notably, this also allows it to properly function with
non-null-terminated string_view instances.
2019-10-26 21:17:49 -04:00
Phillip Stephens 0042e44521
Merge pull request #116 from lioncash/name
CParticleGenInfo: Use slightly more full names for parameters where applicable
2019-10-26 17:51:57 -07:00
Lioncash bbdfe3d962 CParticleGenInfo: Provide slightly more full names for parameters where applicable
Makes Intellisense and any function highlighting systems a little more
informative.
2019-10-26 20:37:35 -04:00
Lioncash a82dd4f11f CParticleGenInfo: Name bool parameter for SetParticleEmission
Allows the parameter name to be visible in code completion and
highlighting.
2019-10-26 20:32:44 -04:00
Lioncash eae1a1d06d CAnimData: Remove usage of const_cast within Touch()
We can just call the function normally without the need for a
const_cast.
2019-10-23 20:44:19 -04:00
Jack Andersen e1d46755a3 Merge branch 'master' of ssh://git.axiodl.com:6431/AxioDL/urde 2019-09-30 21:41:42 -10:00
Jack Andersen 16ca0d24c2 Explicit Asset ID refactor 2019-09-30 21:38:03 -10:00
Lioncash a633b8e8fd General: Normalize RuntimeCommon include paths
Performs the same normalizing done to the RuntimeCommonB target, now all
of the runtime headers have normalized include paths.
2019-09-28 04:14:29 -04:00
Lioncash 36d04456dd General: Normalize RuntimeCommonB include paths
Finishes the normalizing of all of includes within the RuntimeCommonB target's headers.
2019-09-23 17:22:37 -04:00
Phillip Stephens 68e2fad74f
Fix TCastTo.hpp inclusions, add comment to warn against modifying include path 2019-09-21 06:07:13 -07:00
Lioncash f9079f0215 Runtime: Make use of std::make_unique where applicable
Makes use of the C++14 make_unique allocation function to allocate class
instances where applicable instead of a reset with a new operator within
it.

This doesn't touch cases where buffers are allocated, given make_unique
would zero-initialize them.
2019-09-12 04:09:48 -04:00
Lioncash afab3e0327 Runtime: Make const/non-const getters have the same name
Makes for a more consistent interface, as getters won't have different
names to remember based off whether or not they're const qualified.
2019-08-14 12:45:57 -04:00
Lioncash d3d629d405 RuntimeCommon: Use const on member functions where applicable
Adds missing const qualifiers on class member functions that don't
modify instance state.
2019-08-14 09:25:39 -04:00
Phillip Stephens 1e625e0995 Fix missed `override` declarations 2019-08-09 15:07:52 -07:00
Lioncash 9312eef905 RuntimeCommon: Use override where applicable
Continues the override modernization by applying it to the main
RuntimeCommon target. Resolves around 1100+ cases where override can be
used.
2019-08-09 17:39:42 -04:00
Jack Andersen b4fe474de3 Merge branch 'master' of ssh://git.axiodl.com:6431/AxioDL/urde 2019-07-19 18:29:06 -10:00
Jack Andersen 7a3da1f7a6 Massive fmtlib refactor 2019-07-19 18:27:21 -10:00
Phillip Stephens 328749d1ba More CFlaahgra imps, initial CTryclops imps 2019-07-16 08:54:07 -07:00
Phillip Stephens 44cae7bdb9 More CFlaahgra imps 2019-06-26 18:06:03 -07:00
Phillip Stephens a67ea52617 More CFlaahgraImps 2019-06-20 14:22:06 -07:00
Phillip Stephens 6ae550e9d6 More CFlaahgra imps 2019-06-17 18:39:56 -07:00
Jack Andersen bfa5b218f0 Remove unneeded debug messages 2019-06-11 16:20:15 -10:00
Jack Andersen 0e8e3e906c Merge branch 'master' of ssh://git.axiodl.com:6431/AxioDL/urde 2019-06-11 16:05:44 -10:00
Jack Andersen e218b8aeb5 CActorContraption fixes, better CMake dependency handling 2019-06-11 16:05:17 -10:00
Phillip Stephens b7b65b04a4 Initial Flaahgra implementations 2019-06-10 01:28:33 -07:00
Phillip Stephens b18576cf58 Initial CMagdolite imps 2019-05-14 15:30:15 -07:00
Jack Andersen 3a0d2930fa Numerous uninitialized memory fixes 2019-04-06 19:14:48 -10:00
Jack Andersen b72cc490e8 Implement CFishCloud 2019-04-02 18:32:31 -10:00
Jack Andersen a63a61fef8 Implement CWallCrawlerSwarm 2019-03-23 22:06:59 -10:00
Jack Andersen 99b1a8ef49 Lots of bug fixes 2019-03-12 17:46:20 -10:00
Jack Andersen 2f963b9ce3 Various bug fixes 2019-03-08 22:58:27 -10:00
Jack Andersen 4b042f6f9a OpenGL memory leak fix 2019-03-04 22:34:43 -10:00
Jack Andersen 67b9882dbe Thermal visor fixes 2019-02-24 22:14:59 -10:00
Jack Andersen 8df0a4913c zeus constexpr refactor and thermal visor fixes 2019-02-23 21:15:54 -10:00
Jack Andersen 48eaa2545b Working CScriptGunTurret 2019-02-17 19:47:46 -10:00
Jack Andersen 5f8b65e3b5 Various bug fixes 2019-02-07 15:08:15 -10:00
Jack Andersen ad2681f857 Windows fixes 2019-01-28 22:28:35 -10:00
Phillip Stephens 049f51382b Initial CAtomicBeta imps, needs variable names 2019-01-22 21:59:53 -08:00
Phillip Stephens 05e5fb9774 More CBabygoth Imps 2019-01-20 14:28:25 -08:00
Jack Andersen 47c6b5cba8 Bug fixes and CGuiFrame mouse events 2019-01-19 20:43:11 -10:00
Jack Andersen 851e113dc0 Implement CWarWasp 2019-01-15 18:22:44 -10:00
Jack Andersen 5b55320e9b Implement CPlasmaProjectile 2019-01-02 17:47:28 -10:00
Phillip Stephens 4f3c8daf27 Initial CBabygoth imps 2018-12-31 00:37:52 -08:00
Jack Andersen 147a9396c4 CBeetle implementation 2018-12-30 19:01:42 -10:00
Jack Andersen 0ec81477cf CRagDoll fixes 2018-12-26 20:26:34 -10:00
Phillip Stephens 6fe99a7ddf Finish CFlickerBat imps 2018-12-16 21:40:27 -08:00
Jack Andersen b7f35e0528 CRelAngle fix 2018-12-16 17:52:51 -10:00
Jack Andersen dac8fc3eb5 Space pirate bug fixes 2018-12-14 20:29:41 -10:00
Jack Andersen ec1cb75b25 Finish CSpacePirate implementation 2018-12-12 21:39:16 -10:00
Jack Andersen 14747e39e1 Windows fixes 2018-12-07 20:46:17 -10:00
Jack Andersen 636c82a568 New code style refactor 2018-12-07 19:30:43 -10:00
Jack Andersen 41ae32be31 Merge branch 'master' of ssh://git.axiodl.com:6431/AxioDL/urde 2018-12-07 18:36:12 -10:00
Jack Andersen 7c7da6671a SIMD refactor 2018-12-07 15:49:15 -10:00
Phillip Stephens dd705a3db9 Implement CSeedling 2018-12-05 16:46:35 -08:00
Phillip Stephens 0ec9f1f4eb Finish CSpankWeed 2018-12-03 18:31:15 -08:00
Jack Andersen e1fa938127 Work on CSpacePirate 2018-11-25 16:15:44 -10:00
Jack Andersen 9c88971df6 Initial CSpacePirate and rag doll imps 2018-11-23 22:09:35 -10:00
Jack Andersen e736d8fa83 Fix CAnimSource reader POI handling 2018-11-20 14:51:15 -10:00
Phillip Stephens 96f20512bb More CScriptSpecialFunction imps, fix intermittent crash in CAnimTreeTweenBase 2018-11-18 21:01:39 -08:00
Jack Andersen 22da3a0f89 Merge branch 'master' of ssh://git.axiodl.com:6431/AxioDL/urde 2018-11-18 15:19:58 -10:00
Jack Andersen 35a3923cdf Various bug fixes 2018-11-18 15:19:44 -10:00
Phillip Stephens b2b0a6aee0 CMetaree imps 2018-11-17 21:10:06 -08:00
Jack Andersen b099be63dd Bug fixes 2018-11-17 14:10:26 -10:00
Phillip Stephens 28d695eea4 Push missing CBoneTracking.hpp 2018-11-17 14:49:32 -08:00
Phillip Stephens ea4848196a Implement CNewIntroBoss 2018-11-16 21:05:57 -08:00
Jack Andersen cc4a895818 Finish CSteeringBehaviors 2018-11-15 20:06:20 -10:00
Phillip Stephens 5c3cfb519c Initial CFlickerbat imps 2018-11-14 15:00:08 -08:00
Phillip Stephens e6082d17f5 Initial CSteeringBehaviors imps 2018-11-14 11:23:34 -08:00
Jack Andersen 660e7cd239 Work on CParasite 2018-11-12 23:20:11 -10:00
Jack Andersen bf3636a16e Lots of CParasite implementations 2018-11-11 18:21:36 -10:00
Jack Andersen d4bb7d64eb All CPatterned functions implemented 2018-11-10 17:27:54 -10:00
Jack Andersen 1aab0528f3 Various bug fixes 2018-11-07 14:53:38 -10:00
Jack Andersen 0b3a9e1865 Implement CPatterned::KnockBack 2018-11-05 20:16:12 -10:00
Jack Andersen d6051f8808 Implement CKnockBackController 2018-11-04 20:12:53 -10:00
Jack Andersen 290c79b57e Fix AABB-point collision issue 2018-10-18 09:44:43 -10:00
Jack Andersen 8d839d8a17 Scan visor and waterbox fix 2018-10-16 17:26:55 -10:00
Jack Andersen c91e5df986 Convert to pragma once 2018-10-06 17:42:33 -10:00
Phillip Stephens 02d54fd5ca Initial CParasite implementation 2018-09-16 16:22:35 -07:00
Phillip Stephens 679ce01a61 More CPatterned imps 2018-09-13 17:49:34 -07:00
Phillip Stephens ee97ede3fe Initial CPatterned imps 2018-09-07 16:51:07 -07:00
Jack Andersen cd3bba2f0e Working grapple beam 2018-06-20 14:57:57 -10:00
Jack Andersen 8f9d7da3ee Implement tessellation shader for HLSL 2018-06-07 15:15:46 -10:00
Jack Andersen 92ed463051 synchronize macOS with latest changes 2018-05-26 11:30:19 -10:00
Jack Andersen 70b3404b7c Windows build fixes and warning avoidance 2018-05-24 20:39:38 -10:00
Jack Andersen e943a60694 CScriptColorModulate fixes 2018-05-16 14:04:07 -10:00
Jack Andersen 0987866896 Implement CScriptDebris; EVNT POI fixes 2018-05-15 18:07:38 -10:00
Phillip Stephens 0c49c8ea9e Implement CScriptActorKeyframe 2018-05-14 14:44:09 -07:00
Jack Andersen 9130b9459a More particle bug fixes 2018-05-13 13:27:47 -10:00
Jack Andersen faf0ac7d27 Particle POI fix, implement ORNT mode for particles 2018-05-12 18:09:11 -10:00
Jack Andersen 12430610f1 Lots of bug fixes 2018-05-09 21:25:26 -10:00
Phillip Stephens 734b25cad3 Fix doors and various area streaming bugs 2018-05-01 17:43:31 -07:00
Phillip Stephens 711c3e0d2c Remove rstl::optional_object, various cleanups, implement CExplosion and CScriptDoor 2018-04-29 20:12:41 -07:00
Phillip Stephens 6d60ccfd04 Various fixes and tweaks, Implement CExplosion, Add cheats 2018-04-26 14:12:20 -07:00
Jack Andersen d5e471bac3 Several GameCube cooking fixes 2018-04-03 22:31:29 -10:00
Jack Andersen 017185109f Fix disappearing actor issue 2018-03-04 13:23:21 -10:00
Jack Andersen 055de86170 ANIM serialization fix 2018-03-03 20:15:40 -10:00
Jack Andersen 74ce62726d Working space warp effect for charge beam 2018-02-12 20:46:59 -10:00
Jack Andersen 083571e693 Work on CGameProjectile 2018-02-08 21:12:26 -10:00
Jack Andersen 59af54afad Merge branch 'master' of ssh://gitlab.axiodl.com:6431/AxioDL/urde 2018-02-04 20:57:18 -10:00
Jack Andersen ac8dfde174 Various bug fixes and CActor rendering 2018-02-04 20:56:09 -10:00
Jack Andersen 97835607d9 More windows build fixes 2018-02-03 20:46:47 -10:00
Jack Andersen 36f1473f3e All animation nodes implemented 2018-01-29 15:04:01 -10:00
Jack Andersen 47b3d57c3a Arm cannon rendering fixes 2018-01-14 21:39:25 -10:00
Jack Andersen 4e5c991424 Metal API adjustments; MSAA support 2018-01-06 19:19:49 -10:00
Jack Andersen a78c4c6b36 Animation transitions and pause screen fixes 2018-01-04 17:02:30 -10:00
Jack Andersen 99fc9e3598 Various bug fixes and CAnimTree implementations 2018-01-03 18:17:44 -10:00
Jack Andersen aec45ad2bb Windows PCH fixes 2017-12-29 15:09:45 -10:00
Jack Andersen 8301adc3d6 Huge compile performance refactor 2017-12-28 22:08:12 -10:00
Jack Andersen c00cc6cea9 Lots of bug fixes; working CPhazonSuitFilter 2017-12-19 20:06:54 -10:00
Jack Andersen 1c44f8d1bc Various movement and HUD bug fixes 2017-12-18 17:05:50 -10:00
Jack Andersen 73ae278c87 Several collision fixes 2017-12-17 16:54:50 -10:00
Jack Andersen 7cd3e8f502 Various bug fixes 2017-11-29 15:22:46 -10:00
Jack Andersen 7951cb1ee0 Bug fixes 2017-11-28 00:06:40 -10:00
Jack Andersen f60097b7e3 Implement CScriptSound and bug fixes 2017-11-26 19:06:53 -10:00
Jack Andersen e5bd35746c Merge branch 'master' of https://github.com/AxioDL/urde 2017-11-23 22:23:54 -10:00
Jack Andersen 6854cb9df7 Various bug fixes 2017-11-23 22:23:28 -10:00
Phillip Stephens c6fdd8297e Update boo, fixes and initial imps 2017-11-24 00:01:06 -08:00
Jack Andersen 550078f7cb Linux build fixes 2017-11-12 21:21:51 -10:00
Jack Andersen f7ec7bdc0c string_view refactor 2017-11-12 20:19:18 -10:00
Phillip Stephens 44df36d64a CGameArea imps 2017-11-04 19:08:05 -07:00
Jack Andersen 2f4cddd3d2 Lots of CResFactory fixes 2017-10-27 00:10:32 -10:00
Jack Andersen 8346f56595 Finish CResFactory; better smart-pointer use for resources 2017-10-26 00:09:51 -10:00
Jack Andersen e274cd12b9 Refactorings to support .upak generation 2017-10-24 21:47:49 -10:00
Jack Andersen 30ae347420 Implement CWorldShadow and texture clamp mode 2017-09-30 18:26:46 -10:00
Jack Andersen 484a4900a0 CMorphBall Complete 2017-09-29 17:45:57 -10:00
Jack Andersen 27cee61765 Implement array-based rstl::reserved_vector 2017-09-10 21:08:30 -10:00
Jack Andersen 10092821c8 Initial round of CMorphBall implementations 2017-09-10 16:18:49 -10:00
Jack Andersen 361aa1512b Finish CGunWeapon 2017-09-04 17:00:19 -10:00
Jack Andersen 640623f3ef Finish CGrappleArm 2017-09-03 16:22:46 -10:00
Jack Andersen 35ab6e4803 Finish CPlayerGun 2017-09-01 18:06:05 -10:00
Jack Andersen ddb1d584b7 More work on CPlayerGun 2017-08-30 16:42:37 -10:00
Jack Andersen 86ada63867 Work on CPlayerGun 2017-08-25 18:36:25 -10:00
Jack Andersen ed991a6ac0 Initial CPlayerGun implementations 2017-08-24 20:18:09 -10:00
Jack Andersen c66f9d0ec7 Add CPU-based skinning path for vertex manipulation effects 2017-08-20 19:46:59 -10:00
Jack Andersen 96b17ac73d Implement MetroidPrimeStage1 loader 2017-08-19 19:23:22 -10:00
Jack Andersen 98b2fb6855 Work on CPlayer 2017-08-17 15:30:15 -10:00
Jack Andersen 02f8f77b57 Merge branch 'master' of https://github.com/AxioDL/urde 2017-08-12 22:19:33 -10:00
Jack Andersen e25d2a423d Nearly finish CScriptWater 2017-08-12 21:56:35 -10:00
Phillip Stephens 870e8c80ee Refactor ResId into CAssetId 2017-08-12 22:26:14 -07:00
Jack Andersen dc637f251d Work on CFluidPlaneCPU 2017-08-09 21:05:27 -10:00
Jack Andersen 3650a58a1e Initial CFluidPlane implementation 2017-08-07 20:03:57 -10:00
Jack Andersen 925aa3fe1a More CPlayer imps 2017-07-30 19:19:05 -10:00
Phillip Stephens 70951275db Fix linux build 2017-07-15 07:13:36 -07:00
Jack Andersen 8a493615c4 Implement CBodyController 2017-07-13 19:14:19 -10:00
Jack Andersen daef773f39 Implement additive body states, rstl::binary_find 2017-07-10 21:17:03 -10:00
Jack Andersen 56bfc276d6 Implement body state classes 2017-07-09 18:55:51 -10:00
Jack Andersen 778b37e0f8 CPASAnimState fixes 2017-07-06 11:06:56 -10:00
Jack Andersen bfb16a3a0d Various CPlayer and CBodyStateCmdMgr imps 2017-07-05 08:34:12 -10:00
Phillip Stephens 38a13868f0 Compile fixes, and initial asset name parser 2017-07-02 03:18:38 -07:00
Jack Andersen 59771cf630 Finish CGroundMovement 2017-06-20 21:24:26 -10:00
Jack Andersen d4a97861dc Initial work on CGroundMovement 2017-06-18 21:00:50 -10:00
Phillip Stephens 46c70ecf11 Initial CScriptPlatform imps, minor cleanup, and RandomStatic GLSL fixes 2017-06-10 22:49:27 -07:00
Jack Andersen 6701ac264d CParticleSwooshShaders HLSL implementation 2017-06-09 20:13:16 -10:00
Jack Andersen 6da6e37d42 Conform CElementGen with retail 2017-06-03 15:01:09 -10:00
Jack Andersen db8a7d3433 CParticleDatabase implementations 2017-06-02 20:03:07 -10:00
Jack Andersen 6f84cfcb38 Finish CPlayerVisor and CSamusFaceReflection 2017-05-30 16:51:38 -10:00
Phillip Stephens 40a0d8395a Initial CActorContraption and weapon imps 2017-05-18 03:58:15 -07:00
Jack Andersen b2d375a1d7 Finish CSamusDoll 2017-05-05 19:21:42 -10:00
Jack Andersen 4ff1475f0e Work on CSamusDoll 2017-05-04 08:56:20 -10:00
Phillip Stephens 1845a1465b Initial CJointCollisionDescription imps, minor CScriptTrigger cleanup 2017-04-22 04:04:07 -07:00
Jack Andersen 664cbec769 Move some collision functions to CGameCollision.cpp 2017-04-14 19:49:01 -10:00
Jack Andersen 0fe125d913 Finish CSamusHud and subsystems 2017-04-13 09:28:31 -10:00
Jack Andersen 84578e9909 Implement CActorLights::BuildAreaLightList 2017-04-09 20:57:00 -10:00
Jack Andersen 8e7773aa94 AutoMapper work 2017-03-19 19:09:53 -10:00
Jack Andersen 6c9462e099 Camera shakers and controller action scripting 2017-03-17 19:12:27 -10:00
Jack Andersen 1629882113 Refactors to support fog volume rendering 2017-03-13 21:03:58 -10:00
Jack Andersen ce723d5505 Frontface culling support boo sync 2017-03-10 10:52:53 -10:00
Jack Andersen 7334074798 Additive animation integration 2017-02-28 20:02:54 -10:00
Phillip Stephens 242f9e3a2d Implement CTransition constructor 2017-02-12 19:19:28 -08:00
Phillip Stephens d9f5805356 Re-organize MP1 specific world objects 2017-02-05 12:23:58 -08:00
Phillip Stephens 696f7a9772 Implement CScriptGenerator 2017-01-24 09:23:10 -08:00
Phillip Stephens 362fb6b00d Implement CParticleGenInfoGeneric 2017-01-20 22:03:37 -08:00
Phillip Stephens 65fb75737f CScriptTrigger work 2017-01-14 19:59:37 -08:00
Phillip Stephens bf91bdc332 Initial CIkChain implementation 2017-01-07 19:36:24 -08:00
Phillip Stephens b765ce3eb7 Lots of ScriptObject and Collision work 2017-01-03 20:30:05 -08:00
Jack Andersen d7f79d6ec3 Work on CMemoryCardDriver 2016-12-22 20:41:39 -10:00
Jack Andersen 3a24b35df7 Windows fixes 2016-12-10 15:54:08 -10:00
Phillip Stephens 5793c8df87 More gun implementations, and script objects 2016-12-09 18:35:20 -08:00
Phillip Stephens 83f3e3d4f1 Various Implementations 2016-11-20 13:53:15 -08:00
Jack Andersen 9b6ab93ae5 Remove unnecessary and RVO-detrimental moves 2016-10-02 18:39:31 -10:00
Phillip Stephens 23b6bd350e Prelim CPlayer imps, fix race condition in CGameGlobalObjects 2016-09-25 09:45:22 -07:00
Jack Andersen 7f987ab10e Further CGameState imps 2016-09-24 15:58:54 -10:00
Phillip Stephens c20eb76189 Various imps and stubs 2016-09-13 22:45:46 -07:00
Jack Andersen 7d2370efe0 CWorldTransManager 2-camera instances 2016-09-11 18:53:28 -10:00
Jack Andersen 3de9a61ef1 Merge branch 'master' of https://github.com/AxioDL/urde 2016-09-11 11:20:21 -10:00
Jack Andersen 9740677139 CAnimData flag fix 2016-09-11 11:19:55 -10:00
Phillip Stephens 758d0f48ff Various CAnimTree implementations 2016-09-11 11:40:33 -07:00
Jack Andersen 64b85786de Windows fixes 2016-09-10 15:25:59 -10:00
Jack Andersen 2563b78a82 Merge branch 'master' of https://github.com/AxioDL/urde 2016-09-09 19:40:16 -10:00
Jack Andersen a81f35f3e4 ANIM fixes 2016-09-09 19:39:47 -10:00
Phillip Stephens f2635f449c Various cleanups and minor imps 2016-09-09 21:50:00 -07:00
Jack Andersen 529223e311 ANIM3 Bitstream reader fixes 2016-09-09 10:16:54 -10:00
Jack Andersen b6587d88fc Rigging fixes 2016-09-08 18:19:19 -10:00
Jack Andersen 5c386d02a8 Update submodules 2016-09-07 20:16:46 -10:00