Skip to content

Instantly share code, notes, and snippets.

@jin1016
Created December 14, 2013 16:31
Show Gist options
  • Save jin1016/7961426 to your computer and use it in GitHub Desktop.
Save jin1016/7961426 to your computer and use it in GitHub Desktop.
XP3 読込み修正コード
//---------------------------------------------------------------------------
tjs_int16 tTVPXP3Archive::ReadI16FromMem(const tjs_uint8 *mem)
{
#if 0
return (tjs_int16)mem[0] + ((tjs_int16)mem[1] << 8);
#else
tjs_uint16 ret = (tjs_uint16)mem[0] | ((tjs_uint16)mem[1] << 8);
return (tjs_int16)ret;
#endif
}
//---------------------------------------------------------------------------
tjs_int32 tTVPXP3Archive::ReadI32FromMem(const tjs_uint8 *mem)
{
#if 0
return (tjs_int32)mem[0] + ((tjs_int32)mem[1] << 8) +
((tjs_int32)mem[2] << 16) + ((tjs_int32)mem[3] << 24);
#else
tjs_uint32 ret = (tjs_uint32)mem[0] | ((tjs_uint32)mem[1] << 8) |
((tjs_uint32)mem[2] << 16) | ((tjs_uint32)mem[3] << 24);
return (tjs_int32)ret;
#endif
}
//---------------------------------------------------------------------------
tjs_int64 tTVPXP3Archive::ReadI64FromMem(const tjs_uint8 *mem)
{
#if 0
tjs_int32 low = ReadI32FromMem(mem);
tjs_int32 high = ReadI32FromMem(mem + 4);
return ((tjs_int64)high << 32) | ((tjs_int64)low);
#else
tjs_uint64 ret = (tjs_uint64)mem[0] | ((tjs_uint64)mem[1] << 8) |
((tjs_uint64)mem[2] << 16) | ((tjs_uint64)mem[3] << 24) |
((tjs_uint64)mem[4] << 32) | ((tjs_uint64)mem[5] << 40) |
((tjs_uint64)mem[6] << 48) | ((tjs_uint64)mem[7] << 56);
return (tjs_int64)ret;
#endif
}
//---------------------------------------------------------------------------
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment