Simplifying Entity Storage, Part I
?
?

Keyboard Navigation

Global Keys

[, < / ], > Jump to previous / next episode
W, K, P / S, J, N Jump to previous / next marker
t / T Toggle theatre / SUPERtheatre mode
V Revert filter to original state Y Select link (requires manual Ctrl-c)

Menu toggling

q Quotes r References f Filter y Link c Credits

In-Menu Movement

a
w
s
d
h j k l


Quotes and References Menus

Enter Jump to timecode

Quotes, References and Credits Menus

o Open URL (in new tab)

Filter Menu

x, Space Toggle category and focus next
X, ShiftSpace Toggle category and focus previous
v Invert topics / media as per focus

Filter and Link Menus

z Toggle filter / linking mode

Credits Menu

Enter Open URL (in new tab)
0:00Recap and set the stage for the day
🗩
0:00Recap and set the stage for the day
🗩
0:00Recap and set the stage for the day
🗩
0:34Demo our updated world generation without entity unpacking
🏃
0:34Demo our updated world generation without entity unpacking
🏃
0:34Demo our updated world generation without entity unpacking
🏃
1:19Determine to simplify entity storage
🗩
1:19Determine to simplify entity storage
🗩
1:19Determine to simplify entity storage
🗩
4:12Describe our entity packing system
🗩
4:12Describe our entity packing system
🗩
4:12Describe our entity packing system
🗩
5:51Plan our entity storage simplification
🗩
5:51Plan our entity storage simplification
🗩
5:51Plan our entity storage simplification
🗩
7:21Remove ChunkZ from world_chunk and world_position
7:21Remove ChunkZ from world_chunk and world_position
7:21Remove ChunkZ from world_chunk and world_position
11:13The game runs just the same
🏃
11:13The game runs just the same
🏃
11:13The game runs just the same
🏃
12:22Reacquaint ourselves with the TODO in world_position
📖
12:22Reacquaint ourselves with the TODO in world_position
📖
12:22Reacquaint ourselves with the TODO in world_position
📖
12:59Consider removing the ChangeTicket ticket_mutex from world
📖
12:59Consider removing the ChangeTicket ticket_mutex from world
📖
12:59Consider removing the ChangeTicket ticket_mutex from world
📖
17:27Plan to simplify the world
📖
17:27Plan to simplify the world
📖
17:27Plan to simplify the world
📖
18:46Reorganise Rooms and Connections to the end of the world
18:46Reorganise Rooms and Connections to the end of the world
18:46Reorganise Rooms and Connections to the end of the world
19:03Describe our rooms and connections debug visualisation
🏃
19:03Describe our rooms and connections debug visualisation
🏃
19:03Describe our rooms and connections debug visualisation
🏃
19:48Reacquaint ourselves with the entity packing system
📖
19:48Reacquaint ourselves with the entity packing system
📖
19:48Reacquaint ourselves with the entity packing system
📖
22:07Consider switching to an updatable entity hash table: 1) Removing the sim_region
📖
22:07Consider switching to an updatable entity hash table: 1) Removing the sim_region
📖
22:07Consider switching to an updatable entity hash table: 1) Removing the sim_region
📖
24:16Consider switching to an updatable entity hash table: 2) Moving the unpacked stuff from the world into the sim_region
📖
24:16Consider switching to an updatable entity hash table: 2) Moving the unpacked stuff from the world into the sim_region
📖
24:16Consider switching to an updatable entity hash table: 2) Moving the unpacked stuff from the world into the sim_region
📖
25:15Consider the need to handle distant unpacked sim regions, e.g. free-exploring couch co-op
📖
25:15Consider the need to handle distant unpacked sim regions, e.g. free-exploring couch co-op
📖
25:15Consider the need to handle distant unpacked sim regions, e.g. free-exploring couch co-op
📖
27:30Consider the need for spatial partitioning
📖
27:30Consider the need for spatial partitioning
📖
27:30Consider the need for spatial partitioning
📖
30:12nsaibot Usually I take a nap to think about things
🗪
30:12nsaibot Usually I take a nap to think about things
🗪
30:12nsaibot Usually I take a nap to think about things
🗪
30:41Consider the need for spatial partitioning (cont.)
📖
30:41Consider the need for spatial partitioning (cont.)
📖
30:41Consider the need for spatial partitioning (cont.)
📖
32:40Reacquaint ourselves with the world's LastUsedEntityStorageIndex
📖
32:40Reacquaint ourselves with the world's LastUsedEntityStorageIndex
📖
32:40Reacquaint ourselves with the world's LastUsedEntityStorageIndex
📖
33:34Respecify world_entity_block as packed_entity_block, and remove FirstFree from the world
33:34Respecify world_entity_block as packed_entity_block, and remove FirstFree from the world
33:34Respecify world_entity_block as packed_entity_block, and remove FirstFree from the world
36:28Introduce unpacked_entity_block for world_chunk to contain
36:28Introduce unpacked_entity_block for world_chunk to contain
36:28Introduce unpacked_entity_block for world_chunk to contain
40:27Consider moving EntityHash from sim_region to the world, for entity ID lookup
📖
40:27Consider moving EntityHash from sim_region to the world, for entity ID lookup
📖
40:27Consider moving EntityHash from sim_region to the world, for entity ID lookup
📖
41:12Consider switching entity hash collision resolution from probing to chaining
📖
41:12Consider switching entity hash collision resolution from probing to chaining
📖
41:12Consider switching entity hash collision resolution from probing to chaining
📖
43:39Consider removing entity ID lookup entirely in favour of spatial querying
📖
43:39Consider removing entity ID lookup entirely in favour of spatial querying
📖
43:39Consider removing entity ID lookup entirely in favour of spatial querying
📖
45:14Briefly run the game
🏃
45:14Briefly run the game
🏃
45:14Briefly run the game
🏃
45:26Speculatively remove GetEntityByID()
45:26Speculatively remove GetEntityByID()
45:26Speculatively remove GetEntityByID()
46:35Plan entity storage simplification: 1) Remove traversables in favour of grid square occupation
📖
46:35Plan entity storage simplification: 1) Remove traversables in favour of grid square occupation
📖
46:35Plan entity storage simplification: 1) Remove traversables in favour of grid square occupation
📖
47:22landosensei Amazing content! I like the theme color palette. I would like to know: which theme are you using?
🗪
47:22landosensei Amazing content! I like the theme color palette. I would like to know: which theme are you using?
🗪
47:22landosensei Amazing content! I like the theme color palette. I would like to know: which theme are you using?
🗪
48:05alparkaan Can you share the theme? The one in the source files is outdated1
🗪
48:05alparkaan Can you share the theme? The one in the source files is outdated1
🗪
48:05alparkaan Can you share the theme? The one in the source files is outdated1
🗪
50:09ponkkiz I always thought it was Ryan's theme. It looked very similar
🗪
50:09ponkkiz I always thought it was Ryan's theme. It looked very similar
🗪
50:09ponkkiz I always thought it was Ryan's theme. It looked very similar
🗪
50:18lesnariv The repo is archived now. I don't think you can submit it
🗪
50:18lesnariv The repo is archived now. I don't think you can submit it
🗪
50:18lesnariv The repo is archived now. I don't think you can submit it
🗪
50:23Copy theme-casey.4coder into the Handmade Hero directory
🗹
50:23Copy theme-casey.4coder into the Handmade Hero directory
🗹
50:23Copy theme-casey.4coder into the Handmade Hero directory
🗹
51:02tarriest_python I don't know if it will get merged, but I have a repo with just 4coder themes if you wanna submit it there. It's where most people get pointed to from the 4coder discord
🗪
51:02tarriest_python I don't know if it will get merged, but I have a repo with just 4coder themes if you wanna submit it there. It's where most people get pointed to from the 4coder discord
🗪
51:02tarriest_python I don't know if it will get merged, but I have a repo with just 4coder themes if you wanna submit it there. It's where most people get pointed to from the 4coder discord
🗪
51:47tarriest_python I have access to the Handmade Hero code so as long as your happy with it being public I can chuck it in when it goes up
🗪
51:47tarriest_python I have access to the Handmade Hero code so as long as your happy with it being public I can chuck it in when it goes up
🗪
51:47tarriest_python I have access to the Handmade Hero code so as long as your happy with it being public I can chuck it in when it goes up
🗪
51:59Remove StompOnEntity()
51:59Remove StompOnEntity()
51:59Remove StompOnEntity()
52:18Determine to change the idea of traversables to be based on an actual position
📖
52:18Determine to change the idea of traversables to be based on an actual position
📖
52:18Determine to change the idea of traversables to be based on an actual position
📖
53:41Plug OALabsLive2
🗩
53:41Plug OALabsLive2
🗩
53:41Plug OALabsLive2
🗩
55:31an0nymal Just wondering, is 32-bit int + float a quick and dirty way to get around floating point precision issues (assuming you only need a small range of the float within any 32-bit ID?
🗪
55:31an0nymal Just wondering, is 32-bit int + float a quick and dirty way to get around floating point precision issues (assuming you only need a small range of the float within any 32-bit ID?
🗪
55:31an0nymal Just wondering, is 32-bit int + float a quick and dirty way to get around floating point precision issues (assuming you only need a small range of the float within any 32-bit ID?
🗪
59:12Plan our removal of traversables
📖
59:12Plan our removal of traversables
📖
59:12Plan our removal of traversables
📖
1:00:30Change IsOccupied() and Vacate() to take a v2s rather than traversable_reference
1:00:30Change IsOccupied() and Vacate() to take a v2s rather than traversable_reference
1:00:30Change IsOccupied() and Vacate() to take a v2s rather than traversable_reference
1:01:41Introduce v2s, to possibly replace v2u
1:01:41Introduce v2s, to possibly replace v2u
1:01:41Introduce v2s, to possibly replace v2u
1:02:55#define function as static
1:02:55#define function as static
1:02:55#define function as static
1:04:25cynokron Rust: Hold my fn
🗪
1:04:25cynokron Rust: Hold my fn
🗪
1:04:25cynokron Rust: Hold my fn
🗪
1:04:36Remove Vacate() and change TransactionalOccupy() to take a v2s rather than traversable_reference
1:04:36Remove Vacate() and change TransactionalOccupy() to take a v2s rather than traversable_reference
1:04:36Remove Vacate() and change TransactionalOccupy() to take a v2s rather than traversable_reference
1:05:59Consider respecifying IsOccupied()
📖
1:05:59Consider respecifying IsOccupied()
📖
1:05:59Consider respecifying IsOccupied()
📖
1:07:58Remove GetClosestTraversable()
1:07:58Remove GetClosestTraversable()
1:07:58Remove GetClosestTraversable()
1:09:59Remove GetClosestTraversableAlongRay()
1:09:59Remove GetClosestTraversableAlongRay()
1:09:59Remove GetClosestTraversableAlongRay()
1:10:56Remove GetMovementVoxelIndex() and AlignToMovementVoxel()
1:10:56Remove GetMovementVoxelIndex() and AlignToMovementVoxel()
1:10:56Remove GetMovementVoxelIndex() and AlignToMovementVoxel()
1:11:53sbrabez IsCrossable()? I used this terminology in my Lemmings game
🗪
1:11:53sbrabez IsCrossable()? I used this terminology in my Lemmings game
🗪
1:11:53sbrabez IsCrossable()? I used this terminology in my Lemmings game
🗪
1:12:31detrohutt Is it intentional for TransactionalOccupy() to always return false?
🗪
1:12:31detrohutt Is it intentional for TransactionalOccupy() to always return false?
🗪
1:12:31detrohutt Is it intentional for TransactionalOccupy() to always return false?
🗪
1:12:34Enable TransactionalOccupy() to return true
1:12:34Enable TransactionalOccupy() to return true
1:12:34Enable TransactionalOccupy() to return true
1:12:38Yearn for sbrabez's Lemmings game
🗩
1:12:38Yearn for sbrabez's Lemmings game
🗩
1:12:38Yearn for sbrabez's Lemmings game
🗩
1:13:20bulmanator Stream will not continue until this Lemmings game is found
🗪
1:13:20bulmanator Stream will not continue until this Lemmings game is found
🗪
1:13:20bulmanator Stream will not continue until this Lemmings game is found
🗪
1:13:52sbrabez Not released yet, it was a personal project in Java
🗪
1:13:52sbrabez Not released yet, it was a personal project in Java
🗪
1:13:52sbrabez Not released yet, it was a personal project in Java
🗪
1:14:06sagian2005 We need LemmingsVR
🗪
1:14:06sagian2005 We need LemmingsVR
🗪
1:14:06sagian2005 We need LemmingsVR
🗪
1:14:48Augment entity with TileIndex and add EntityFlag_OccupiesTile
1:14:48Augment entity with TileIndex and add EntityFlag_OccupiesTile
1:14:48Augment entity with TileIndex and add EntityFlag_OccupiesTile
1:16:55philbohun I swear someone will make an "open world" Lemmings
🗪
1:16:55philbohun I swear someone will make an "open world" Lemmings
🗪
1:16:55philbohun I swear someone will make an "open world" Lemmings
🗪
1:17:17Replace GetClosestTraversable() with tile indexing in ExecuteBrainHero(), changing Occupying and CameFrom to be a v2s in entity
1:17:17Replace GetClosestTraversable() with tile indexing in ExecuteBrainHero(), changing Occupying and CameFrom to be a v2s in entity
1:17:17Replace GetClosestTraversable() with tile indexing in ExecuteBrainHero(), changing Occupying and CameFrom to be a v2s in entity
1:20:19Update DeleteEntity(), CreateEntity(), IsRoom() and EndWorldChange() to use our new "function" keyword
1:20:19Update DeleteEntity(), CreateEntity(), IsRoom() and EndWorldChange() to use our new "function" keyword
1:20:19Update DeleteEntity(), CreateEntity(), IsRoom() and EndWorldChange() to use our new "function" keyword
1:21:22Note mis-parsed error by 4coder
🗹
1:21:22Note mis-parsed error by 4coder
🗹
1:21:22Note mis-parsed error by 4coder
🗹
1:21:44Introduce a v2s overload of operator+()
1:21:44Introduce a v2s overload of operator+()
1:21:44Introduce a v2s overload of operator+()
1:23:03thesandvichmaker When I implement this code in C I tend to just make a macro festival to declare all the operator boilerplate
🗪
1:23:03thesandvichmaker When I implement this code in C I tend to just make a macro festival to declare all the operator boilerplate
🗪
1:23:03thesandvichmaker When I implement this code in C I tend to just make a macro festival to declare all the operator boilerplate
🗪
1:23:52thesandvichmaker This is one of the things I despise about GLM
🗪
1:23:52thesandvichmaker This is one of the things I despise about GLM
🗪
1:23:52thesandvichmaker This is one of the things I despise about GLM
🗪
1:23:59Introduce a v2s overload of AreEqual()
1:23:59Introduce a v2s overload of AreEqual()
1:23:59Introduce a v2s overload of AreEqual()
1:24:27thesandvichmaker It's the C++ math library everybody on the open source internet likes to use
🗪
1:24:27thesandvichmaker It's the C++ math library everybody on the open source internet likes to use
🗪
1:24:27thesandvichmaker It's the C++ math library everybody on the open source internet likes to use
🗪
1:24:40Implement the v2s overload of AreEqual()
1:24:40Implement the v2s overload of AreEqual()
1:24:40Implement the v2s overload of AreEqual()
1:24:58pajpiart Best music I've heard all year
🗪
1:24:58pajpiart Best music I've heard all year
🗪
1:24:58pajpiart Best music I've heard all year
🗪
1:25:40thebaker__ Indiana Jones theme is mouth-trumpetty
🗪
1:25:40thebaker__ Indiana Jones theme is mouth-trumpetty
🗪
1:25:40thebaker__ Indiana Jones theme is mouth-trumpetty
🗪
1:26:19Change ExecuteBrainHero() to test on EntityFlag_OccupiesTile rather than IsValid()
1:26:19Change ExecuteBrainHero() to test on EntityFlag_OccupiesTile rather than IsValid()
1:26:19Change ExecuteBrainHero() to test on EntityFlag_OccupiesTile rather than IsValid()
1:28:22Move on to ExecuteBrainSnake()
📖
1:28:22Move on to ExecuteBrainSnake()
📖
1:28:22Move on to ExecuteBrainSnake()
📖
1:28:37Wonder why ExecuteBrain*() first set CameFrom to Occupying
📖
1:28:37Wonder why ExecuteBrain*() first set CameFrom to Occupying
📖
1:28:37Wonder why ExecuteBrain*() first set CameFrom to Occupying
📖
1:29:11Replace GetClosestTraversable() with tile indexing in ExecuteBrainSnake()
1:29:11Replace GetClosestTraversable() with tile indexing in ExecuteBrainSnake()
1:29:11Replace GetClosestTraversable() with tile indexing in ExecuteBrainSnake()
1:30:06Consider changing how TransactionalOccupy() works
📖
1:30:06Consider changing how TransactionalOccupy() works
📖
1:30:06Consider changing how TransactionalOccupy() works
📖
1:32:16Fix ExecuteBrainHero() to set CameFrom to Occupying before TransactionalOccupy()
1:32:16Fix ExecuteBrainHero() to set CameFrom to Occupying before TransactionalOccupy()
1:32:16Fix ExecuteBrainHero() to set CameFrom to Occupying before TransactionalOccupy()
1:32:54Introduce SingleTileDeltaFrom() for ExecuteBrain*() to use
1:32:54Introduce SingleTileDeltaFrom() for ExecuteBrain*() to use
1:32:54Introduce SingleTileDeltaFrom() for ExecuteBrain*() to use
1:35:20Remove Traversables and Occupying from entity
1:35:20Remove Traversables and Occupying from entity
1:35:20Remove Traversables and Occupying from entity
1:35:46Change ExecuteBrainSwitches() to use IsOccupied(), removing entity_traversable_point and traversable_reference, and augmenting entity with WasOccupiedLastCheck
1:35:46Change ExecuteBrainSwitches() to use IsOccupied(), removing entity_traversable_point and traversable_reference, and augmenting entity with WasOccupiedLastCheck
1:35:46Change ExecuteBrainSwitches() to use IsOccupied(), removing entity_traversable_point and traversable_reference, and augmenting entity with WasOccupiedLastCheck
1:42:03Temporarily make IsOccupied() simply return false
1:42:03Temporarily make IsOccupied() simply return false
1:42:03Temporarily make IsOccupied() simply return false
1:42:31Determine to replace the ATan2() calls in ExecuteBrainSnake()
📖
1:42:31Determine to replace the ATan2() calls in ExecuteBrainSnake()
📖
1:42:31Determine to replace the ATan2() calls in ExecuteBrainSnake()
📖
1:44:35Introduce GetFacingDirectionFromSingleTileDelta() for ExecuteBrainSnake() to use
1:44:35Introduce GetFacingDirectionFromSingleTileDelta() for ExecuteBrainSnake() to use
1:44:35Introduce GetFacingDirectionFromSingleTileDelta() for ExecuteBrainSnake() to use
1:47:56bulmanator Pi and Tau have been cancelled
🗪
1:47:56bulmanator Pi and Tau have been cancelled
🗪
1:47:56bulmanator Pi and Tau have been cancelled
🗪
1:48:44technicbeam It's a math thing, and "Turns" hasn't become popular enough yet
🗪
1:48:44technicbeam It's a math thing, and "Turns" hasn't become popular enough yet
🗪
1:48:44technicbeam It's a math thing, and "Turns" hasn't become popular enough yet
🗪
1:49:36Implement GetFacingDirectionFromSingleTileDelta()
1:49:36Implement GetFacingDirectionFromSingleTileDelta()
1:49:36Implement GetFacingDirectionFromSingleTileDelta()
1:50:39nates7 Do you configure your sin, cos and tan functions to use 0-1, then, instead of radians?
🗪
1:50:39nates7 Do you configure your sin, cos and tan functions to use 0-1, then, instead of radians?
🗪
1:50:39nates7 Do you configure your sin, cos and tan functions to use 0-1, then, instead of radians?
🗪
1:50:48ponkkiz Some dude said tau > pi in some early stream's Q&A and we all fell for it
🗪
1:50:48ponkkiz Some dude said tau > pi in some early stream's Q&A and we all fell for it
🗪
1:50:48ponkkiz Some dude said tau > pi in some early stream's Q&A and we all fell for it
🗪
1:51:54rct33 Just don't let the math people see the video
🗪
1:51:54rct33 Just don't let the math people see the video
🗪
1:51:54rct33 Just don't let the math people see the video
🗪
1:52:44chadges_ For the assert would it be better to use an XOR since you don't want dTile x and y to both be 0?
🗪
1:52:44chadges_ For the assert would it be better to use an XOR since you don't want dTile x and y to both be 0?
🗪
1:52:44chadges_ For the assert would it be better to use an XOR since you don't want dTile x and y to both be 0?
🗪
1:53:17123_bou Yes please!
🗪
1:53:17123_bou Yes please!
🗪
1:53:17123_bou Yes please!
🗪
1:53:47Implement GetFacingDirectionFromSingleTileDelta() (cont.)
1:53:47Implement GetFacingDirectionFromSingleTileDelta() (cont.)
1:53:47Implement GetFacingDirectionFromSingleTileDelta() (cont.)
1:56:19whimax07 2 - y and 1 - x then some type of mask?
🗪
1:56:19whimax07 2 - y and 1 - x then some type of mask?
🗪
1:56:19whimax07 2 - y and 1 - x then some type of mask?
🗪
1:56:44Implement GetFacingDirectionFromSingleTileDelta() (cont.)
1:56:44Implement GetFacingDirectionFromSingleTileDelta() (cont.)
1:56:44Implement GetFacingDirectionFromSingleTileDelta() (cont.)
2:05:12Replace all ATan2() calls in ExecuteBrain*() with GetFacingDirectionFromSingleTileDelta()
2:05:12Replace all ATan2() calls in ExecuteBrain*() with GetFacingDirectionFromSingleTileDelta()
2:05:12Replace all ATan2() calls in ExecuteBrain*() with GetFacingDirectionFromSingleTileDelta()
2:11:17Introduce a v2s overload of operator-()
2:11:17Introduce a v2s overload of operator-()
2:11:17Introduce a v2s overload of operator-()
2:11:51Scan through our remaining traversable replacement work
📖
2:11:51Scan through our remaining traversable replacement work
📖
2:11:51Scan through our remaining traversable replacement work
📖
2:13:01#undef function for Windows
2:13:01#undef function for Windows
2:13:01#undef function for Windows
2:13:27Scan through our remaining traversable replacement work (cont.)
📖
2:13:27Scan through our remaining traversable replacement work (cont.)
📖
2:13:27Scan through our remaining traversable replacement work (cont.)
📖
2:13:58spacenaming Q: Don't know if it is still in there but in handmade_entity.cpp there was a flag check where the or / and part needed extra parentheses: ((Entity->Flags & EntityFlag_Deleted|EntityFlag_Active) == EntityFlag_Active)
🗪
2:13:58spacenaming Q: Don't know if it is still in there but in handmade_entity.cpp there was a flag check where the or / and part needed extra parentheses: ((Entity->Flags & EntityFlag_Deleted|EntityFlag_Active) == EntityFlag_Active)
🗪
2:13:58spacenaming Q: Don't know if it is still in there but in handmade_entity.cpp there was a flag check where the or / and part needed extra parentheses: ((Entity->Flags & EntityFlag_Deleted|EntityFlag_Active) == EntityFlag_Active)
🗪
2:14:30Fix the parentheses in IsActive()
2:14:30Fix the parentheses in IsActive()
2:14:30Fix the parentheses in IsActive()
2:14:40spacenaming Yep
🗪
2:14:40spacenaming Yep
🗪
2:14:40spacenaming Yep
🗪
2:15:03spacenaming And goes before or, if I am correct
🗪
2:15:03spacenaming And goes before or, if I am correct
🗪
2:15:03spacenaming And goes before or, if I am correct
🗪
2:15:30spacenaming I meant the execution
🗪
2:15:30spacenaming I meant the execution
🗪
2:15:30spacenaming I meant the execution
🗪
2:16:28und3f1n3d What editor is it? Smooth scroll looks nice
🗪
2:16:28und3f1n3d What editor is it? Smooth scroll looks nice
🗪
2:16:28und3f1n3d What editor is it? Smooth scroll looks nice
🗪
2:18:14valigo You can try to search for "scroll" right on GitHub and pray that their search will work3,4
🗪
2:18:14valigo You can try to search for "scroll" right on GitHub and pray that their search will work3,4
🗪
2:18:14valigo You can try to search for "scroll" right on GitHub and pray that their search will work3,4
🗪
2:22:34tarriest_python Pretty sure smoothscroll is default behaviour. Did you submit it to Allen and he added it to the default layer maybe? So it's probably part of 4coder_default_hooks.cpp5
🗪
2:22:34tarriest_python Pretty sure smoothscroll is default behaviour. Did you submit it to Allen and he added it to the default layer maybe? So it's probably part of 4coder_default_hooks.cpp5
🗪
2:22:34tarriest_python Pretty sure smoothscroll is default behaviour. Did you submit it to Allen and he added it to the default layer maybe? So it's probably part of 4coder_default_hooks.cpp5
🗪
2:26:14Reflect on our cubic-spline interpolation scrolling for 4coder
🗩
2:26:14Reflect on our cubic-spline interpolation scrolling for 4coder
🗩
2:26:14Reflect on our cubic-spline interpolation scrolling for 4coder
🗩
2:26:39Call it a day
🗩
2:26:39Call it a day
🗩
2:26:39Call it a day
🗩
You have arrived at the (current) end of Handmade Hero