allegroflare / allegro_flare

Application toolkit for Allegro 5
https://clubcatt.com/allegroflare
MIT License
35 stars 6 forks source link

List of large refactors remaining #268

Open MarkOates opened 6 months ago

MarkOates commented 6 months ago

This is a draft list of all the major refactors that are known. Most are quality of life. These features are not specific to the AllegroFlare project (partially in Blast and downstream game projects).

Fixing "make" in AllegroFlare

Will require reverting change from about a year ago that added a singleton Logger to AllegroFlare/Frameworks/Full.

Update all error messages to include full name of class

After doing so, a lot of tests will need to be updated where the EXPECT_EQ statement uses the old error message format. Making this change will mean a lot of downstream updating in, basically every project.

Find a way to get type as a constructor argument to pass down into the parent class

May need to also consider keeping class lineage accessible.

Use ENUMS as keys for Attributes, update lookup code in Attributes

Attributes lookup their variables by string keys, which surely has performance ramifications in regards to comparison times and byte-alignment cache sizes.

Allow writing code for destructor body

Option 1:

destructor_body: |
  return;

Option 2:

  - name: ~Destructor
    body: |
      return;

In this second technique, the ~ prefixing character would be detected and then specific restraints would be added, namely no parameters, function name must match name of class, removed from list of "functions" possibly, etc.

Add Background class to provide positioned, non-repeating backgrounds, zoom scaling, etc

A "destroy" mechanism in Entities, somehow ensuring that lifecycles of objects are managed

Adding light directionality tile to a TileMaps/* tile map

Interactive and controllable music layering