From 2b9c4e88fea973a76e052ae64d2bb5c60d4e6e87 Mon Sep 17 00:00:00 2001 From: Denis Pauk Date: Sun, 17 Mar 2024 15:08:41 +0200 Subject: [PATCH] soft: fix cppcheck warnings, remove unused isflattop --- README.md | 25 +++++++++--------- src/client/refresh/files/models.c | 4 +-- src/client/refresh/soft/sw_alias.c | 2 +- src/client/refresh/soft/sw_bsp.c | 7 +++-- src/client/refresh/soft/sw_draw.c | 36 +++++++++++++------------ src/client/refresh/soft/sw_edge.c | 8 +++--- src/client/refresh/soft/sw_image.c | 6 ++--- src/client/refresh/soft/sw_poly.c | 27 +++++++++---------- src/client/refresh/soft/sw_polyset.c | 39 ++++++++++++++-------------- src/client/refresh/soft/sw_rast.c | 13 ++++------ src/client/refresh/soft/sw_scan.c | 31 +++++++++++----------- src/client/refresh/soft/sw_surf.c | 3 ++- 12 files changed, 102 insertions(+), 99 deletions(-) diff --git a/README.md b/README.md index ea6d4b6d..0a46a2fa 100644 --- a/README.md +++ b/README.md @@ -29,22 +29,21 @@ State: Monsters: * incorrect dead animation for Arachnid, - * broken fire effect for Guardian, - * incorrect skin in soft render for Wizard mdl model. + * broken fire effect for Guardian. Models support: -| Format | Original Game | Frame vertex | Comments | -| ------ | --------------- | ------------ | ------------------------------------------------- | -| mdl | Quake 1 | 8 bit | unsupported grouped textures | -| md2 | Quake 2 | 8 bit | full support | -| md2 | Anachronox | 8/10/16 bit | does no suport tagged surfaces | -| mdx | Kingpin | 8 bit | unchecked with game | -| fm | Heretic 2 | 8 bit | show all meshes | -| dkm | Daikatana DKM1 | 8 bit | unchecked with game | -| dkm | Daikatana DKM2 | 10 bit | unchecked with game | -| md3 | Quake 3 | 16 bit | show all meshes, no tags support, unchecked | -| md5 | Doom 3/Quake 4 | float | requires md2 for skins, show all meshes | +| Format | Original Game | Frame vertex | Meshes | Comments | +| ------ | --------------- | ------------ | ------ | --------------------------------------- | +| mdl | Quake 1 | 8 bit | Single | Unsupported grouped textures | +| md2 | Quake 2 | 8 bit | Single | | +| md2 | Anachronox | 8/10/16 bit | Single | No tagged surfaces, unchecked with game | +| mdx | Kingpin | 8 bit | Many | No sfx support, unchecked with game | +| fm | Heretic 2 | 8 bit | Many | | +| dkm | Daikatana DKM1 | 8 bit | Many | Unchecked with game | +| dkm | Daikatana DKM2 | 10 bit | Many | Unchecked with game | +| md3 | Quake 3 | 16 bit | Many | No tags support | +| md5 | Doom 3/Quake 4 | float | Many | Requires md2 for skins | All models support only single texture for all meshes and only up to 255 frames. diff --git a/src/client/refresh/files/models.c b/src/client/refresh/files/models.c index c89c886d..934223dd 100644 --- a/src/client/refresh/files/models.c +++ b/src/client/refresh/files/models.c @@ -415,10 +415,10 @@ Mod_LoadDKMTriangleList(dmdx_t *pheader, const dkmtriangle_t *pintri) for (i = 0; i < pheader->num_tris; i++) { - int j; - if (pintri[i].mesh_id == m) { + int j; + for (j = 0; j < 3; j++) { pouttri->index_xyz[j] = LittleShort(pintri[i].index_xyz[j]); diff --git a/src/client/refresh/soft/sw_alias.c b/src/client/refresh/soft/sw_alias.c index 6a66e6ad..ae7433c2 100644 --- a/src/client/refresh/soft/sw_alias.c +++ b/src/client/refresh/soft/sw_alias.c @@ -476,7 +476,7 @@ R_AliasPreparePoints(const entity_t *currententity, finalvert_t *verts, const fi for (i = 0; i < num_mesh_nodes; i++) { - dtriangle_t *ptri; + const dtriangle_t *ptri; int num_tris; num_tris = Q_min(s_pmdl->num_tris - mesh_nodes[i].ofs_tris, mesh_nodes[i].num_tris); diff --git a/src/client/refresh/soft/sw_bsp.c b/src/client/refresh/soft/sw_bsp.c index c4af85cb..ad6ad2ac 100644 --- a/src/client/refresh/soft/sw_bsp.c +++ b/src/client/refresh/soft/sw_bsp.c @@ -486,10 +486,13 @@ R_RecursiveWorldNode (entity_t *currententity, const model_t *currentmodel, mnod int i; for (i=0 ; i<4 ; i++) { - int *pindex; + const int *pindex; float d; - if (! (clipflags & (1<asset_width; *h = image->asset_height; } @@ -237,11 +238,14 @@ RE_Draw_StretchPicImplementation (int x, int y, int w, int h, const image_t *pic dest[u] = source[f>>16]; f += fstep; } + if (picupscale > 1) { - int i; - int pu = Q_min(height-v, picupscale); - pixel_t *dest_orig = dest; + const pixel_t *dest_orig; + int pu, i; + + pu = Q_min(height-v, picupscale); + dest_orig = dest; // copy first line to fill whole sector for (i=1; i < pu; i++) @@ -309,7 +313,7 @@ RE_Draw_StretchPic void RE_Draw_StretchPic (int x, int y, int w, int h, const char *name) { - image_t *pic; + const image_t *pic; pic = R_FindPic (name, (findimage_t)R_FindImage); if (!pic) @@ -317,6 +321,7 @@ RE_Draw_StretchPic (int x, int y, int w, int h, const char *name) R_Printf(PRINT_ALL, "Can't find pic: %s\n", name); return; } + RE_Draw_StretchPicImplementation (x, y, w, h, pic); } @@ -387,7 +392,7 @@ Draw_Pic void RE_Draw_PicScaled(int x, int y, const char *name, float scale) { - image_t *pic; + const image_t *pic; pic = R_FindPic (name, (findimage_t)R_FindImage); if (!pic) @@ -413,11 +418,10 @@ refresh window. void RE_Draw_TileClear (int x, int y, int w, int h, const char *name) { - int i, j; - byte *psrc; - pixel_t *pdest; - image_t *pic; - int x2; + const byte *psrc; + pixel_t *pdest; + int i, j, x2; + image_t *pic; if (x < 0) { diff --git a/src/client/refresh/soft/sw_edge.c b/src/client/refresh/soft/sw_edge.c index 26def18b..18fc2069 100644 --- a/src/client/refresh/soft/sw_edge.c +++ b/src/client/refresh/soft/sw_edge.c @@ -60,7 +60,7 @@ float scale_for_mip; static void R_GenerateSpans (void); static void R_GenerateSpansBackward (void); -static void R_TrailingEdge (surf_t *surf, edge_t *edge); +static void R_TrailingEdge (surf_t *surf, const edge_t *edge); /* =============================================================================== @@ -328,7 +328,7 @@ R_TrailingEdge ============== */ static void -R_TrailingEdge (surf_t *surf, edge_t *edge) +R_TrailingEdge(surf_t *surf, const edge_t *edge) { // don't generate a span if this is an inverted span, with the end // edge preceding the start edge (that is, we haven't seen the @@ -582,7 +582,7 @@ R_GenerateSpansBackward (void) R_CleanupSpan (); } -static void D_DrawSurfaces (entity_t *currententity, surf_t *surface); +static void D_DrawSurfaces (entity_t *currententity, const surf_t *surface); /* ============== @@ -1029,7 +1029,7 @@ May be called more than once a frame if the surf list overflows (higher res) ============== */ static void -D_DrawSurfaces (entity_t *currententity, surf_t *surface) +D_DrawSurfaces(entity_t *currententity, const surf_t *surface) { VectorSubtract (r_origin, vec3_origin, modelorg); TransformVector (modelorg, transformed_modelorg); diff --git a/src/client/refresh/soft/sw_image.c b/src/client/refresh/soft/sw_image.c index 3a58c8ac..ad87dfd1 100644 --- a/src/client/refresh/soft/sw_image.c +++ b/src/client/refresh/soft/sw_image.c @@ -88,7 +88,7 @@ R_ImageList_f (void) //======================================================= static image_t * -R_FindFreeImage(char *name) +R_FindFreeImage(const char *name) { image_t *image; int i; @@ -256,7 +256,7 @@ R_LoadPic8 ================ */ static image_t * -R_LoadPic8 (char *name, byte *pic, int width, int realwidth, int height, int realheight, +R_LoadPic8(const char *name, const byte *pic, int width, int realwidth, int height, int realheight, size_t data_size, imagetype_t type) { image_t *image; @@ -340,7 +340,7 @@ R_LoadPic(char *name, byte *pic, int width, int realwidth, int height, int realh realheight = height; } - if (data_size <= 0 || !width || !height) + if (!data_size || !width || !height) { return NULL; } diff --git a/src/client/refresh/soft/sw_poly.c b/src/client/refresh/soft/sw_poly.c index dcfb8fde..957738df 100644 --- a/src/client/refresh/soft/sw_poly.c +++ b/src/client/refresh/soft/sw_poly.c @@ -768,10 +768,10 @@ R_PolygonDrawSpans(espan_t *pspan, int iswater, float d_ziorigin, float d_zistep static void R_PolygonScanLeftEdge (espan_t *s_polygon_spans) { - int i, lmaxindex; - emitpoint_t *pvert, *pnext; - espan_t *pspan; - float du, dv, vtop, u_step; + const emitpoint_t *pvert, *pnext; + float du, dv, vtop, u_step; + int i, lmaxindex; + espan_t *pspan; pspan = s_polygon_spans; i = s_minindex; @@ -837,10 +837,11 @@ R_PolygonScanLeftEdge (espan_t *s_polygon_spans) static void R_PolygonScanRightEdge(espan_t *s_polygon_spans) { - int i; - emitpoint_t *pvert, *pnext; - espan_t *pspan; - float du, dv, vtop, u_step, uvert, unext, vvert; + float du, dv, vtop, u_step, uvert, unext, vvert; + const emitpoint_t *pnext; + emitpoint_t *pvert; + espan_t *pspan; + int i; pspan = s_polygon_spans; i = s_minindex; @@ -1037,11 +1038,11 @@ R_ClipAndDrawPoly ( float alpha, int isturbulent, qboolean textured ) static void R_BuildPolygonFromSurface(const entity_t *currententity, const model_t *currentmodel, msurface_t *fa) { - int i, lnumverts; - medge_t *pedges, *r_pedge; - float *vec; - vec5_t *pverts; - float tmins[2] = { 0, 0 }; + medge_t *pedges, *r_pedge; + float tmins[2] = { 0, 0 }; + int i, lnumverts; + const float *vec; + vec5_t *pverts; r_polydesc.nump = 0; diff --git a/src/client/refresh/soft/sw_polyset.c b/src/client/refresh/soft/sw_polyset.c index c6db1032..ba35f3ef 100644 --- a/src/client/refresh/soft/sw_polyset.c +++ b/src/client/refresh/soft/sw_polyset.c @@ -26,7 +26,6 @@ #include typedef struct { - int isflattop; int numleftedges; compactvert_t *pleftedgevert0; compactvert_t *pleftedgevert1; @@ -46,18 +45,18 @@ static int d_xdenom; static edgetable *pedgetable; static edgetable edgetables[12] = { - {0, 1, &r_p0, &r_p2, NULL, 2, &r_p0, &r_p1, &r_p2}, - {0, 2, &r_p1, &r_p0, &r_p2, 1, &r_p1, &r_p2, NULL}, - {1, 1, &r_p0, &r_p2, NULL, 1, &r_p1, &r_p2, NULL}, - {0, 1, &r_p1, &r_p0, NULL, 2, &r_p1, &r_p2, &r_p0}, - {0, 2, &r_p0, &r_p2, &r_p1, 1, &r_p0, &r_p1, NULL}, - {0, 1, &r_p2, &r_p1, NULL, 1, &r_p2, &r_p0, NULL}, - {0, 1, &r_p2, &r_p1, NULL, 2, &r_p2, &r_p0, &r_p1}, - {0, 2, &r_p2, &r_p1, &r_p0, 1, &r_p2, &r_p0, NULL}, - {0, 1, &r_p1, &r_p0, NULL, 1, &r_p1, &r_p2, NULL}, - {1, 1, &r_p2, &r_p1, NULL, 1, &r_p0, &r_p1, NULL}, - {1, 1, &r_p1, &r_p0, NULL, 1, &r_p2, &r_p0, NULL}, - {0, 1, &r_p0, &r_p2, NULL, 1, &r_p0, &r_p1, NULL}, + {1, &r_p0, &r_p2, NULL, 2, &r_p0, &r_p1, &r_p2}, + {2, &r_p1, &r_p0, &r_p2, 1, &r_p1, &r_p2, NULL}, + {1, &r_p0, &r_p2, NULL, 1, &r_p1, &r_p2, NULL}, + {1, &r_p1, &r_p0, NULL, 2, &r_p1, &r_p2, &r_p0}, + {2, &r_p0, &r_p2, &r_p1, 1, &r_p0, &r_p1, NULL}, + {1, &r_p2, &r_p1, NULL, 1, &r_p2, &r_p0, NULL}, + {1, &r_p2, &r_p1, NULL, 2, &r_p2, &r_p0, &r_p1}, + {2, &r_p2, &r_p1, &r_p0, 1, &r_p2, &r_p0, NULL}, + {1, &r_p1, &r_p0, NULL, 1, &r_p1, &r_p2, NULL}, + {1, &r_p2, &r_p1, NULL, 1, &r_p0, &r_p1, NULL}, + {1, &r_p1, &r_p0, NULL, 1, &r_p2, &r_p0, NULL}, + {1, &r_p0, &r_p2, NULL, 1, &r_p0, &r_p1, NULL}, }; // FIXME: some of these can become statics @@ -778,12 +777,12 @@ R_RasterizeAliasPolySmooth static void R_RasterizeAliasPolySmooth(const entity_t *currententity) { - int initialleftheight, initialrightheight; - compactvert_t *plefttop, *prighttop, *pleftbottom, *prightbottom; - light3_t working_lstepx; - int originalcount; - int u, v; - pixel_t *d_ptex; + const compactvert_t *pleftbottom, *prightbottom; + int initialleftheight, initialrightheight; + const compactvert_t *plefttop, *prighttop; + light3_t working_lstepx; + int originalcount, u, v; + pixel_t *d_ptex; plefttop = pedgetable->pleftedgevert0; prighttop = pedgetable->prightedgevert0; @@ -995,7 +994,7 @@ R_PolysetSetEdgeTable ================ */ static void -R_PolysetSetEdgeTable (void) +R_PolysetSetEdgeTable(void) { int edgetableindex; diff --git a/src/client/refresh/soft/sw_rast.c b/src/client/refresh/soft/sw_rast.c index 621dcb70..8ca67bce 100644 --- a/src/client/refresh/soft/sw_rast.c +++ b/src/client/refresh/soft/sw_rast.c @@ -205,14 +205,11 @@ R_EmitEdge static void R_EmitEdge (mvertex_t *pv0, mvertex_t *pv1, medge_t *r_pedge, qboolean r_nearzionly) { - edge_t *edge, *pcheck; - int u_check; - float u, u_step; - vec3_t local, transformed; - float *world; - int v, v2, ceilv0; - float scale, lzi0, u0, v0; - int side; + float u, u_step, scale, lzi0, u0, v0; + int u_check, v, v2, ceilv0, side; + vec3_t local, transformed; + edge_t *edge, *pcheck; + const float *world; if (r_lastvertvalid) { diff --git a/src/client/refresh/soft/sw_scan.c b/src/client/refresh/soft/sw_scan.c index 5de9689e..75703655 100644 --- a/src/client/refresh/soft/sw_scan.c +++ b/src/client/refresh/soft/sw_scan.c @@ -40,11 +40,10 @@ the sine warp, to keep the edges from wrapping void D_WarpScreen (void) { - int w, h; - int u,v; - pixel_t *dest; - int *turb; - byte **row; + const int *turb; + int w, h, u,v; + pixel_t *dest; + byte **row; static int cached_width, cached_height; @@ -79,7 +78,7 @@ D_WarpScreen (void) for (v=0 ; v