AI Slop Code RIsk Monitor

SFTtech/openage

Clone of the Age of Empires II engine 🚀

16.7 Elevated pattern signal View on GitHub

Maintenance and Governance Review

This report summarizes scanner evidence for SFTtech/openage, a Python project with 14,496 GitHub stars. SynthScan examined 189,733 lines of code across 1433 source files, recording 1496 pattern matches distributed across 15 syntactic categories. The legacy adjusted pattern signal is 16.7 (Elevated pattern signal); it is not an authorship estimate.

Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.

16.7
Adjusted Signal
16.7
Raw Pattern Score
100%
Time Factor
2026-10-03
Last Push
14.5K
Stars
Python
Language
189.7K
Lines of Code
1.4K
Files
1.5K
Pattern Hits
2026-10-12
Scan Date
0.12
HC Hit Rate

Risk Review · v3

Use each vector to guide manual verification of the underlying findings.

Cognitive Ownership Risk 13.5/100 · LOW

Can maintainers explain intent, assumptions, and trade-offs? 488 finding(s).

Hallucinated Dependency & Supply Chain Risk 3.7/100 · LOW

Are imports declared and package/API names verified? 148 finding(s).

Agent Over-Engineering Ratio 49.4/100 · MEDIUM

Are wrappers, guards, and repeated structures necessary? 986 finding(s).

PR Review Velocity Impact 62.7/100 · HIGH

Which changes need focused human review? 1496 finding(s).

What These Metrics Mean

Adjusted Signal
Legacy pattern score normalized per 1,000 scanned lines and multiplied by the repository-level time factor. It is not an estimate of AI authorship.
Raw Pattern Score
Sum of severity- and context-weighted pattern findings before applying the time factor.
Time Factor
A coarse multiplier based on repository last-push metadata. It does not identify when individual code was written.
Pattern Hits
Count of configured pattern findings. Review each location and surrounding code before acting.
HC Hit Rate
High- and critical-severity findings per scanned file. Severity is a configured detector weight, not proof of a vulnerability or authorship.
Lines / Files
Scan coverage denominators used by the legacy normalized score.

Pattern-Signal History

This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.

Severity Breakdown

Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.

CRITICAL 0HIGH 168MEDIUM 705LOW 623

Directory Score Breakdown

This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.

Pattern Findings

The scanner identified 1496 distinct pattern matches across 15 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.

Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.

Decorative Section Separators666 hits · 1607 pts
SeverityFileLineSnippetContext
MEDIUM…onvert/processor/conversion/ror/pregen_subprocessor.py83 # =======================================================================COMMENT
MEDIUM…onvert/processor/conversion/ror/pregen_subprocessor.py85 # =======================================================================COMMENT
MEDIUM⚡…/convert/processor/conversion/ror/nyan_subprocessor.py183 # =======================================================================COMMENT
MEDIUM⚡…/convert/processor/conversion/ror/nyan_subprocessor.py185 # =======================================================================COMMENT
MEDIUM⚡…/convert/processor/conversion/ror/nyan_subprocessor.py189 # =======================================================================COMMENT
MEDIUM⚡…/convert/processor/conversion/ror/nyan_subprocessor.py322 # =======================================================================COMMENT
MEDIUM⚡…/convert/processor/conversion/ror/nyan_subprocessor.py324 # =======================================================================COMMENT
MEDIUM⚡…/convert/processor/conversion/ror/nyan_subprocessor.py334 # =======================================================================COMMENT
MEDIUM⚡…/convert/processor/conversion/ror/nyan_subprocessor.py336 # =======================================================================COMMENT
MEDIUM⚡…/convert/processor/conversion/ror/nyan_subprocessor.py341 # =======================================================================COMMENT
MEDIUM⚡…/convert/processor/conversion/ror/nyan_subprocessor.py343 # =======================================================================COMMENT
MEDIUM⚡…/convert/processor/conversion/ror/nyan_subprocessor.py371 # =======================================================================COMMENT
MEDIUM⚡…/convert/processor/conversion/ror/nyan_subprocessor.py373 # =======================================================================COMMENT
MEDIUM⚡…/convert/processor/conversion/ror/nyan_subprocessor.py379 # =======================================================================COMMENT
MEDIUM⚡…/convert/processor/conversion/ror/nyan_subprocessor.py458 # =======================================================================COMMENT
MEDIUM⚡…/convert/processor/conversion/ror/nyan_subprocessor.py460 # =======================================================================COMMENT
MEDIUM⚡…/convert/processor/conversion/ror/nyan_subprocessor.py463 # =======================================================================COMMENT
MEDIUM⚡…/convert/processor/conversion/ror/nyan_subprocessor.py465 # =======================================================================COMMENT
MEDIUM⚡…/convert/processor/conversion/ror/nyan_subprocessor.py468 # =======================================================================COMMENT
MEDIUM⚡…/convert/processor/conversion/ror/nyan_subprocessor.py470 # =======================================================================COMMENT
MEDIUM⚡…/convert/processor/conversion/ror/nyan_subprocessor.py499 # =======================================================================COMMENT
MEDIUM⚡…/convert/processor/conversion/ror/nyan_subprocessor.py501 # =======================================================================COMMENT
MEDIUM⚡…/convert/processor/conversion/ror/nyan_subprocessor.py504 # =======================================================================COMMENT
MEDIUM⚡…/convert/processor/conversion/ror/nyan_subprocessor.py545 # =======================================================================COMMENT
MEDIUM⚡…/convert/processor/conversion/ror/nyan_subprocessor.py547 # =======================================================================COMMENT
MEDIUM⚡…/convert/processor/conversion/ror/nyan_subprocessor.py550 # =======================================================================COMMENT
MEDIUM⚡…/convert/processor/conversion/ror/nyan_subprocessor.py552 # =======================================================================COMMENT
MEDIUM⚡…/convert/processor/conversion/ror/nyan_subprocessor.py557 # =======================================================================COMMENT
MEDIUM⚡…/convert/processor/conversion/ror/nyan_subprocessor.py559 # =======================================================================COMMENT
MEDIUM⚡…/convert/processor/conversion/ror/nyan_subprocessor.py600 # =======================================================================COMMENT
MEDIUM⚡…/convert/processor/conversion/ror/nyan_subprocessor.py602 # =======================================================================COMMENT
MEDIUM⚡…/convert/processor/conversion/ror/nyan_subprocessor.py605 # =======================================================================COMMENT
MEDIUM⚡…/convert/processor/conversion/ror/nyan_subprocessor.py607 # =======================================================================COMMENT
MEDIUM⚡…/convert/processor/conversion/ror/nyan_subprocessor.py664 # =======================================================================COMMENT
MEDIUM⚡…/convert/processor/conversion/ror/nyan_subprocessor.py666 # =======================================================================COMMENT
MEDIUM⚡…/convert/processor/conversion/ror/nyan_subprocessor.py671 # =======================================================================COMMENT
MEDIUM⚡…/convert/processor/conversion/ror/nyan_subprocessor.py673 # =======================================================================COMMENT
MEDIUM⚡…/convert/processor/conversion/ror/nyan_subprocessor.py943 # =======================================================================COMMENT
MEDIUM⚡…/convert/processor/conversion/ror/nyan_subprocessor.py945 # =======================================================================COMMENT
MEDIUM⚡…/convert/processor/conversion/ror/nyan_subprocessor.py948 # =======================================================================COMMENT
MEDIUM⚡…/convert/processor/conversion/ror/nyan_subprocessor.py950 # =======================================================================COMMENT
MEDIUM⚡…/convert/processor/conversion/ror/nyan_subprocessor.py955 # =======================================================================COMMENT
MEDIUM⚡…/convert/processor/conversion/ror/nyan_subprocessor.py957 # =======================================================================COMMENT
MEDIUM⚡…/convert/processor/conversion/ror/nyan_subprocessor.py961 # =======================================================================COMMENT
MEDIUM⚡…/convert/processor/conversion/ror/nyan_subprocessor.py963 # =======================================================================COMMENT
MEDIUM⚡…/convert/processor/conversion/ror/nyan_subprocessor.py999 # =======================================================================COMMENT
MEDIUM⚡…/convert/processor/conversion/ror/nyan_subprocessor.py1001 # =======================================================================COMMENT
MEDIUM⚡…/convert/processor/conversion/ror/nyan_subprocessor.py1007 # =======================================================================COMMENT
MEDIUM⚡…/convert/processor/conversion/ror/nyan_subprocessor.py1009 # =======================================================================COMMENT
MEDIUM⚡…/convert/processor/conversion/ror/nyan_subprocessor.py1023 # =======================================================================COMMENT
MEDIUM⚡…/convert/processor/conversion/ror/nyan_subprocessor.py1025 # =======================================================================COMMENT
MEDIUM⚡…/convert/processor/conversion/ror/nyan_subprocessor.py1032 # =======================================================================COMMENT
MEDIUM⚡…/convert/processor/conversion/ror/nyan_subprocessor.py1034 # =======================================================================COMMENT
MEDIUM…/convert/processor/conversion/ror/nyan_subprocessor.py206 # =======================================================================COMMENT
MEDIUM…/convert/processor/conversion/ror/nyan_subprocessor.py208 # =======================================================================COMMENT
MEDIUM…/convert/processor/conversion/ror/nyan_subprocessor.py400 # =======================================================================COMMENT
MEDIUM…/convert/processor/conversion/ror/nyan_subprocessor.py402 # =======================================================================COMMENT
MEDIUM…/convert/processor/conversion/ror/nyan_subprocessor.py519 # =======================================================================COMMENT
MEDIUM…/convert/processor/conversion/ror/nyan_subprocessor.py521 # =======================================================================COMMENT
MEDIUM…/convert/processor/conversion/ror/nyan_subprocessor.py622 # =======================================================================COMMENT
606 more matches not shown…
Cross-File Repetition156 hits · 780 pts
SeverityFileLineSnippetContext
HIGH…e/convert/entity_object/conversion/combined_terrain.py0return the sound file location relative to where the file is expected to be in the modpack.STRING
HIGH…ge/convert/entity_object/conversion/combined_sprite.py0return the sound file location relative to where the file is expected to be in the modpack.STRING
HIGH…age/convert/entity_object/conversion/combined_sound.py0return the sound file location relative to where the file is expected to be in the modpack.STRING
HIGH…age/convert/entity_object/conversion/ror/genie_tech.py0upgrades attributes of units/buildings or other stats in the game.STRING
HIGH…/convert/entity_object/conversion/swgbcc/genie_tech.py0upgrades attributes of units/buildings or other stats in the game.STRING
HIGH…age/convert/entity_object/conversion/aoc/genie_tech.py0upgrades attributes of units/buildings or other stats in the game.STRING
HIGH…nvert/entity_object/export/formats/terrain_metadata.py0set the scale factor of the animation. :param factor: factor by which sprite images are scaled down at default zoom leveSTRING
HIGH…onvert/entity_object/export/formats/blmask_metadata.py0set the scale factor of the animation. :param factor: factor by which sprite images are scaled down at default zoom leveSTRING
HIGH…onvert/entity_object/export/formats/sprite_metadata.py0set the scale factor of the animation. :param factor: factor by which sprite images are scaled down at default zoom leveSTRING
HIGH…/convert/processor/conversion/ror/tech_subprocessor.py0returns the patches for a converter group, depending on the type of its effects.STRING
HIGH…nvert/processor/conversion/swgbcc/tech_subprocessor.py0returns the patches for a converter group, depending on the type of its effects.STRING
HIGH…/convert/processor/conversion/aoc/tech_subprocessor.py0returns the patches for a converter group, depending on the type of its effects.STRING
HIGH…/convert/processor/conversion/de2/tech_subprocessor.py0returns the patches for a converter group, depending on the type of its effects.STRING
HIGH…/convert/processor/conversion/ror/tech_subprocessor.py0creates the patches for modifying attributes of entities.STRING
HIGH…nvert/processor/conversion/swgbcc/tech_subprocessor.py0creates the patches for modifying attributes of entities.STRING
HIGH…/convert/processor/conversion/aoc/tech_subprocessor.py0creates the patches for modifying attributes of entities.STRING
HIGH…/convert/processor/conversion/de2/tech_subprocessor.py0creates the patches for modifying attributes of entities.STRING
HIGH…nvert/processor/conversion/ror/modpack_subprocessor.py0organize export data (nyan objects, media, scripts, etc.) into modpacks.STRING
HIGH…nvert/processor/conversion/de1/modpack_subprocessor.py0organize export data (nyan objects, media, scripts, etc.) into modpacks.STRING
HIGH…onvert/processor/conversion/hd/modpack_subprocessor.py0organize export data (nyan objects, media, scripts, etc.) into modpacks.STRING
HIGH…rt/processor/conversion/swgbcc/modpack_subprocessor.py0organize export data (nyan objects, media, scripts, etc.) into modpacks.STRING
HIGH…nvert/processor/conversion/aoc/modpack_subprocessor.py0organize export data (nyan objects, media, scripts, etc.) into modpacks.STRING
HIGH…nvert/processor/conversion/de2/modpack_subprocessor.py0organize export data (nyan objects, media, scripts, etc.) into modpacks.STRING
HIGH…/processor/conversion/aoc_demo/modpack_subprocessor.py0organize export data (nyan objects, media, scripts, etc.) into modpacks.STRING
HIGH…nvert/processor/conversion/ror/modpack_subprocessor.py0return all modpacks that can be created from the gamedata.STRING
HIGH…nvert/processor/conversion/de1/modpack_subprocessor.py0return all modpacks that can be created from the gamedata.STRING
HIGH…onvert/processor/conversion/hd/modpack_subprocessor.py0return all modpacks that can be created from the gamedata.STRING
HIGH…rt/processor/conversion/swgbcc/modpack_subprocessor.py0return all modpacks that can be created from the gamedata.STRING
HIGH…nvert/processor/conversion/aoc/modpack_subprocessor.py0return all modpacks that can be created from the gamedata.STRING
HIGH…nvert/processor/conversion/de2/modpack_subprocessor.py0return all modpacks that can be created from the gamedata.STRING
HIGH…/processor/conversion/aoc_demo/modpack_subprocessor.py0return all modpacks that can be created from the gamedata.STRING
HIGH…essor/conversion/ror/upgrade_attribute_subprocessor.py0creates a patch for the starting popspace modify effect (id: 4). :param converter_group: tech/civ that gets the patch. :STRING
HIGH…sor/conversion/swgbcc/upgrade_resource_subprocessor.py0creates a patch for the starting popspace modify effect (id: 4). :param converter_group: tech/civ that gets the patch. :STRING
HIGH…cessor/conversion/aoc/upgrade_resource_subprocessor.py0creates a patch for the starting popspace modify effect (id: 4). :param converter_group: tech/civ that gets the patch. :STRING
HIGH…onvert/processor/conversion/ror/pregen_subprocessor.py0creates nyan objects for things that are hardcoded into the genie engine, but configurable in openage. e.g. hp.STRING
HIGH…ert/processor/conversion/swgbcc/pregen_subprocessor.py0creates nyan objects for things that are hardcoded into the genie engine, but configurable in openage. e.g. hp.STRING
HIGH…e/convert/processor/conversion/aoc/pregen_processor.py0creates nyan objects for things that are hardcoded into the genie engine, but configurable in openage. e.g. hp.STRING
HIGH…onvert/processor/conversion/ror/pregen_subprocessor.py0generate pathtype objects. :param full_data_set: genieobjectcontainer instance that contains all relevant data for the cSTRING
HIGH…e/convert/processor/conversion/aoc/pregen_processor.py0generate pathtype objects. :param full_data_set: genieobjectcontainer instance that contains all relevant data for the cSTRING
HIGH…ert/processor/conversion/swgbcc/pregen_subprocessor.py0generate pathtype objects. :param full_data_set: genieobjectcontainer instance that contains all relevant data for the cSTRING
HIGH…cessor/conversion/ror/upgrade_resource_subprocessor.py0creates a patch for the bengali conversion resistance effect (id: 262). :param converter_group: tech/civ that gets the pSTRING
HIGH…sor/conversion/swgbcc/upgrade_resource_subprocessor.py0creates a patch for the bengali conversion resistance effect (id: 262). :param converter_group: tech/civ that gets the pSTRING
HIGH…cessor/conversion/aoc/upgrade_resource_subprocessor.py0creates a patch for the bengali conversion resistance effect (id: 262). :param converter_group: tech/civ that gets the pSTRING
HIGH…cessor/conversion/de2/upgrade_resource_subprocessor.py0creates a patch for the bengali conversion resistance effect (id: 262). :param converter_group: tech/civ that gets the pSTRING
HIGHopenage/convert/processor/conversion/ror/processor.py0input game speification and media here and get a set of modpacks back. :param gamespec: gamedata from empires.dat read iSTRING
HIGHopenage/convert/processor/conversion/de1/processor.py0input game speification and media here and get a set of modpacks back. :param gamespec: gamedata from empires.dat read iSTRING
HIGH…enage/convert/processor/conversion/swgbcc/processor.py0input game speification and media here and get a set of modpacks back. :param gamespec: gamedata from empires.dat read iSTRING
HIGHopenage/convert/processor/conversion/hd/processor.py0input game speification and media here and get a set of modpacks back. :param gamespec: gamedata from empires.dat read iSTRING
HIGHopenage/convert/processor/conversion/aoc/processor.py0input game speification and media here and get a set of modpacks back. :param gamespec: gamedata from empires.dat read iSTRING
HIGH…age/convert/processor/conversion/aoc_demo/processor.py0input game speification and media here and get a set of modpacks back. :param gamespec: gamedata from empires.dat read iSTRING
HIGHopenage/convert/processor/conversion/de2/processor.py0input game speification and media here and get a set of modpacks back. :param gamespec: gamedata from empires.dat read iSTRING
HIGHopenage/convert/processor/conversion/ror/processor.py0store data from the reader in a conversion container. :param gamespec: gamedata from empires.dat file. :type gamespec: cSTRING
HIGHopenage/convert/processor/conversion/de1/processor.py0store data from the reader in a conversion container. :param gamespec: gamedata from empires.dat file. :type gamespec: cSTRING
HIGH…enage/convert/processor/conversion/swgbcc/processor.py0store data from the reader in a conversion container. :param gamespec: gamedata from empires.dat file. :type gamespec: cSTRING
HIGHopenage/convert/processor/conversion/ror/processor.py0convert api-like python objects to nyan. :param full_data_set: genieobjectcontainer instance that contains all relevant STRING
HIGHopenage/convert/processor/conversion/de1/processor.py0convert api-like python objects to nyan. :param full_data_set: genieobjectcontainer instance that contains all relevant STRING
HIGHopenage/convert/processor/conversion/hd/processor.py0convert api-like python objects to nyan. :param full_data_set: genieobjectcontainer instance that contains all relevant STRING
HIGH…enage/convert/processor/conversion/swgbcc/processor.py0convert api-like python objects to nyan. :param full_data_set: genieobjectcontainer instance that contains all relevant STRING
HIGHopenage/convert/processor/conversion/aoc/processor.py0convert api-like python objects to nyan. :param full_data_set: genieobjectcontainer instance that contains all relevant STRING
HIGHopenage/convert/processor/conversion/de2/processor.py0convert api-like python objects to nyan. :param full_data_set: genieobjectcontainer instance that contains all relevant STRING
96 more matches not shown…
Over-Commented Block156 hits · 154 pts
SeverityFileLineSnippetContext
LOWlibopenage/renderer/demo/demo_6.cpp1// Copyright 2024-2026 the openage authors. See copying.md for legal info.COMMENT
LOWlibopenage/renderer/demo/demo_7.cpp1// Copyright 2025-2025 the openage authors. See copying.md for legal info.COMMENT
LOWlibopenage/renderer/demo/demo_5.cpp1// Copyright 2023-2024 the openage authors. See copying.md for legal info.COMMENT
LOWlibopenage/renderer/demo/demo_4.cpp1// Copyright 2015-2024 the openage authors. See copying.md for legal info.COMMENT
LOWlibopenage/renderer/demo/tests.cpp1// Copyright 2015-2025 the openage authors. See copying.md for legal info.COMMENT
LOWlibopenage/renderer/demo/demo_1.cpp1// Copyright 2023-2024 the openage authors. See copying.md for legal info.COMMENT
LOWlibopenage/renderer/demo/demo_3.cpp1// Copyright 2023-2024 the openage authors. See copying.md for legal info.COMMENT
LOWlibopenage/renderer/demo/demo_2.cpp1// Copyright 2023-2024 the openage authors. See copying.md for legal info.COMMENT
LOWlibopenage/renderer/demo/stresstest_0.cpp1// Copyright 2023-2024 the openage authors. See copying.md for legal info.COMMENT
LOWlibopenage/renderer/demo/stresstest_1.cpp1// Copyright 2024-2024 the openage authors. See copying.md for legal info.COMMENT
LOWlibopenage/renderer/stages/world/render_stage.cpp1// Copyright 2022-2025 the openage authors. See copying.md for legal info.COMMENT
LOWlibopenage/renderer/stages/world/object.cpp1// Copyright 2022-2024 the openage authors. See copying.md for legal info.COMMENT
LOWlibopenage/renderer/stages/world/object.h1// Copyright 2022-2024 the openage authors. See copying.md for legal info.COMMENT
LOWlibopenage/renderer/stages/screen/render_stage.cpp1// Copyright 2022-2024 the openage authors. See copying.md for legal info.COMMENT
LOWlibopenage/renderer/stages/screen/screenshot.cpp1// Copyright 2014-2026 the openage authors. See copying.md for legal info.COMMENT
LOWlibopenage/renderer/stages/terrain/render_stage.cpp1// Copyright 2022-2024 the openage authors. See copying.md for legal info.COMMENT
LOWlibopenage/renderer/stages/terrain/model.cpp1// Copyright 2022-2024 the openage authors. See copying.md for legal info.COMMENT
LOWlibopenage/renderer/stages/skybox/render_stage.cpp1// Copyright 2022-2024 the openage authors. See copying.md for legal info.COMMENT
LOWlibopenage/renderer/stages/hud/render_stage.cpp1// Copyright 2023-2024 the openage authors. See copying.md for legal info.COMMENT
LOWlibopenage/renderer/camera/camera.h1// Copyright 2022-2024 the openage authors. See copying.md for legal info.COMMENT
LOWlibopenage/renderer/resources/texture_data.h21COMMENT
LOWlibopenage/renderer/resources/texture_data.cpp1// Copyright 2015-2023 the openage authors. See copying.md for legal info.COMMENT
LOWlibopenage/renderer/resources/texture_info.h1// Copyright 2017-2024 the openage authors. See copying.md for legal info.COMMENT
LOWlibopenage/renderer/resources/parser/parse_sprite.cpp1// Copyright 2021-2024 the openage authors. See copying.md for legal info.COMMENT
LOWlibopenage/renderer/resources/parser/parse_texture.cpp1// Copyright 2021-2024 the openage authors. See copying.md for legal info.COMMENT
LOW…bopenage/renderer/resources/parser/parse_blendmask.cpp1// Copyright 2023-2024 the openage authors. See copying.md for legal info.COMMENT
LOW…openage/renderer/resources/parser/parse_blendtable.cpp1// Copyright 2023-2024 the openage authors. See copying.md for legal info.COMMENT
LOWlibopenage/renderer/resources/parser/parse_palette.cpp1// Copyright 2023-2024 the openage authors. See copying.md for legal info.COMMENT
LOWlibopenage/renderer/resources/parser/parse_terrain.cpp1// Copyright 2023-2024 the openage authors. See copying.md for legal info.COMMENT
LOWlibopenage/renderer/resources/assets/asset_manager.cpp1// Copyright 2023-2023 the openage authors. See copying.md for legal info.COMMENT
LOWlibopenage/renderer/vulkan/windowvk.cpp1// Copyright 2017-2023 the openage authors. See copying.md for legal info.COMMENT
LOWlibopenage/renderer/gui/gui.cpp1// Copyright 2015-2024 the openage authors. See copying.md for legal info.COMMENT
LOWlibopenage/renderer/gui/guisys/link/gui_item.h1// Copyright 2015-2024 the openage authors. See copying.md for legal info.COMMENT
LOW…nage/renderer/gui/guisys/private/gui_renderer_impl.cpp1// Copyright 2015-2023 the openage authors. See copying.md for legal info.COMMENT
LOW…nage/renderer/gui/guisys/private/gui_renderer_impl.cpp41 // Add callbacks so that input events from the main window are propagated to theCOMMENT
LOW…openage/renderer/gui/guisys/private/gui_subtree_impl.h61// QString root_dir);COMMENT
LOW…ge/renderer/gui/guisys/private/opengl_debug_logger.cpp1// Copyright 2017-2024 the openage authors. See copying.md for legal info.COMMENT
LOW…bopenage/renderer/gui/guisys/private/gui_ctx_setup.cpp1// Copyright 2017-2023 the openage authors. See copying.md for legal info.COMMENT
LOW…enage/renderer/gui/guisys/private/gui_subtree_impl.cpp1// Copyright 2015-2026 the openage authors. See copying.md for legal info.COMMENT
LOW…enage/renderer/gui/guisys/private/gui_subtree_impl.cpp181// subtree{},COMMENT
LOW…enage/renderer/gui/guisys/private/gui_subtree_impl.cpp201// this->engine->add_root_dir_path(this->root_dir);COMMENT
LOW…enage/renderer/gui/guisys/private/gui_subtree_impl.cpp221// }COMMENT
LOW…enage/renderer/gui/guisys/private/gui_subtree_impl.cpp241// return *this;COMMENT
LOW…penage/renderer/gui/guisys/private/gui_renderer_impl.h1// Copyright 2015-2023 the openage authors. See copying.md for legal info.COMMENT
LOW…erer/gui/guisys/private/livereload/gui_live_reloader.h1// Copyright 2015-2023 the openage authors. See copying.md for legal info.COMMENT
LOWlibopenage/renderer/opengl/vertex_array.h21 /// in the vector. Each buffer is bound according to its input info and each subsequent vertexCOMMENT
LOWlibopenage/renderer/opengl/window.cpp1// Copyright 2018-2024 the openage authors. See copying.md for legal info.COMMENT
LOWlibopenage/renderer/opengl/error.cpp21 // An unacceptable value is specified for an enumerated argument.COMMENT
LOWlibopenage/renderer/opengl/context.cpp1// Copyright 2015-2026 the openage authors. See copying.md for legal info.COMMENT
LOWlibopenage/renderer/opengl/context.cpp181 // A numeric argument is out of range.COMMENT
LOWlibopenage/renderer/opengl/shader_program.cpp1// Copyright 2013-2026 the openage authors. See copying.md for legal info.COMMENT
LOWlibopenage/renderer/opengl/renderer.cpp1// Copyright 2017-2025 the openage authors. See copying.md for legal info.COMMENT
LOWlibopenage/util/pty.h1// Copyright 2014-2024 the openage authors. See copying.md for legal info.COMMENT
LOWlibopenage/util/os.cpp1// Copyright 2014-2024 the openage authors. See copying.md for legal info.COMMENT
LOWlibopenage/util/compiler.h21// clang-format offCOMMENT
LOWlibopenage/util/compiler.h41 #endifCOMMENT
LOWlibopenage/util/compiler.cpp1// Copyright 2015-2026 the openage authors. See copying.md for legal info.COMMENT
LOWlibopenage/util/path.h1// Copyright 2015-2024 the openage authors. See copying.md for legal info.COMMENT
LOWlibopenage/util/misc.h1// Copyright 2013-2024 the openage authors. See copying.md for legal info.COMMENT
LOWlibopenage/util/strings.cpp1// Copyright 2013-2026 the openage authors. See copying.md for legal info.COMMENT
96 more matches not shown…
Unused Imports148 hits · 144 pts
SeverityFileLineSnippetContext
LOWopenage/assets.py7CODE
LOWopenage/util/observer.py18CODE
LOWopenage/util/files.py6CODE
LOWopenage/util/version.py7CODE
LOWopenage/util/hash.py7CODE
LOWopenage/util/toml.py11CODE
LOWopenage/util/toml.py14CODE
LOWopenage/util/fslike/abstract.py15CODE
LOWopenage/util/fslike/directory.py10CODE
LOWopenage/util/fslike/filecollection.py8CODE
LOWopenage/game/main.py9CODE
LOWopenage/cabextract/cab.py10CODE
LOWopenage/cabextract/test.py6CODE
LOWopenage/codegen/main.py50CODE
LOWopenage/testing/main.py5CODE
LOWopenage/cvar/config_file.py7CODE
LOWopenage/main/main.py7CODE
LOWopenage/convert/main.py8CODE
LOW…age/convert/entity_object/conversion/stringresource.py5CODE
LOWopenage/convert/entity_object/conversion/modpack.py7CODE
LOW…e/convert/entity_object/conversion/combined_terrain.py7CODE
LOW…e/convert/entity_object/conversion/converter_object.py11CODE
LOW…ge/convert/entity_object/conversion/combined_sprite.py7CODE
LOW…age/convert/entity_object/conversion/combined_sound.py7CODE
LOW…ge/convert/entity_object/conversion/ror/genie_sound.py9CODE
LOW…age/convert/entity_object/conversion/ror/genie_tech.py9CODE
LOW…age/convert/entity_object/conversion/ror/genie_unit.py9CODE
LOW…/convert/entity_object/conversion/swgbcc/genie_tech.py8CODE
LOW…/convert/entity_object/conversion/swgbcc/genie_unit.py8CODE
LOW…entity_object/conversion/aoc/genie_object_container.py9CODE
LOW…ge/convert/entity_object/conversion/aoc/genie_sound.py7CODE
LOW…/convert/entity_object/conversion/aoc/genie_terrain.py7CODE
LOW…age/convert/entity_object/conversion/aoc/genie_tech.py7CODE
LOW…nage/convert/entity_object/conversion/aoc/genie_civ.py7CODE
LOW…e/convert/entity_object/conversion/aoc/genie_effect.py7CODE
LOW…age/convert/entity_object/conversion/aoc/genie_unit.py9CODE
LOW…/convert/entity_object/conversion/aoc/genie_graphic.py7CODE
LOW…nvert/entity_object/conversion/aoc/genie_connection.py7CODE
LOW…e/convert/entity_object/export/media_export_request.py9CODE
LOWopenage/convert/entity_object/export/metadata_export.py8CODE
LOWopenage/convert/entity_object/export/texture.py7CODE
LOWopenage/convert/entity_object/export/data_definition.py7CODE
LOW…nvert/entity_object/export/formats/terrain_metadata.py9CODE
LOW…onvert/entity_object/export/formats/blmask_metadata.py9CODE
LOW…nage/convert/entity_object/export/formats/nyan_file.py8CODE
LOW…onvert/entity_object/export/formats/sprite_metadata.py9CODE
LOW…ge/convert/entity_object/export/formats/media_cache.py9CODE
LOW…nvert/entity_object/export/formats/bltable_metadata.py7CODE
LOW…/convert/processor/conversion/ror/tech_subprocessor.py12CODE
LOW…e/convert/processor/conversion/ror/civ_subprocessor.py9CODE
LOW…nvert/processor/conversion/ror/modpack_subprocessor.py10CODE
LOW…essor/conversion/ror/upgrade_attribute_subprocessor.py12CODE
LOW…ocessor/conversion/ror/upgrade_ability_subprocessor.py13CODE
LOW…onvert/processor/conversion/ror/pregen_subprocessor.py10CODE
LOW…cessor/conversion/ror/upgrade_resource_subprocessor.py12CODE
LOWopenage/convert/processor/conversion/ror/processor.py8CODE
LOW…ert/processor/conversion/ror/auxiliary_subprocessor.py11CODE
LOW…convert/processor/conversion/ror/media_subprocessor.py9CODE
LOW…nvert/processor/conversion/ror/ability_subprocessor.py13CODE
LOW…nvert/processor/conversion/de1/modpack_subprocessor.py10CODE
88 more matches not shown…
Deep Nesting125 hits · 118 pts
SeverityFileLineSnippetContext
LOWopenage/util/system.py13CODE
LOWopenage/util/threading.py14CODE
LOWopenage/util/filelike/abstract.py117CODE
LOWopenage/util/fslike/path.py38CODE
LOWopenage/util/fslike/path.py112CODE
LOWopenage/util/fslike/filecollection.py40CODE
LOWopenage/util/fslike/union.py239CODE
LOWopenage/cabextract/cab.py308CODE
LOWopenage/cabextract/cab.py361CODE
LOWopenage/codegen/coord.py10CODE
LOWopenage/codegen/main.py137CODE
LOWopenage/codegen/main.py143CODE
LOWopenage/codegen/codegen.py106CODE
LOWopenage/testing/main.py117CODE
LOWopenage/cvar/config_file.py17CODE
LOWopenage/convert/main.py37CODE
LOW…age/convert/entity_object/conversion/aoc/genie_unit.py130CODE
LOW…age/convert/entity_object/conversion/aoc/genie_unit.py1161CODE
LOW…age/convert/entity_object/conversion/aoc/genie_unit.py1220CODE
LOWopenage/convert/entity_object/export/metadata_export.py91CODE
LOW…/convert/processor/conversion/ror/tech_subprocessor.py76CODE
LOW…/convert/processor/conversion/ror/tech_subprocessor.py104CODE
LOW…e/convert/processor/conversion/ror/civ_subprocessor.py27CODE
LOWopenage/convert/processor/conversion/ror/processor.py246CODE
LOWopenage/convert/processor/conversion/ror/processor.py448CODE
LOW…ert/processor/conversion/ror/auxiliary_subprocessor.py37CODE
LOW…nvert/processor/conversion/ror/ability_subprocessor.py39CODE
LOW…convert/processor/conversion/de1/media_subprocessor.py37CODE
LOW…/convert/processor/conversion/hd/media_subprocessor.py42CODE
LOW…nvert/processor/conversion/swgbcc/tech_subprocessor.py114CODE
LOW…nvert/processor/conversion/swgbcc/tech_subprocessor.py187CODE
LOW…onvert/processor/conversion/swgbcc/civ_subprocessor.py62CODE
LOW…or/conversion/swgbcc/upgrade_attribute_subprocessor.py285CODE
LOW…enage/convert/processor/conversion/swgbcc/processor.py207CODE
LOW…enage/convert/processor/conversion/swgbcc/processor.py365CODE
LOW…enage/convert/processor/conversion/swgbcc/processor.py519CODE
LOW…enage/convert/processor/conversion/swgbcc/processor.py618CODE
LOW…enage/convert/processor/conversion/swgbcc/processor.py787CODE
LOW…/processor/conversion/swgbcc/auxiliary_subprocessor.py39CODE
LOW…/processor/conversion/swgbcc/auxiliary_subprocessor.py380CODE
LOW…rt/processor/conversion/swgbcc/ability_subprocessor.py80CODE
LOW…rt/processor/conversion/swgbcc/ability_subprocessor.py597CODE
LOW…rt/processor/conversion/swgbcc/ability_subprocessor.py820CODE
LOW…rt/processor/conversion/swgbcc/ability_subprocessor.py1355CODE
LOW…/convert/processor/conversion/aoc/tech_subprocessor.py114CODE
LOW…/convert/processor/conversion/aoc/tech_subprocessor.py178CODE
LOW…/convert/processor/conversion/aoc/tech_subprocessor.py384CODE
LOW…e/convert/processor/conversion/aoc/civ_subprocessor.py65CODE
LOW…e/convert/processor/conversion/aoc/civ_subprocessor.py170CODE
LOW…e/convert/processor/conversion/aoc/civ_subprocessor.py397CODE
LOW…essor/conversion/aoc/upgrade_attribute_subprocessor.py332CODE
LOW…essor/conversion/aoc/upgrade_attribute_subprocessor.py2042CODE
LOWopenage/convert/processor/conversion/aoc/processor.py497CODE
LOWopenage/convert/processor/conversion/aoc/processor.py615CODE
LOWopenage/convert/processor/conversion/aoc/processor.py724CODE
LOWopenage/convert/processor/conversion/aoc/processor.py934CODE
LOWopenage/convert/processor/conversion/aoc/processor.py1184CODE
LOWopenage/convert/processor/conversion/aoc/processor.py1213CODE
LOWopenage/convert/processor/conversion/aoc/processor.py1325CODE
LOW…/convert/processor/conversion/aoc/nyan_subprocessor.py624CODE
65 more matches not shown…
Self-Referential Comments38 hits · 112 pts
SeverityFileLineSnippetContext
MEDIUMopenage/util/fslike/path.py368 # Create a temporary directory using tempfile.mkdtempCOMMENT
MEDIUM…nage/convert/entity_object/conversion/aoc/genie_civ.py96 # Create an object for the team bonus. We use the effect ID + 10000 to avoidCOMMENT
MEDIUM…nage/convert/entity_object/conversion/aoc/genie_civ.py100 # Create an object for the tech tree bonus. We use the effect ID + 10000 to avoidCOMMENT
MEDIUMopenage/convert/processor/conversion/ror/processor.py77 # Create a new container for the conversion processCOMMENT
MEDIUMopenage/convert/processor/conversion/ror/processor.py81 # Create the custom openage formats (nyan, sprite, terrain)COMMENT
MEDIUMopenage/convert/processor/conversion/ror/processor.py301 # Create the villager task groupCOMMENT
MEDIUMopenage/convert/processor/conversion/de1/processor.py58 # Create a new container for the conversion processCOMMENT
MEDIUMopenage/convert/processor/conversion/de1/processor.py62 # Create the custom openage formats (nyan, sprite, terrain)COMMENT
MEDIUMopenage/convert/processor/conversion/hd/processor.py58 # Create a new container for the conversion processCOMMENT
MEDIUMopenage/convert/processor/conversion/hd/processor.py62 # Create the custom openage formats (nyan, sprite, terrain, etc.)COMMENT
MEDIUM…enage/convert/processor/conversion/swgbcc/processor.py91 # Create a new container for the conversion processCOMMENT
MEDIUM…enage/convert/processor/conversion/swgbcc/processor.py95 # Create the custom openae formats (nyan, sprite, terrain)COMMENT
MEDIUM…enage/convert/processor/conversion/swgbcc/processor.py569 # Create the villager task groupCOMMENT
MEDIUM…enage/convert/processor/conversion/swgbcc/processor.py660 # Create a stat upgrade for other techsCOMMENT
MEDIUM…nvert/processor/conversion/aoc/modpack_subprocessor.py91 # Create the filesCOMMENT
MEDIUM…nvert/processor/conversion/aoc/modpack_subprocessor.py114 # Create an import tree from the filesCOMMENT
MEDIUMopenage/convert/processor/conversion/aoc/processor.py97 # Create a new container for the conversion processCOMMENT
MEDIUMopenage/convert/processor/conversion/aoc/processor.py101 # Create the custom openae formats (nyan, sprite, terrain)COMMENT
MEDIUMopenage/convert/processor/conversion/aoc/processor.py829 # Create a stat upgrade for other techsCOMMENT
MEDIUMopenage/convert/processor/conversion/aoc/processor.py982 # Create the villager task groupCOMMENT
MEDIUM⚡…/convert/processor/conversion/aoc/nyan_subprocessor.py713 # Create a diffCOMMENT
MEDIUM…vert/processor/conversion/aoc/modifier_subprocessor.py134 # Create a modifier for each matching resource spotCOMMENT
MEDIUM…rocessor/conversion/aoc/upgrade_effect_subprocessor.py74 # Create a new attack effect, then patch it inCOMMENT
MEDIUM…rocessor/conversion/aoc/upgrade_effect_subprocessor.py337 # Create a new attack resistance, then patch it inCOMMENT
MEDIUM…nvert/processor/conversion/aoc/ability_subprocessor.py6815 # Create the animation objectCOMMENT
MEDIUMopenage/convert/processor/conversion/de2/processor.py68 # Create a new container for the conversion processCOMMENT
MEDIUMopenage/convert/processor/conversion/de2/processor.py72 # Create the custom openae formats (nyan, sprite, terrain)COMMENT
MEDIUM…age/convert/processor/conversion/aoc_demo/processor.py56 # Create a new container for the conversion processCOMMENT
MEDIUM…age/convert/processor/conversion/aoc_demo/processor.py62 # Create the custom openae formats (nyan, sprite, terrain)COMMENT
MEDIUMopenage/convert/processor/export/media_exporter.py243 # Create a manager for sharing data between the workers and main processCOMMENT
MEDIUMopenage/convert/processor/export/media_exporter.py254 # Create a pool of workersCOMMENT
MEDIUMopenage/convert/value_object/read/genie_structure.py378 # Create an array from the subdata structuresCOMMENT
MEDIUMopenage/convert/value_object/read/genie_structure.py561 # Create the arrayCOMMENT
MEDIUMopenage/nyan/nyan_structs.py118 # Create a new member for every child with self as parent and originCOMMENT
MEDIUMopenage/nyan/nyan_structs.py135 # Create a new member with self as parent and originCOMMENT
MEDIUMopenage/nyan/nyan_structs.py142 # Create a new member with self as parentCOMMENT
MEDIUMopenage/nyan/nyan_structs.py294 # Create a new member for every child with self as parentCOMMENT
MEDIUMbuildsystem/codecompliance/clangtidy.py21 # Create the checks stringCOMMENT
Hyper-Verbose Identifiers125 hits · 110 pts
SeverityFileLineSnippetContext
LOWopenage/util/files.py35def read_nullterminated_string(fileobj: FileLikeObject, maxlen: int = 255) -> bytes:CODE
LOWopenage/util/fslike/test.py129def is_filesystem_case_sensitive():CODE
LOW…e/convert/entity_object/conversion/combined_terrain.py78 def get_relative_terrain_location(self) -> str | None:CODE
LOW…e/convert/entity_object/conversion/combined_terrain.py94 def resolve_graphics_location(self) -> str:CODE
LOW…e/convert/entity_object/conversion/converter_object.py298 def _create_raw_api_object_dict(self, subobject_list: list[RawAPIObject]) -> None:CODE
LOW…ge/convert/entity_object/conversion/combined_sprite.py88 def get_relative_sprite_location(self) -> str | None:CODE
LOW…ge/convert/entity_object/conversion/combined_sprite.py107 def resolve_graphics_location(self) -> dict[int, str]:CODE
LOW…age/convert/entity_object/conversion/combined_sound.py79 def get_relative_file_location(self) -> str | None:CODE
LOW…age/convert/entity_object/conversion/aoc/genie_tech.py497 def replaces_researchable_tech(self) -> GenieTechEffectBundleGroup | None:CODE
LOW…cessor/conversion/ror/upgrade_resource_subprocessor.py33 def building_conversion_upgrade(CODE
LOW⚡…/convert/processor/conversion/ror/nyan_subprocessor.py348 def building_line_to_game_entity(building_line):CODE
LOW⚡…/convert/processor/conversion/ror/nyan_subprocessor.py475 def ambient_group_to_game_entity(ambient_group):CODE
LOW…ert/processor/conversion/ror/auxiliary_subprocessor.py37 def get_creatable_game_entity(line: GenieUnitLineGroup | GenieBuildingLineGroup) -> None:CODE
LOW…nvert/processor/conversion/ror/ability_subprocessor.py39 def apply_discrete_effect_ability(CODE
LOW…nvert/processor/conversion/ror/ability_subprocessor.py345 def game_entity_stance_ability(line: GenieGameEntityGroup) -> ForwardRef:CODE
LOW…ert/processor/conversion/swgbcc/pregen_subprocessor.py212 def generate_exchange_objects(CODE
LOW…sor/conversion/swgbcc/upgrade_resource_subprocessor.py33 def assault_mech_anti_air_upgrade(CODE
LOW…sor/conversion/swgbcc/upgrade_resource_subprocessor.py55 def berserk_heal_rate_upgrade(CODE
LOW…sor/conversion/swgbcc/upgrade_resource_subprocessor.py136 def building_conversion_upgrade(CODE
LOW…sor/conversion/swgbcc/upgrade_resource_subprocessor.py323 def faith_recharge_rate_upgrade(CODE
LOW…sor/conversion/swgbcc/upgrade_resource_subprocessor.py595 def shield_dropoff_time_upgrade(CODE
LOW…sor/conversion/swgbcc/upgrade_resource_subprocessor.py617 def shield_power_core_upgrade(CODE
LOW…sor/conversion/swgbcc/upgrade_resource_subprocessor.py639 def shield_recharge_rate_upgrade(CODE
LOW⚡…nvert/processor/conversion/swgbcc/nyan_subprocessor.py378 def building_line_to_game_entity(building_line: GenieBuildingLineGroup) -> None:CODE
LOW⚡…nvert/processor/conversion/swgbcc/nyan_subprocessor.py531 def ambient_group_to_game_entity(ambient_group: GenieAmbientGroup) -> None:CODE
LOW…/processor/conversion/swgbcc/auxiliary_subprocessor.py39 def get_creatable_game_entity(line: GenieUnitLineGroup | GenieBuildingLineGroup) -> None:CODE
LOW…rt/processor/conversion/swgbcc/ability_subprocessor.py45 def active_transform_to_ability(line: GenieGameEntityGroup) -> ForwardRef:CODE
LOW…rt/processor/conversion/swgbcc/ability_subprocessor.py62 def apply_continuous_effect_ability(CODE
LOW…rt/processor/conversion/swgbcc/ability_subprocessor.py80 def apply_discrete_effect_ability(CODE
LOW…rt/processor/conversion/swgbcc/ability_subprocessor.py380 def attribute_change_tracker_ability(line) -> ForwardRef:CODE
LOW…rt/processor/conversion/swgbcc/ability_subprocessor.py533 def exchange_resources_ability(line: GenieGameEntityGroup) -> list[ForwardRef]:CODE
LOW…rt/processor/conversion/swgbcc/ability_subprocessor.py1261 def provide_contingent_ability(line: GenieGameEntityGroup) -> ForwardRef:CODE
LOW…rt/processor/conversion/swgbcc/ability_subprocessor.py1278 def regenerate_attribute_ability(line: GenieGameEntityGroup) -> list[ForwardRef]:CODE
LOW…rt/processor/conversion/swgbcc/ability_subprocessor.py1616 def send_back_to_task_ability(line: GenieGameEntityGroup) -> ForwardRef:CODE
LOW…essor/conversion/aoc/upgrade_attribute_subprocessor.py486 def attack_warning_sound_upgrade(CODE
LOW…essor/conversion/aoc/upgrade_attribute_subprocessor.py1038 def garrison_capacity_upgrade(CODE
LOW…essor/conversion/aoc/upgrade_attribute_subprocessor.py2489 def tribute_inefficiency_upgrade(CODE
LOW…ocessor/conversion/aoc/upgrade_ability_subprocessor.py47 def apply_continuous_effect_ability(CODE
LOW…ocessor/conversion/aoc/upgrade_ability_subprocessor.py232 def apply_discrete_effect_ability(CODE
LOW…ocessor/conversion/aoc/upgrade_ability_subprocessor.py440 def attribute_change_tracker_ability(CODE
LOW…ocessor/conversion/aoc/upgrade_ability_subprocessor.py2006 def create_command_sound_patch(CODE
LOW…cessor/conversion/aoc/upgrade_resource_subprocessor.py33 def berserk_heal_rate_upgrade(CODE
LOW…cessor/conversion/aoc/upgrade_resource_subprocessor.py187 def building_conversion_upgrade(CODE
LOW…cessor/conversion/aoc/upgrade_resource_subprocessor.py346 def chinese_tech_discount_upgrade(CODE
LOW…cessor/conversion/aoc/upgrade_resource_subprocessor.py368 def construction_speed_upgrade(CODE
LOW…cessor/conversion/aoc/upgrade_resource_subprocessor.py390 def conversion_resistance_upgrade(CODE
LOW…cessor/conversion/aoc/upgrade_resource_subprocessor.py412 def conversion_resistance_min_rounds_upgrade(CODE
LOW…cessor/conversion/aoc/upgrade_resource_subprocessor.py434 def conversion_resistance_max_rounds_upgrade(CODE
LOW…cessor/conversion/aoc/upgrade_resource_subprocessor.py478 def faith_recharge_rate_upgrade(CODE
LOW…cessor/conversion/aoc/upgrade_resource_subprocessor.py636 def gather_food_efficiency_upgrade(CODE
LOW…cessor/conversion/aoc/upgrade_resource_subprocessor.py658 def gather_wood_efficiency_upgrade(CODE
LOW…cessor/conversion/aoc/upgrade_resource_subprocessor.py680 def gather_gold_efficiency_upgrade(CODE
LOW…cessor/conversion/aoc/upgrade_resource_subprocessor.py702 def gather_stone_efficiency_upgrade(CODE
LOW…cessor/conversion/aoc/upgrade_resource_subprocessor.py825 def herding_dominance_upgrade(CODE
LOW…cessor/conversion/aoc/upgrade_resource_subprocessor.py1192 def starting_villagers_upgrade(CODE
LOW…cessor/conversion/aoc/upgrade_resource_subprocessor.py1214 def starting_population_space_upgrade(CODE
LOW…cessor/conversion/aoc/upgrade_resource_subprocessor.py1331 def tribute_inefficiency_upgrade(CODE
LOW…cessor/conversion/aoc/upgrade_resource_subprocessor.py1353 def wonder_time_increase_upgrade(CODE
LOWopenage/convert/processor/conversion/aoc/processor.py271 def extract_genie_effect_bundles(gamespec: ArrayMember, full_data_set: GenieObjectContainer) -> None:CODE
LOWopenage/convert/processor/conversion/aoc/processor.py356 def extract_building_connections(gamespec: ArrayMember, full_data_set: GenieObjectContainer) -> None:CODE
65 more matches not shown…
Empty Error Handlers12 hits · 60 pts
SeverityFileLineSnippetContext
HIGHopenage/util/strings.py30except UnicodeDecodeError:CODE
HIGHopenage/util/fslike/directory.py180except KeyError:CODE
HIGHopenage/util/fslike/path.py61except IndexError:CODE
HIGHopenage/util/fslike/union.py272except KeyError:CODE
HIGHopenage/cabextract/test.py54except OSError:CODE
HIGHopenage/codegen/codegen.py183except ImportError:CODE
HIGHopenage/codegen/codegen.py191except ImportError:CODE
HIGHopenage/codegen/codegen.py144except FileNotFoundError:CODE
HIGHopenage/convert/service/read/gamedata.py84except FileNotFoundError:CODE
HIGHopenage/convert/service/read/string_resource.py92except FileNotFoundError:CODE
HIGHbuildsystem/inplacemodules.py61except OSError:CODE
HIGHbuildsystem/compilepy.py38except OSError:CODE
Redundant / Tautological Comments38 hits · 48 pts
SeverityFileLineSnippetContext
LOWopenage/util/fslike/path.py354 # Close the file descriptor to release resourcesCOMMENT
LOWopenage/convert/processor/conversion/ror/processor.py319 # Check if the tech unlocks other linesCOMMENT
LOW…nvert/processor/conversion/ror/ability_subprocessor.py161 # Check if the object for the animation has been created beforeCOMMENT
LOW…enage/convert/processor/conversion/swgbcc/processor.py417 # Check if this is a stacked unit (gate or command center)COMMENT
LOW…enage/convert/processor/conversion/swgbcc/processor.py442 # Check if we have to create a GenieStackBuildingGroupCOMMENT
LOW…enage/convert/processor/conversion/swgbcc/processor.py640 # Check if the tech is an age upgradeCOMMENT
LOW…rt/processor/conversion/swgbcc/ability_subprocessor.py186 # Check if the object for the animation has been created beforeCOMMENT
LOW…/convert/processor/conversion/aoc/tech_subprocessor.py431 # Check if the tech actually costs an amount of the defined resourceCOMMENT
LOW…essor/conversion/aoc/upgrade_attribute_subprocessor.py597 # Check if the unit line actually costs foodCOMMENT
LOW…essor/conversion/aoc/upgrade_attribute_subprocessor.py693 # Check if the unit line actually costs woodCOMMENT
LOW…essor/conversion/aoc/upgrade_attribute_subprocessor.py789 # Check if the unit line actually costs goldCOMMENT
LOW…essor/conversion/aoc/upgrade_attribute_subprocessor.py885 # Check if the unit line actually costs stoneCOMMENT
LOWopenage/convert/processor/conversion/aoc/processor.py639 # Check if we have to create a GenieStackBuildingGroupCOMMENT
LOWopenage/convert/processor/conversion/aoc/processor.py648 # Check if the building is part of an existing line.COMMENT
LOWopenage/convert/processor/conversion/aoc/processor.py677 # Check if the upgrade target is correctCOMMENT
LOWopenage/convert/processor/conversion/aoc/processor.py788 # Check if the tech is an age upgradeCOMMENT
LOW…vert/processor/conversion/aoc/modifier_subprocessor.py107 # Check if the work value is 1 (with some rounding error margin)COMMENT
LOW⚡…e/convert/processor/conversion/aoc/pregen_processor.py1586 # Assign property to modifierCOMMENT
LOW⚡…e/convert/processor/conversion/aoc/pregen_processor.py1620 # Assign property to modifierCOMMENT
LOW…e/convert/processor/conversion/aoc/pregen_processor.py197 # Check if command is in queueCOMMENT
LOW…e/convert/processor/conversion/aoc/pregen_processor.py1654 # Assign property to modifierCOMMENT
LOW…nvert/processor/conversion/aoc/ability_subprocessor.py170 # Check if the object for the animation has been created beforeCOMMENT
LOW…nvert/processor/conversion/aoc/ability_subprocessor.py448 # Check if the object for the animation has been created beforeCOMMENT
LOW…nvert/processor/conversion/aoc/ability_subprocessor.py2104 # Check if the object for the animation has been created beforeCOMMENT
LOW…nvert/processor/conversion/aoc/ability_subprocessor.py2474 # Check if the object for the animation has been created beforeCOMMENT
LOW…nvert/processor/conversion/aoc/ability_subprocessor.py3810 # Check if the object for the animation has been created beforeCOMMENT
LOW…nvert/processor/conversion/aoc/ability_subprocessor.py4062 # Check if the object for the animation has been created beforeCOMMENT
LOW…nvert/processor/conversion/aoc/ability_subprocessor.py6237 # Check if terrain type is covered by terrain restrictionCOMMENT
LOW…nvert/processor/conversion/aoc/ability_subprocessor.py6541 # Check if contingents are stored in the unit before creating the abilityCOMMENT
LOWopenage/convert/value_object/read/value_members.py355 # Check if members have correct typeCOMMENT
LOWopenage/convert/service/init/version_detect.py37 # Check if any of the known paths for the file existsCOMMENT
LOWopenage/convert/service/init/version_detect.py103 # Check if any of the known paths for the file existsCOMMENT
LOWopenage/convert/service/init/version_detect.py217 # Check if there is a media cache file and save the path if it existsCOMMENT
LOWopenage/nyan/import_tree.py354 # Check if the fqon is in the namespace by comparing their identifiersCOMMENT
LOWopenage/nyan/import_tree.py362 # Check if the namespace node is an objectCOMMENT
LOWopenage/nyan/nyan_structs.py1014 # Check if operator type matches with member typeCOMMENT
LOWopenage/nyan/nyan_structs.py1020 # Check if value is compatible with member typeCOMMENT
LOWopenage/nyan/nyan_structs.py1132 # Check if the line gets too longCOMMENT
Modern Structural Boilerplate24 hits · 26 pts
SeverityFileLineSnippetContext
LOWopenage/util/observer.py104 def set_changed(self) -> None:CODE
LOW…e/convert/entity_object/conversion/converter_object.py584 def set_filename(self, filename: str, suffix: str = "nyan") -> None:CODE
LOW…e/convert/entity_object/conversion/converter_object.py595 def set_location(self, location: str | ForwardRef) -> None:CODE
LOW…e/convert/entity_object/export/media_export_request.py52 def set_source_filename(self, filename: str) -> None:CODE
LOW…e/convert/entity_object/export/media_export_request.py64 def set_target_filename(self, filename: str) -> None:CODE
LOW…e/convert/entity_object/export/media_export_request.py76 def set_targetdir(self, targetdir: str) -> None:CODE
LOWopenage/convert/entity_object/export/data_definition.py34 def set_filename(self, filename: str) -> None:CODE
LOWopenage/convert/entity_object/export/data_definition.py46 def set_targetdir(self, targetdir: str) -> None:CODE
LOW…nvert/entity_object/export/formats/terrain_metadata.py117 def set_blendtable(self, table_id: int, filename: str) -> None:CODE
LOW…nvert/entity_object/export/formats/terrain_metadata.py131 def set_scalefactor(self, factor: float) -> None:CODE
LOW…onvert/entity_object/export/formats/blmask_metadata.py71 def set_scalefactor(self, factor: float) -> None:CODE
LOW⚡…nage/convert/entity_object/export/formats/nyan_file.py126 def set_import_tree(self, import_tree: ImportTree) -> None:CODE
LOW⚡…nage/convert/entity_object/export/formats/nyan_file.py136 def set_modpack_name(self, modpack_name: str) -> None:CODE
LOW⚡…nage/convert/entity_object/export/formats/nyan_file.py142 def set_targetdir(self, targetdir: str) -> None:CODE
LOW…onvert/entity_object/export/formats/sprite_metadata.py127 def set_scalefactor(self, factor: float) -> None:CODE
LOW…nvert/entity_object/export/formats/modpack_manifest.py65 def set_hashing_func(self, hashing_func: str) -> None:CODE
LOW…ge/convert/entity_object/export/formats/media_cache.py90 def set_hash_func(self, hash_func: str) -> None:CODE
LOW…nvert/entity_object/export/formats/bltable_metadata.py39 def set_blendtabe(self, table: tuple) -> None:CODE
LOW…nvert/processor/conversion/aoc/modpack_subprocessor.py146 def _set_static_aliases(modpack: Modpack, import_tree: ImportTree) -> None:CODE
LOWopenage/convert/tool/api_export.py124def set_static_aliases(import_tree: ImportTree) -> None:CODE
LOWopenage/nyan/import_tree.py125 def set_alias(self, alias: str) -> None:CODE
LOWopenage/nyan/nyan_structs.py272 def update_inheritance(self, new_inherited_member: InheritedNyanMember) -> None:CODE
LOWopenage/nyan/nyan_structs.py493 def set_target(self, target: NyanObject) -> None:CODE
LOWopenage/nyan/nyan_structs.py947 def set_value(self, value, operator: MemberOperator | None = None) -> None:CODE
AI Slop Vocabulary3 hits · 6 pts
SeverityFileLineSnippetContext
MEDIUMlibopenage/renderer/renderer.h79 /// Stores the display framebuffer into a CPU-accessible data object. Essentially, this takes a screenshot.COMMENT
LOW…ert/processor/conversion/aoc/auxiliary_subprocessor.py674 # we can just return the logic element of the only required techCOMMENT
LOWopenage/convert/value_object/read/read_members.py353 # no xrefs supported yet.. just set to true as if they were resolved.COMMENT
Excessive Try-Catch Wrapping2 hits · 2 pts
SeverityFileLineSnippetContext
LOWopenage/testing/list_processor.py92 except Exception as exc:CODE
LOWopenage/convert/service/read/gamedata.py77 except Exception:CODE
TODO Padding1 hit · 2 pts
SeverityFileLineSnippetContext
LOWdoc/code_style/mom.cpp232 // TODO: implementCOMMENT
Slop Phrases1 hit · 1 pts
SeverityFileLineSnippetContext
LOWlibopenage/renderer/gui/guisys/link/gui_item_link.h120 static_assert(can_call<F, Args...>{}, "One of possible causes: if you're passing SomethingLink*, then don't forget to #CODE
AI Structural Patterns1 hit · 1 pts
SeverityFileLineSnippetContext
LOW…e/convert/entity_object/export/formats/modpack_info.py148CODE