EDuke32 Changelog Unofficial archive

Build 2788

26 June 2012 · 8 commits by 1 author · SVN

Builds by month 276 builds

  1. Jan

  2. Feb

  3. Mar

  4. Apr

  5. May

  6. Jun

  7. Jul

  8. Aug

  9. Sep

  10. Oct

  11. Nov

  12. Dec

Original log file · 20120626-2788.txt
------------------------------------------------------------------------
r2788 | helixhorned | 2012-06-26 12:50:04 -0700 (Tue, 26 Jun 2012) | 4 lines

Fix actors at action 0 executing the action C code protion in gameexec.c.

The bug was introduced with SAMESIZE_ACTOR_T enabling in r2208.
This fixes being unable to read the messages in A.Dream* by zykov eddy.
------------------------------------------------------------------------
r2787 | helixhorned | 2012-06-26 12:50:02 -0700 (Tue, 26 Jun 2012) | 1 line

some trivial mapster tweaks
------------------------------------------------------------------------
r2786 | helixhorned | 2012-06-26 12:49:59 -0700 (Tue, 26 Jun 2012) | 5 lines

Lunatic: safety tweaks, expose more stuff

Arrays inside structs must not be accessible, since they're not bound-checked
by the FFI. Therefore, we flatten them into repeated scalar fields and need
to write accessor functions later.
------------------------------------------------------------------------
r2785 | helixhorned | 2012-06-26 12:49:56 -0700 (Tue, 26 Jun 2012) | 3 lines

When teleporting silently, also set g_player[].ps->bobposx/y to the new position

This fixes an integer overflow when a distance is calculated later.
------------------------------------------------------------------------
r2784 | helixhorned | 2012-06-26 12:49:53 -0700 (Tue, 26 Jun 2012) | 18 lines

Integer Overflow Offensive continued: first round of -ftrapv - cleanness.

That is, "clang -ftrapv" builds don't abort almost immediately after entering
a level.

There are various classes of overflow bugs, needing different handling:
 - Some texture mapping code was written with signed integer wrapping semantics
   in mind.  In some places, we're able to get away with unsigned casts.
 - sometimes, we really need a wider range, like when calculating distances or
   dot products
 - negating INT_MIN.  Here, we cast to int64_t temporarily.  Note that if the
   result is 32-bit wide, no 64-bit code may actually need to be generated.
 - shifting into a signed integer's sign bit.  We cast to uint32 here.
 - in hitscan(), at the "abyss crash prevention code" comment, it's clearly
   the other code that is better...

This is not merely done for pedantry, but rather makes it easier to track down
overflow bugs having a real impact on the game.
------------------------------------------------------------------------
r2783 | helixhorned | 2012-06-26 12:49:50 -0700 (Tue, 26 Jun 2012) | 1 line

Fix a thinko in a comment (about commenting) in build/Makefile.
------------------------------------------------------------------------
r2782 | helixhorned | 2012-06-26 12:49:48 -0700 (Tue, 26 Jun 2012) | 1 line

engine.c: factor out two instances of dup code into setup_globals_sprite1()
------------------------------------------------------------------------
r2781 | helixhorned | 2012-06-26 12:49:44 -0700 (Tue, 26 Jun 2012) | 1 line

premap.c: make P_RandomSpawnPoint more readable by factoring out g_player[snum].ps
------------------------------------------------------------------------
Fix

Fix actors at action 0 executing the action C code protion in gameexec.c.

Philipp Kutin (Helixhorned) 26 Jun 2012, 12:50 UTC−7 r2788

The bug was introduced with SAMESIZE_ACTOR_T enabling in r2208. This fixes being unable to read the messages in A.Dream* by zykov eddy.

safety tweaks, expose more stuff

Philipp Kutin (Helixhorned) 26 Jun 2012, 12:49 UTC−7 r2786

Arrays inside structs must not be accessible, since they're not bound-checked by the FFI. Therefore, we flatten them into repeated scalar fields and need to write accessor functions later.

Fix

When teleporting silently, also set g_player[].ps->bobposx/y to the new position

Philipp Kutin (Helixhorned) 26 Jun 2012, 12:49 UTC−7 r2785

This fixes an integer overflow when a distance is calculated later.

Fix

Integer Overflow Offensive continued: first round of -ftrapv - cleanness.

Philipp Kutin (Helixhorned) 26 Jun 2012, 12:49 UTC−7 r2784

That is, "clang -ftrapv" builds don't abort almost immediately after entering a level. There are various classes of overflow bugs, needing different handling: - Some texture mapping code was written with signed integer wrapping semantics in mind. In some places, we're able to get away with unsigned casts. - sometimes, we really need a wider range, like when calculating distances or dot products - negating INT_MIN. Here, we cast to int64_t temporarily. Note that if the result is 32-bit wide, no 64-bit code may actually need to be generated. - shifting into a signed integer's sign bit. We cast to uint32 here. - in hitscan(), at the "abyss crash prevention code" comment, it's clearly the other code that is better... This is not merely done for pedantry, but rather makes it easier to track down overflow bugs having a real impact on the game.