-
Notifications
You must be signed in to change notification settings - Fork 0
/
TODO.txt
66 lines (47 loc) · 3.14 KB
/
TODO.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
- WorldView? currently World is also a WindowContent, which should be decoupled (like inventory is)
- hook up StaticEmbeddedHomogenousMemoryPool for components, tiles, entities, projectiles, see how it behaves
- tile transfer mediator does not handle toMove = 0 properly, because it does not exit early
- store actual geometry in outer border cache and inner border cache?
- change controls
-- ALT + LMB move amount chosen in window
--- trying to put item displays a window
---- position near the mouse, has slider and reacts to arrow keys and numeric keys
--- cancel = cancel
--- ok = move max(stack size, specified amount)
---- normally no way to select more than stack size, but a safety measure i needed
--- don't interrupt if the item being moved changed
THIS:
- make tiles inserted into inventory stack with others if possible (on tile use), currently they are placed in the first valid spot.
- serialization
-- world
--- tiles (dont do ANY updates on loading)
---- map -> tile columns -> tile stacks -> tiles
--- entities
-- player
--- inventory
- Tiles and entities should be loaded on instantiation, so add second instantiate member function that takes appropriate source to deserialize
- make rarities configurable
-- 'global' array of DynamicEnum<...> loaded on start of Root
--- encapsulated further in TileRarity instead of being used naked
--- array with respective colors (since DynamicEnum is enumerated from 0 incrementally)
-- default rarity table in TileRaritySelector should include all rarities with equal quality ranges for each.
- Player ui panel on the left (similar to the one on the right) for information like currect attributes etc.
- consider checking for light occluders/colliders/maybe more; top to bottom (now is bottom to top), and specify a max depth of search
- use ls::Vec2I/ls::Vec3I to pass tile coordinates
- consider replacing current item randomization distribution with something along havinf PDF of 1/e^(nx)
-- or (1-x)^n ((1-x)^n*(n+1))
--- or leave as it is now
- window resizing (should be done fully by the window being resized. Relying only on min,max size parameters)
- window moving
- pillar tile
- '%' sign missing in tibia font
-- probably get a different font
- consider using alpha channel for both normal sprites and meta sprites as 'z' coordinate (initial height of the object. would be added to frag depth). Render tiles respecting height (simple offset).
-- would enable stacking non-flat things in the world. Currently every non-flat thing has to set allowsTilesAbove to false to prevent tile from below from rendering through it.
--- disallow stacking more items if max height would be surpassed
-- projectiles could use that for dropoff after reaching certain velocity or time threshold
- change depth range to [0.0, 2.0] and adjust it so 1.0 is one tile size
BIG (possibly breaking) CHANGES TO CONSIDER
- try dim light depending on height from the ground
- player's line of sight using raymarching
- currently outer borders may be rendered wrong if they are in different textures, because they can't be sorted by texture. Probably no good solution, so will have to make sure no two outer borders from 2 textures are one to each other.