Files
mazegame/engine/content/mathtable/mt_raycast_256.inc
T

156 lines
9.5 KiB
SQL

// ██▀▀█▀▀██▀▀▀▀▀▀▀█▀▀█ ▄▄ ▄▄
// ██ █▄ ▀██▄ ▄█ ▄█▄█ ▄▀██ ██▀ ██▄
// ▀▀ ▄█ ██ ▀▄██ ▀█▄▄ ██
// ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
// ─────────────────────────────────────────────────────────────────────────────
// MSXmath 1.8.2 by Guillaume "Aoineko" Blanchard
// under CC-BY-SA free license
//
// Parameters: Entries=256, Bytes=2 (16-bits), Shift=8 (Q8.8)
// ─────────────────────────────────────────────────────────────────────────────
// Sinus table. Range [0:Pi*2[
const unsigned short g_Sinus256[] = {
0x0000, 0x0006, 0x000D, 0x0013, 0x0019, 0x001F, 0x0026, 0x002C,
0x0032, 0x0038, 0x003E, 0x0044, 0x004A, 0x0050, 0x0056, 0x005C,
0x0062, 0x0068, 0x006D, 0x0073, 0x0079, 0x007E, 0x0084, 0x0089,
0x008E, 0x0093, 0x0098, 0x009D, 0x00A2, 0x00A7, 0x00AC, 0x00B1,
0x00B5, 0x00B9, 0x00BE, 0x00C2, 0x00C6, 0x00CA, 0x00CE, 0x00D1,
0x00D5, 0x00D8, 0x00DC, 0x00DF, 0x00E2, 0x00E5, 0x00E7, 0x00EA,
0x00ED, 0x00EF, 0x00F1, 0x00F3, 0x00F5, 0x00F7, 0x00F8, 0x00FA,
0x00FB, 0x00FC, 0x00FD, 0x00FE, 0x00FF, 0x00FF, 0x0100, 0x0100,
0x0100, 0x0100, 0x0100, 0x00FF, 0x00FF, 0x00FE, 0x00FD, 0x00FC,
0x00FB, 0x00FA, 0x00F8, 0x00F7, 0x00F5, 0x00F3, 0x00F1, 0x00EF,
0x00ED, 0x00EA, 0x00E7, 0x00E5, 0x00E2, 0x00DF, 0x00DC, 0x00D8,
0x00D5, 0x00D1, 0x00CE, 0x00CA, 0x00C6, 0x00C2, 0x00BE, 0x00B9,
0x00B5, 0x00B1, 0x00AC, 0x00A7, 0x00A2, 0x009D, 0x0098, 0x0093,
0x008E, 0x0089, 0x0084, 0x007E, 0x0079, 0x0073, 0x006D, 0x0068,
0x0062, 0x005C, 0x0056, 0x0050, 0x004A, 0x0044, 0x003E, 0x0038,
0x0032, 0x002C, 0x0026, 0x001F, 0x0019, 0x0013, 0x000D, 0x0006,
0x0000, 0xFFFA, 0xFFF3, 0xFFED, 0xFFE7, 0xFFE1, 0xFFDA, 0xFFD4,
0xFFCE, 0xFFC8, 0xFFC2, 0xFFBC, 0xFFB6, 0xFFB0, 0xFFAA, 0xFFA4,
0xFF9E, 0xFF98, 0xFF93, 0xFF8D, 0xFF87, 0xFF82, 0xFF7C, 0xFF77,
0xFF72, 0xFF6D, 0xFF68, 0xFF63, 0xFF5E, 0xFF59, 0xFF54, 0xFF4F,
0xFF4B, 0xFF47, 0xFF42, 0xFF3E, 0xFF3A, 0xFF36, 0xFF32, 0xFF2F,
0xFF2B, 0xFF28, 0xFF24, 0xFF21, 0xFF1E, 0xFF1B, 0xFF19, 0xFF16,
0xFF13, 0xFF11, 0xFF0F, 0xFF0D, 0xFF0B, 0xFF09, 0xFF08, 0xFF06,
0xFF05, 0xFF04, 0xFF03, 0xFF02, 0xFF01, 0xFF01, 0xFF00, 0xFF00,
0xFF00, 0xFF00, 0xFF00, 0xFF01, 0xFF01, 0xFF02, 0xFF03, 0xFF04,
0xFF05, 0xFF06, 0xFF08, 0xFF09, 0xFF0B, 0xFF0D, 0xFF0F, 0xFF11,
0xFF13, 0xFF16, 0xFF19, 0xFF1B, 0xFF1E, 0xFF21, 0xFF24, 0xFF28,
0xFF2B, 0xFF2F, 0xFF32, 0xFF36, 0xFF3A, 0xFF3E, 0xFF42, 0xFF47,
0xFF4B, 0xFF4F, 0xFF54, 0xFF59, 0xFF5E, 0xFF63, 0xFF68, 0xFF6D,
0xFF72, 0xFF77, 0xFF7C, 0xFF82, 0xFF87, 0xFF8D, 0xFF93, 0xFF98,
0xFF9E, 0xFFA4, 0xFFAA, 0xFFB0, 0xFFB6, 0xFFBC, 0xFFC2, 0xFFC8,
0xFFCE, 0xFFD4, 0xFFDA, 0xFFE1, 0xFFE7, 0xFFED, 0xFFF3, 0xFFFA,
};
// Cosinus table. Range [0:Pi*2[
const unsigned short g_Cosinus256[] = {
0x0100, 0x0100, 0x0100, 0x00FF, 0x00FF, 0x00FE, 0x00FD, 0x00FC,
0x00FB, 0x00FA, 0x00F8, 0x00F7, 0x00F5, 0x00F3, 0x00F1, 0x00EF,
0x00ED, 0x00EA, 0x00E7, 0x00E5, 0x00E2, 0x00DF, 0x00DC, 0x00D8,
0x00D5, 0x00D1, 0x00CE, 0x00CA, 0x00C6, 0x00C2, 0x00BE, 0x00B9,
0x00B5, 0x00B1, 0x00AC, 0x00A7, 0x00A2, 0x009D, 0x0098, 0x0093,
0x008E, 0x0089, 0x0084, 0x007E, 0x0079, 0x0073, 0x006D, 0x0068,
0x0062, 0x005C, 0x0056, 0x0050, 0x004A, 0x0044, 0x003E, 0x0038,
0x0032, 0x002C, 0x0026, 0x001F, 0x0019, 0x0013, 0x000D, 0x0006,
0x0000, 0xFFFA, 0xFFF3, 0xFFED, 0xFFE7, 0xFFE1, 0xFFDA, 0xFFD4,
0xFFCE, 0xFFC8, 0xFFC2, 0xFFBC, 0xFFB6, 0xFFB0, 0xFFAA, 0xFFA4,
0xFF9E, 0xFF98, 0xFF93, 0xFF8D, 0xFF87, 0xFF82, 0xFF7C, 0xFF77,
0xFF72, 0xFF6D, 0xFF68, 0xFF63, 0xFF5E, 0xFF59, 0xFF54, 0xFF4F,
0xFF4B, 0xFF47, 0xFF42, 0xFF3E, 0xFF3A, 0xFF36, 0xFF32, 0xFF2F,
0xFF2B, 0xFF28, 0xFF24, 0xFF21, 0xFF1E, 0xFF1B, 0xFF19, 0xFF16,
0xFF13, 0xFF11, 0xFF0F, 0xFF0D, 0xFF0B, 0xFF09, 0xFF08, 0xFF06,
0xFF05, 0xFF04, 0xFF03, 0xFF02, 0xFF01, 0xFF01, 0xFF00, 0xFF00,
0xFF00, 0xFF00, 0xFF00, 0xFF01, 0xFF01, 0xFF02, 0xFF03, 0xFF04,
0xFF05, 0xFF06, 0xFF08, 0xFF09, 0xFF0B, 0xFF0D, 0xFF0F, 0xFF11,
0xFF13, 0xFF16, 0xFF19, 0xFF1B, 0xFF1E, 0xFF21, 0xFF24, 0xFF28,
0xFF2B, 0xFF2F, 0xFF32, 0xFF36, 0xFF3A, 0xFF3E, 0xFF42, 0xFF47,
0xFF4B, 0xFF4F, 0xFF54, 0xFF59, 0xFF5E, 0xFF63, 0xFF68, 0xFF6D,
0xFF72, 0xFF77, 0xFF7C, 0xFF82, 0xFF87, 0xFF8D, 0xFF93, 0xFF98,
0xFF9E, 0xFFA4, 0xFFAA, 0xFFB0, 0xFFB6, 0xFFBC, 0xFFC2, 0xFFC8,
0xFFCE, 0xFFD4, 0xFFDA, 0xFFE1, 0xFFE7, 0xFFED, 0xFFF3, 0xFFFA,
0x0000, 0x0006, 0x000D, 0x0013, 0x0019, 0x001F, 0x0026, 0x002C,
0x0032, 0x0038, 0x003E, 0x0044, 0x004A, 0x0050, 0x0056, 0x005C,
0x0062, 0x0068, 0x006D, 0x0073, 0x0079, 0x007E, 0x0084, 0x0089,
0x008E, 0x0093, 0x0098, 0x009D, 0x00A2, 0x00A7, 0x00AC, 0x00B1,
0x00B5, 0x00B9, 0x00BE, 0x00C2, 0x00C6, 0x00CA, 0x00CE, 0x00D1,
0x00D5, 0x00D8, 0x00DC, 0x00DF, 0x00E2, 0x00E5, 0x00E7, 0x00EA,
0x00ED, 0x00EF, 0x00F1, 0x00F3, 0x00F5, 0x00F7, 0x00F8, 0x00FA,
0x00FB, 0x00FC, 0x00FD, 0x00FE, 0x00FF, 0x00FF, 0x0100, 0x0100,
};
// HypoDX table. Range [0:Pi*2[
const unsigned short g_HypoDX256[] = {
0x0100, 0x0100, 0x0100, 0x0101, 0x0101, 0x0102, 0x0103, 0x0104,
0x0105, 0x0106, 0x0108, 0x010A, 0x010C, 0x010E, 0x0110, 0x0112,
0x0115, 0x0118, 0x011B, 0x011F, 0x0122, 0x0126, 0x012A, 0x012F,
0x0134, 0x0139, 0x013F, 0x0145, 0x014B, 0x0152, 0x015A, 0x0161,
0x016A, 0x0173, 0x017D, 0x0188, 0x0194, 0x01A0, 0x01AE, 0x01BD,
0x01CD, 0x01DF, 0x01F2, 0x0207, 0x021F, 0x0239, 0x0257, 0x0278,
0x029D, 0x02C7, 0x02F8, 0x0330, 0x0372, 0x03C0, 0x041E, 0x0490,
0x0520, 0x05D9, 0x06D1, 0x082B, 0x0A34, 0x0D98, 0x1461, 0x28BF,
0x7FFF, 0x28BF, 0x1461, 0x0D98, 0x0A34, 0x082B, 0x06D1, 0x05D9,
0x0520, 0x0490, 0x041E, 0x03C0, 0x0372, 0x0330, 0x02F8, 0x02C7,
0x029D, 0x0278, 0x0257, 0x0239, 0x021F, 0x0207, 0x01F2, 0x01DF,
0x01CD, 0x01BD, 0x01AE, 0x01A0, 0x0194, 0x0188, 0x017D, 0x0173,
0x016A, 0x0161, 0x015A, 0x0152, 0x014B, 0x0145, 0x013F, 0x0139,
0x0134, 0x012F, 0x012A, 0x0126, 0x0122, 0x011F, 0x011B, 0x0118,
0x0115, 0x0112, 0x0110, 0x010E, 0x010C, 0x010A, 0x0108, 0x0106,
0x0105, 0x0104, 0x0103, 0x0102, 0x0101, 0x0101, 0x0100, 0x0100,
0x0100, 0x0100, 0x0100, 0x0101, 0x0101, 0x0102, 0x0103, 0x0104,
0x0105, 0x0106, 0x0108, 0x010A, 0x010C, 0x010E, 0x0110, 0x0112,
0x0115, 0x0118, 0x011B, 0x011F, 0x0122, 0x0126, 0x012A, 0x012F,
0x0134, 0x0139, 0x013F, 0x0145, 0x014B, 0x0152, 0x015A, 0x0161,
0x016A, 0x0173, 0x017D, 0x0188, 0x0194, 0x01A0, 0x01AE, 0x01BD,
0x01CD, 0x01DF, 0x01F2, 0x0207, 0x021F, 0x0239, 0x0257, 0x0278,
0x029D, 0x02C7, 0x02F8, 0x0330, 0x0372, 0x03C0, 0x041E, 0x0490,
0x0520, 0x05D9, 0x06D1, 0x082B, 0x0A34, 0x0D98, 0x1461, 0x28BF,
0x7FFF, 0x28BF, 0x1461, 0x0D98, 0x0A34, 0x082B, 0x06D1, 0x05D9,
0x0520, 0x0490, 0x041E, 0x03C0, 0x0372, 0x0330, 0x02F8, 0x02C7,
0x029D, 0x0278, 0x0257, 0x0239, 0x021F, 0x0207, 0x01F2, 0x01DF,
0x01CD, 0x01BD, 0x01AE, 0x01A0, 0x0194, 0x0188, 0x017D, 0x0173,
0x016A, 0x0161, 0x015A, 0x0152, 0x014B, 0x0145, 0x013F, 0x0139,
0x0134, 0x012F, 0x012A, 0x0126, 0x0122, 0x011F, 0x011B, 0x0118,
0x0115, 0x0112, 0x0110, 0x010E, 0x010C, 0x010A, 0x0108, 0x0106,
0x0105, 0x0104, 0x0103, 0x0102, 0x0101, 0x0101, 0x0100, 0x0100,
};
// HypoDY table. Range [0:Pi*2[
const unsigned short g_HypoDY256[] = {
0x7FFF, 0x28BF, 0x1461, 0x0D98, 0x0A34, 0x082B, 0x06D1, 0x05D9,
0x0520, 0x0490, 0x041E, 0x03C0, 0x0372, 0x0330, 0x02F8, 0x02C7,
0x029D, 0x0278, 0x0257, 0x0239, 0x021F, 0x0207, 0x01F2, 0x01DF,
0x01CD, 0x01BD, 0x01AE, 0x01A0, 0x0194, 0x0188, 0x017D, 0x0173,
0x016A, 0x0161, 0x015A, 0x0152, 0x014B, 0x0145, 0x013F, 0x0139,
0x0134, 0x012F, 0x012A, 0x0126, 0x0122, 0x011F, 0x011B, 0x0118,
0x0115, 0x0112, 0x0110, 0x010E, 0x010C, 0x010A, 0x0108, 0x0106,
0x0105, 0x0104, 0x0103, 0x0102, 0x0101, 0x0101, 0x0100, 0x0100,
0x0100, 0x0100, 0x0100, 0x0101, 0x0101, 0x0102, 0x0103, 0x0104,
0x0105, 0x0106, 0x0108, 0x010A, 0x010C, 0x010E, 0x0110, 0x0112,
0x0115, 0x0118, 0x011B, 0x011F, 0x0122, 0x0126, 0x012A, 0x012F,
0x0134, 0x0139, 0x013F, 0x0145, 0x014B, 0x0152, 0x015A, 0x0161,
0x016A, 0x0173, 0x017D, 0x0188, 0x0194, 0x01A0, 0x01AE, 0x01BD,
0x01CD, 0x01DF, 0x01F2, 0x0207, 0x021F, 0x0239, 0x0257, 0x0278,
0x029D, 0x02C7, 0x02F8, 0x0330, 0x0372, 0x03C0, 0x041E, 0x0490,
0x0520, 0x05D9, 0x06D1, 0x082B, 0x0A34, 0x0D98, 0x1461, 0x28BF,
0x7FFF, 0x28BF, 0x1461, 0x0D98, 0x0A34, 0x082B, 0x06D1, 0x05D9,
0x0520, 0x0490, 0x041E, 0x03C0, 0x0372, 0x0330, 0x02F8, 0x02C7,
0x029D, 0x0278, 0x0257, 0x0239, 0x021F, 0x0207, 0x01F2, 0x01DF,
0x01CD, 0x01BD, 0x01AE, 0x01A0, 0x0194, 0x0188, 0x017D, 0x0173,
0x016A, 0x0161, 0x015A, 0x0152, 0x014B, 0x0145, 0x013F, 0x0139,
0x0134, 0x012F, 0x012A, 0x0126, 0x0122, 0x011F, 0x011B, 0x0118,
0x0115, 0x0112, 0x0110, 0x010E, 0x010C, 0x010A, 0x0108, 0x0106,
0x0105, 0x0104, 0x0103, 0x0102, 0x0101, 0x0101, 0x0100, 0x0100,
0x0100, 0x0100, 0x0100, 0x0101, 0x0101, 0x0102, 0x0103, 0x0104,
0x0105, 0x0106, 0x0108, 0x010A, 0x010C, 0x010E, 0x0110, 0x0112,
0x0115, 0x0118, 0x011B, 0x011F, 0x0122, 0x0126, 0x012A, 0x012F,
0x0134, 0x0139, 0x013F, 0x0145, 0x014B, 0x0152, 0x015A, 0x0161,
0x016A, 0x0173, 0x017D, 0x0188, 0x0194, 0x01A0, 0x01AE, 0x01BD,
0x01CD, 0x01DF, 0x01F2, 0x0207, 0x021F, 0x0239, 0x0257, 0x0278,
0x029D, 0x02C7, 0x02F8, 0x0330, 0x0372, 0x03C0, 0x041E, 0x0490,
0x0520, 0x05D9, 0x06D1, 0x082B, 0x0A34, 0x0D98, 0x1461, 0x28BF,
};
// Size: 2048 bytes