When memcpy() change!

To start of, yes, I know that this article touch undefined behavior and that all bets are off! I am currently working on a bigger post on swapping memory that is THIS close to being done… any day now (he has been saying the last year!). However this topic popped up and I was wondering if it was worth making the other post longer or just make a small one about it.

Read More

Macros and Lambdas

Time for a short post on using lambdas to construct macros… that was a sentence that will be able to trigger 2 camps in one go :D Defer First of, using lambdas to implement a defer() is really neat, however others has already written about that so that I don’t have to! A Defer Statement For C++11 Call once So from my end I’ll start of with a quick one for constructing a macro that only does something once, lets call it IS_FIRST_CALL().

Read More

"ProtoThreads" with a twist.

For a long time I’v been interested in running game-specific/entity-specific code in coroutines. Something like the following. void some_game_object_behavior( entity ent, ... ) { pnt3 points[] = { {1,1,1}, {2,2,2}, {3,3,3}, {4,4,4} }; int pos = 0; while(entity_alive(ent)) { // move the entity to a position and yield coroutine while movement is ongoing. move_to(ent, points[pos % ARRAY_LENGTH(points)]); pos++; for(int i = 0; i < 4; ++i) { shoot_bullet(ent); wait_sec(ent, 2); // do nothing for 2 seconds and yield the coroutine for that duration.

Read More