diff --git a/src/d_player.h b/src/d_player.h index 1ae74de32..ee1418f57 100644 --- a/src/d_player.h +++ b/src/d_player.h @@ -468,7 +468,7 @@ public: TObjPtr MUSINFOactor = nullptr; // For MUSINFO purposes int8_t MUSINFOtics = 0; - bool settings_controller = false; // Player can control game settings. + bool settings_controller = true; // Player can control game settings. int8_t crouching = 0; int8_t crouchdir = 0; diff --git a/src/dobjgc.h b/src/dobjgc.h index 269dffc15..41ae9ba23 100644 --- a/src/dobjgc.h +++ b/src/dobjgc.h @@ -167,22 +167,19 @@ class TObjPtr DObject *o; }; public: - TObjPtr() throw() - { - } + TObjPtr() = default; + TObjPtr(const TObjPtr &q) = default; + TObjPtr(T q) throw() : pp(q) { } - TObjPtr(const TObjPtr &q) throw() - : pp(q.pp) + T operator=(T q) { + pp = q; + return *this; } - T operator=(T q) throw() - { - return pp = q; - // The caller must now perform a write barrier. - } + operator T() throw() { return GC::ReadBarrier(pp); diff --git a/src/doomtype.h b/src/doomtype.h index 6e0ad770e..04fae16ff 100644 --- a/src/doomtype.h +++ b/src/doomtype.h @@ -103,7 +103,7 @@ enum struct PalEntry { - PalEntry () {} + PalEntry() = default; PalEntry (uint32_t argb) { d = argb; } operator uint32_t () const { return d; } void SetRGB(PalEntry other) @@ -146,6 +146,7 @@ struct PalEntry { return (d & 0xffffff) == 0xffffff; } + PalEntry &operator= (const PalEntry &other) = default; PalEntry &operator= (uint32_t other) { d = other; return *this; } PalEntry InverseColor() const { PalEntry nc; nc.a = a; nc.r = 255 - r; nc.g = 255 - g; nc.b = 255 - b; return nc; } #ifdef __BIG_ENDIAN__ @@ -205,7 +206,7 @@ class FTextureID friend void R_InitSpriteDefs(); public: - FTextureID() throw() {} + FTextureID() = default; bool isNull() const { return texnum == 0; } bool isValid() const { return texnum > 0; } bool Exists() const { return texnum >= 0; } diff --git a/src/gl/scene/gl_portal.cpp b/src/gl/scene/gl_portal.cpp index 62c2d21c7..6f721a7dc 100644 --- a/src/gl/scene/gl_portal.cpp +++ b/src/gl/scene/gl_portal.cpp @@ -399,7 +399,6 @@ void GLHorizonPortal::DrawContents(HWDrawInfo *hwdi) Clocker c(PortalAll); FMaterial * gltexture; - PalEntry color; player_t * player=&players[consoleplayer]; GLSectorPlane * sp = &origin->plane; auto &vp = di->Viewpoint; diff --git a/src/hwrenderer/dynlights/hw_aabbtree.cpp b/src/hwrenderer/dynlights/hw_aabbtree.cpp index 5df3c4ac7..3d2365bf9 100644 --- a/src/hwrenderer/dynlights/hw_aabbtree.cpp +++ b/src/hwrenderer/dynlights/hw_aabbtree.cpp @@ -228,7 +228,6 @@ int LevelAABBTree::GenerateTreeNode(int *lines, int num_lines, const FVector2 *c // Try sort at longest axis, then if that fails then the other one. // We place the sorted lines into work_buffer and then move the result back to the lines list when done. int left_count, right_count; - FVector2 axis; for (int attempt = 0; attempt < 2; attempt++) { // Find the sort plane for axis diff --git a/src/hwrenderer/textures/hw_material.cpp b/src/hwrenderer/textures/hw_material.cpp index 26276c7cf..905860204 100644 --- a/src/hwrenderer/textures/hw_material.cpp +++ b/src/hwrenderer/textures/hw_material.cpp @@ -319,7 +319,6 @@ void FMaterial::SetSpriteRect() bool FMaterial::TrimBorders(uint16_t *rect) { - PalEntry col; int w; int h; diff --git a/src/name.h b/src/name.h index 575e42d06..8dbb63444 100644 --- a/src/name.h +++ b/src/name.h @@ -46,7 +46,7 @@ class FString; class FName { public: - FName() = default;// : Index(0) {} + FName() = default; FName (const char *text) { Index = NameData.FindName (text, false); } FName (const char *text, bool noCreate) { Index = NameData.FindName (text, noCreate); } FName (const char *text, size_t textlen, bool noCreate) { Index = NameData.FindName (text, textlen, noCreate); } @@ -63,7 +63,7 @@ public: FName &operator = (const char *text) { Index = NameData.FindName (text, false); return *this; } FName &operator = (const FString &text); - FName &operator = (const FName &other) { Index = other.Index; return *this; } + FName &operator = (const FName &other) = default; FName &operator = (ENamedName index) { Index = index; return *this; } int SetName (const char *text, bool noCreate=false) { return Index = NameData.FindName (text, noCreate); } diff --git a/src/p_mobj.cpp b/src/p_mobj.cpp index 16396f29c..070745df4 100644 --- a/src/p_mobj.cpp +++ b/src/p_mobj.cpp @@ -2345,7 +2345,6 @@ double P_XYMovement (AActor *mo, DVector2 scroll) { static int pushtime = 0; bool bForceSlide = !scroll.isZero(); - DAngle Angle; DVector2 ptry; player_t *player; DVector2 move; diff --git a/src/p_slopes.cpp b/src/p_slopes.cpp index cec49003d..de5eeab7f 100644 --- a/src/p_slopes.cpp +++ b/src/p_slopes.cpp @@ -306,7 +306,7 @@ static void P_SetSlopesFromVertexHeights(FMapThing *firstmt, FMapThing *lastmt, { if (sec.Lines.Size() != 3) continue; // only works with triangular sectors - DVector3 vt1, vt2, vt3, cross; + DVector3 vt1, vt2, vt3; DVector3 vec1, vec2; int vi1, vi2, vi3; diff --git a/src/s_sound.h b/src/s_sound.h index 3a64ba76f..1d42cb2ae 100644 --- a/src/s_sound.h +++ b/src/s_sound.h @@ -114,15 +114,8 @@ public: { ID = S_FindSound(name.GetChars()); } - FSoundID(const FSoundID &other) - { - ID = other.ID; - } - FSoundID &operator=(const FSoundID &other) - { - ID = other.ID; - return *this; - } + FSoundID(const FSoundID &other) = default; + FSoundID &operator=(const FSoundID &other) = default; FSoundID &operator=(const char *name) { ID = S_FindSound(name); @@ -168,19 +161,7 @@ class FSoundIDNoInit : public FSoundID { public: FSoundIDNoInit() : FSoundID(NoInit) {} - - FSoundID &operator=(const FSoundID &other) - { - return FSoundID::operator=(other); - } - FSoundID &operator=(const char *name) - { - return FSoundID::operator=(name); - } - FSoundID &operator=(const FString &name) - { - return FSoundID::operator=(name); - } + using FSoundID::operator=; }; extern FRolloffInfo S_Rolloff; diff --git a/src/stats.h b/src/stats.h index 4eefdc9a9..ec963f534 100644 --- a/src/stats.h +++ b/src/stats.h @@ -57,12 +57,6 @@ public: class cycle_t { public: - cycle_t &operator= (const cycle_t &o) - { - Sec = o.Sec; - return *this; - } - void Reset() { Sec = 0; @@ -153,12 +147,6 @@ inline uint64_t rdtsc() class cycle_t { public: - cycle_t &operator= (const cycle_t &o) - { - Counter = o.Counter; - return *this; - } - void Reset() { Counter = 0; diff --git a/src/textures/texture.cpp b/src/textures/texture.cpp index bd259b8af..88ae5b176 100644 --- a/src/textures/texture.cpp +++ b/src/textures/texture.cpp @@ -961,8 +961,6 @@ PalEntry FTexture::averageColor(const uint32_t *data, int size, int maxout) PalEntry FTexture::GetSkyCapColor(bool bottom) { - PalEntry col; - if (!bSWSkyColorDone) { bSWSkyColorDone = true; diff --git a/src/vectors.h b/src/vectors.h index 65a30345f..002062f8c 100644 --- a/src/vectors.h +++ b/src/vectors.h @@ -66,19 +66,14 @@ struct TVector2 { vec_t X, Y; - TVector2 () - { - } + TVector2() = default; TVector2 (vec_t a, vec_t b) : X(a), Y(b) { } - TVector2 (const TVector2 &other) - : X(other.X), Y(other.Y) - { - } + TVector2(const TVector2 &other) = default; TVector2 (const TVector3 &other) // Copy the X and Y from the 3D vector and discard the Z : X(other.X), Y(other.Y) @@ -95,18 +90,7 @@ struct TVector2 return X == 0 && Y == 0; } - TVector2 &operator= (const TVector2 &other) - { - // This might seem backwards, but this helps produce smaller code when a newly - // created vector is assigned, because the components can just be popped off - // the FPU stack in order without the need for fxch. For platforms with a - // more sensible registered-based FPU, of course, the order doesn't matter. - // (And, yes, I know fxch can improve performance in the right circumstances, - // but this isn't one of those times. Here, it's little more than a no-op that - // makes the exe 2 bytes larger whenever you assign one vector to another.) - Y = other.Y, X = other.X; - return *this; - } + TVector2 &operator= (const TVector2 &other) = default; // Access X and Y as an array vec_t &operator[] (int index) @@ -317,9 +301,7 @@ struct TVector3 vec_t X, Y, Z; - TVector3 () - { - } + TVector3() = default; TVector3 (vec_t a, vec_t b, vec_t c) : X(a), Y(b), Z(c) @@ -331,10 +313,7 @@ struct TVector3 { } - TVector3 (const TVector3 &other) - : X(other.X), Y(other.Y), Z(other.Z) - { - } + TVector3(const TVector3 &other) = default; TVector3 (const Vector2 &xy, vec_t z) : X(xy.X), Y(xy.Y), Z(z) @@ -353,11 +332,7 @@ struct TVector3 return X == 0 && Y == 0 && Z == 0; } - TVector3 &operator= (const TVector3 &other) - { - Z = other.Z, Y = other.Y, X = other.X; - return *this; - } + TVector3 &operator= (const TVector3 &other) = default; // Access X and Y and Z as an array vec_t &operator[] (int index) @@ -546,13 +521,12 @@ struct TVector3 { right = { 0.f, 0.f, 1.f }; } - - if (major == 1 || (major == 2 && n[2] > 0.f)) + else if (major == 1 || (major == 2 && n[2] > 0.f)) { right = { 1.f, 0.f, 0.f }; } - - if (major == 2 && n[2] < 0.0f) + // Unconditional to ease static analysis + else // major == 2 && n[2] <= 0.0f { right = { -1.f, 0.f, 0.f }; } @@ -662,9 +636,7 @@ struct TVector4 vec_t X, Y, Z, W; - TVector4() - { - } + TVector4() = default; TVector4(vec_t a, vec_t b, vec_t c, vec_t d) : X(a), Y(b), Z(c), W(d) @@ -676,10 +648,7 @@ struct TVector4 { } - TVector4(const TVector4 &other) - : X(other.X), Y(other.Y), Z(other.Z), W(other.W) - { - } + TVector4(const TVector4 &other) = default; TVector4(const Vector3 &xyz, vec_t w) : X(xyz.X), Y(xyz.Y), Z(xyz.Z), W(w) @@ -696,11 +665,7 @@ struct TVector4 return X == 0 && Y == 0 && Z == 0 && W == 0; } - TVector4 &operator= (const TVector4 &other) - { - W = other.W, Z = other.Z, Y = other.Y, X = other.X; - return *this; - } + TVector4 &operator= (const TVector4 &other) = default; // Access X and Y and Z as an array vec_t &operator[] (int index) @@ -939,16 +904,8 @@ struct TMatrix3x3 vec_t Cells[3][3]; - TMatrix3x3() - { - } - - TMatrix3x3(const TMatrix3x3 &other) - { - (*this)[0] = other[0]; - (*this)[1] = other[1]; - (*this)[2] = other[2]; - } + TMatrix3x3() = default; + TMatrix3x3(const TMatrix3x3 &other) = default; TMatrix3x3(const Vector3 &row1, const Vector3 &row2, const Vector3 &row3) { @@ -1151,32 +1108,15 @@ struct TAngle TAngle &operator= (long other) = delete; TAngle &operator= (unsigned long other) = delete; - TAngle () - { - } + TAngle() = default; TAngle (vec_t amt) : Degrees(amt) { } - /* - TAngle (int amt) - : Degrees(vec_t(amt)) - { - } - */ - - TAngle (const TAngle &other) - : Degrees(other.Degrees) - { - } - - TAngle &operator= (const TAngle &other) - { - Degrees = other.Degrees; - return *this; - } + TAngle(const TAngle &other) = default; + TAngle &operator= (const TAngle &other) = default; TAngle &operator= (double other) { @@ -1491,25 +1431,15 @@ struct TRotator Angle Roll; // rotation about the forward axis. Angle CamRoll; // Roll specific to actor cameras. Used by quakes. - TRotator () - { - } + TRotator() = default; TRotator (const Angle &p, const Angle &y, const Angle &r) : Pitch(p), Yaw(y), Roll(r) { } - TRotator (const TRotator &other) - : Pitch(other.Pitch), Yaw(other.Yaw), Roll(other.Roll) - { - } - - TRotator &operator= (const TRotator &other) - { - Roll = other.Roll, Yaw = other.Yaw, Pitch = other.Pitch; - return *this; - } + TRotator(const TRotator &other) = default; + TRotator &operator= (const TRotator &other) = default; // Access angles as an array Angle &operator[] (int index) diff --git a/src/zstring.cpp b/src/zstring.cpp index 5e57df45b..ff17fd607 100644 --- a/src/zstring.cpp +++ b/src/zstring.cpp @@ -580,7 +580,7 @@ long FString::LastIndexOfAny (const char *charset, long endIndex) const long FString::LastIndexOf (const FString &substr) const { - return LastIndexOf(substr.Chars, Len() - substr.Len(), substr.Len()); + return LastIndexOf(substr.Chars, long(Len() - substr.Len()), substr.Len()); } long FString::LastIndexOf (const FString &substr, long endIndex) const @@ -590,7 +590,7 @@ long FString::LastIndexOf (const FString &substr, long endIndex) const long FString::LastIndexOf (const char *substr) const { - return LastIndexOf(substr, Len() - strlen(substr), strlen(substr)); + return LastIndexOf(substr, long(Len() - strlen(substr)), strlen(substr)); } long FString::LastIndexOf (const char *substr, long endIndex) const @@ -602,7 +602,7 @@ long FString::LastIndexOf (const char *substr, long endIndex, size_t substrlen) { if ((size_t)endIndex + substrlen > Len()) { - endIndex = Len() - substrlen; + endIndex = long(Len() - substrlen); } while (endIndex >= 0) {