19 Jan 2009
This commit is contained in:
parent
a8b771b4a4
commit
a06a514afd
669
baserc/client.h
669
baserc/client.h
|
@ -1,669 +0,0 @@
|
||||||
const unsigned char client_dat[] = {
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x88, 0x0e, 0x00,
|
|
||||||
0x00, 0x3f, 0x00, 0x00, 0x00, 0x3f, 0x05, 0x00, 0x00, 0x29, 0x05,
|
|
||||||
0x00, 0x00, 0x95, 0x16, 0x00, 0x00, 0x86, 0x00, 0x00, 0x00, 0x0f,
|
|
||||||
0x19, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x92, 0x13, 0x00, 0x00,
|
|
||||||
0x80, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x00, 0x00, 0x54, 0x0a, 0x00,
|
|
||||||
0x00, 0xbb, 0x19, 0x00, 0x00, 0x0c, 0x03, 0x00, 0x00, 0x1b, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0xa9, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0d, 0x0a, 0x0d,
|
|
||||||
0x0a, 0x54, 0x68, 0x69, 0x73, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20,
|
|
||||||
0x77, 0x61, 0x73, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64,
|
|
||||||
0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x58, 0x61, 0x73, 0x68, 0x33,
|
|
||||||
0x44, 0x20, 0x51, 0x75, 0x61, 0x6b, 0x65, 0x43, 0x20, 0x63, 0x6f,
|
|
||||||
0x6d, 0x70, 0x69, 0x6c, 0x65, 0x72, 0x2c, 0x0a, 0x77, 0x68, 0x6f,
|
|
||||||
0x20, 0x62, 0x61, 0x73, 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x20, 0x6f,
|
|
||||||
0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x20, 0x63, 0x6f, 0x64,
|
|
||||||
0x65, 0x20, 0x6f, 0x66, 0x20, 0x46, 0x6f, 0x72, 0x65, 0x54, 0x68,
|
|
||||||
0x6f, 0x75, 0x67, 0x68, 0x74, 0x27, 0x73, 0x20, 0x51, 0x75, 0x61,
|
|
||||||
0x6b, 0x65, 0x43, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x69, 0x6c, 0x65,
|
|
||||||
0x72, 0x2e, 0x0a, 0x54, 0x68, 0x61, 0x6e, 0x6b, 0x73, 0x20, 0x74,
|
|
||||||
0x6f, 0x20, 0x49, 0x44, 0x20, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61,
|
|
||||||
0x72, 0x65, 0x20, 0x61, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x2e, 0x00,
|
|
||||||
0x0d, 0x0a, 0x0d, 0x0a, 0x49, 0x04, 0x00, 0x00, 0x78, 0xda, 0x75,
|
|
||||||
0x56, 0x4b, 0x73, 0xe3, 0x28, 0x10, 0xe6, 0x9c, 0x5f, 0x91, 0x4b,
|
|
||||||
0x8e, 0x3b, 0xde, 0x24, 0x33, 0xb3, 0x8f, 0x9b, 0x27, 0xf1, 0x64,
|
|
||||||
0x5c, 0x9b, 0x99, 0xb8, 0xec, 0x24, 0x55, 0x7b, 0x59, 0x15, 0x86,
|
|
||||||
0x96, 0x44, 0x19, 0x81, 0x16, 0x90, 0x6d, 0x3c, 0x7f, 0x7e, 0x1b,
|
|
||||||
0x90, 0xb0, 0xec, 0x64, 0x0f, 0x56, 0x7f, 0xdd, 0x74, 0x37, 0xd0,
|
|
||||||
0x2f, 0x4c, 0xac, 0xee, 0x14, 0x2f, 0x1c, 0xa9, 0x3b, 0x3e, 0x51,
|
|
||||||
0x5d, 0x53, 0xfc, 0x9a, 0xd1, 0x75, 0x46, 0x37, 0x19, 0xdd, 0x66,
|
|
||||||
0xf4, 0x31, 0xa3, 0x4f, 0x19, 0x7d, 0xce, 0xe8, 0xb7, 0x8c, 0x7e,
|
|
||||||
0xcf, 0xe8, 0x8f, 0x8c, 0x7e, 0x89, 0x88, 0xd5, 0xd7, 0x3d, 0xbd,
|
|
||||||
0xe9, 0xe9, 0x2d, 0xd9, 0x08, 0x29, 0x49, 0x67, 0x81, 0x70, 0xa3,
|
|
||||||
0x5b, 0x62, 0xa9, 0x0f, 0xbf, 0xc2, 0x01, 0x6d, 0x08, 0x04, 0x4b,
|
|
||||||
0xca, 0x9c, 0xd8, 0x0a, 0xe7, 0x89, 0x50, 0xa5, 0x26, 0xad, 0xd1,
|
|
||||||
0x15, 0xa9, 0xc4, 0x16, 0x48, 0xa5, 0x39, 0x29, 0xa5, 0x27, 0x4a,
|
|
||||||
0x3b, 0x6a, 0x2a, 0x70, 0x08, 0x98, 0x14, 0x2d, 0xd9, 0x01, 0x6d,
|
|
||||||
0x15, 0xec, 0x5d, 0x04, 0xad, 0x81, 0x2d, 0x61, 0x46, 0x5b, 0x5b,
|
|
||||||
0x53, 0x61, 0xa2, 0x48, 0x2b, 0x3b, 0x31, 0x82, 0x5d, 0x89, 0x0f,
|
|
||||||
0x3b, 0xba, 0xcd, 0x12, 0x27, 0xd4, 0xe6, 0xfa, 0x44, 0x62, 0x0a,
|
|
||||||
0xd8, 0xb7, 0xb7, 0x51, 0xf4, 0xed, 0xe5, 0xbe, 0x98, 0x2b, 0xe1,
|
|
||||||
0x22, 0x58, 0x82, 0xe2, 0x60, 0xfe, 0xbc, 0x5c, 0x53, 0x7e, 0xc9,
|
|
||||||
0xa4, 0xfd, 0x60, 0x1d, 0x75, 0x30, 0x5a, 0x89, 0x70, 0xe5, 0x3a,
|
|
||||||
0x2e, 0xf4, 0x6c, 0x0b, 0x2a, 0x19, 0xbd, 0xb4, 0x1c, 0xb5, 0x66,
|
|
||||||
0xca, 0x09, 0x27, 0xc0, 0x46, 0xd1, 0x82, 0x1a, 0x0b, 0xdf, 0xc1,
|
|
||||||
0x5a, 0x5a, 0x25, 0xf3, 0x55, 0xdd, 0x39, 0xae, 0x77, 0x8a, 0x94,
|
|
||||||
0x86, 0x2a, 0x8e, 0xa7, 0x0e, 0xdf, 0x25, 0x50, 0xbe, 0xd0, 0x96,
|
|
||||||
0x5c, 0x89, 0xa8, 0x73, 0x6f, 0xe8, 0xee, 0xab, 0x00, 0xc9, 0x23,
|
|
||||||
0xf7, 0x95, 0x72, 0x98, 0xca, 0xb6, 0xa6, 0x84, 0xe9, 0xa6, 0xd1,
|
|
||||||
0x6a, 0x52, 0x62, 0x2c, 0x0b, 0x03, 0xcc, 0x65, 0xe5, 0x2f, 0xd4,
|
|
||||||
0xcc, 0x9b, 0x61, 0x87, 0x20, 0xb8, 0xc3, 0x23, 0x81, 0xc9, 0xe2,
|
|
||||||
0xde, 0x70, 0x4d, 0x4d, 0xb1, 0xa6, 0x6c, 0x33, 0xe6, 0xa5, 0xa6,
|
|
||||||
0x7c, 0xec, 0xe7, 0x01, 0x14, 0x60, 0xe0, 0xde, 0x7a, 0x3a, 0x5f,
|
|
||||||
0x58, 0xe2, 0x01, 0xa8, 0xaa, 0x24, 0x2c, 0x46, 0xc2, 0xc5, 0x1b,
|
|
||||||
0xcb, 0x20, 0x61, 0xb2, 0x90, 0xb0, 0x05, 0x69, 0x6b, 0xed, 0x0a,
|
|
||||||
0x45, 0x1b, 0x20, 0x96, 0xa5, 0x9d, 0x85, 0xaa, 0x86, 0xc3, 0x34,
|
|
||||||
0x59, 0x10, 0x16, 0x43, 0x88, 0xe2, 0xd1, 0x5e, 0xfb, 0x80, 0x2f,
|
|
||||||
0x24, 0xfd, 0xb7, 0x03, 0x12, 0x8e, 0x5f, 0x99, 0x50, 0xda, 0x13,
|
|
||||||
0xdb, 0x4a, 0x6a, 0xeb, 0xac, 0xb0, 0x4a, 0x6c, 0xef, 0x4d, 0x61,
|
|
||||||
0xa9, 0xb4, 0x14, 0x0b, 0x8e, 0x47, 0x77, 0xb8, 0xf3, 0x2e, 0xb2,
|
|
||||||
0xc7, 0xdd, 0x12, 0x1b, 0x73, 0xa4, 0xad, 0xeb, 0xb3, 0x1a, 0xca,
|
|
||||||
0xb5, 0xa4, 0x0c, 0xae, 0x33, 0xba, 0xc9, 0xe8, 0x36, 0xa3, 0x8f,
|
|
||||||
0x19, 0x7d, 0xea, 0x0b, 0x1c, 0x13, 0x37, 0x9c, 0x23, 0x26, 0x59,
|
|
||||||
0x84, 0xc0, 0xe0, 0x81, 0x3c, 0xfa, 0xbc, 0x7b, 0x4c, 0x55, 0xb0,
|
|
||||||
0xc2, 0x0a, 0x76, 0xab, 0x70, 0xf4, 0x05, 0x5e, 0x02, 0xcf, 0xd7,
|
|
||||||
0x08, 0xcb, 0x26, 0x8e, 0xca, 0x4d, 0x2c, 0xbf, 0x7f, 0x3e, 0x5f,
|
|
||||||
0xd9, 0x0b, 0xf2, 0x17, 0xe6, 0x16, 0xf8, 0xe5, 0x77, 0xac, 0x4d,
|
|
||||||
0x0c, 0xde, 0xc5, 0xd1, 0x18, 0xcc, 0x16, 0xcc, 0x50, 0x48, 0x18,
|
|
||||||
0xd0, 0x16, 0x9d, 0x09, 0x26, 0xb1, 0xcc, 0x32, 0x9a, 0xac, 0xbb,
|
|
||||||
0xf5, 0x5a, 0x42, 0xb0, 0xf9, 0x12, 0xd1, 0xe2, 0x1d, 0x1d, 0x8b,
|
|
||||||
0x70, 0x13, 0x54, 0x56, 0x01, 0xbc, 0xab, 0xd1, 0xe8, 0x4d, 0xef,
|
|
||||||
0x04, 0xcf, 0xe2, 0xde, 0x53, 0xa9, 0xa4, 0xde, 0x05, 0x8d, 0x67,
|
|
||||||
0xc0, 0x5b, 0x6a, 0xbc, 0x55, 0x8a, 0x3d, 0x4a, 0x66, 0xfb, 0x56,
|
|
||||||
0x6a, 0x2b, 0xb4, 0x7a, 0xcf, 0x2c, 0xf4, 0x3e, 0x7a, 0x4c, 0xbb,
|
|
||||||
0x07, 0x8b, 0x77, 0x95, 0xa0, 0xa4, 0x9d, 0x74, 0xfd, 0xcd, 0xa3,
|
|
||||||
0x70, 0x56, 0x96, 0xa1, 0xda, 0x39, 0x30, 0x2a, 0xed, 0xe4, 0xa7,
|
|
||||||
0x65, 0xda, 0xb0, 0x3a, 0x87, 0xe6, 0x19, 0x9a, 0x16, 0x7b, 0xce,
|
|
||||||
0xa6, 0x66, 0x75, 0xbe, 0x85, 0xcb, 0x2b, 0x71, 0xf1, 0x66, 0x19,
|
|
||||||
0x13, 0x74, 0x47, 0x25, 0x5b, 0x42, 0x89, 0x3b, 0x90, 0x16, 0x27,
|
|
||||||
0xc6, 0x4e, 0x1b, 0x6c, 0xb1, 0x06, 0x07, 0x49, 0x28, 0x49, 0x03,
|
|
||||||
0x54, 0x3a, 0x81, 0x00, 0x1b, 0xb3, 0x81, 0x88, 0xb6, 0x02, 0x50,
|
|
||||||
0xa7, 0x1a, 0x68, 0xb1, 0xcf, 0xc8, 0x67, 0x74, 0x88, 0x28, 0x36,
|
|
||||||
0x82, 0x1d, 0xc1, 0x5e, 0xb7, 0x67, 0xfc, 0x98, 0x41, 0x8b, 0xa2,
|
|
||||||
0xd4, 0x66, 0x47, 0x0d, 0x3f, 0xa2, 0xa0, 0x9f, 0xb1, 0x1f, 0xe1,
|
|
||||||
0xa0, 0x6d, 0x44, 0x55, 0xbb, 0x81, 0x46, 0xcd, 0x84, 0x7c, 0x46,
|
|
||||||
0x41, 0xab, 0x6b, 0xe3, 0x27, 0xae, 0x23, 0xf1, 0x89, 0x1c, 0x88,
|
|
||||||
0x56, 0xa9, 0x61, 0x48, 0xaa, 0x47, 0x9c, 0xb6, 0x64, 0x87, 0x63,
|
|
||||||
0xca, 0xc4, 0x96, 0xc4, 0x52, 0x12, 0xd8, 0xa7, 0xa5, 0xa4, 0x95,
|
|
||||||
0x0d, 0x65, 0x35, 0xba, 0xcc, 0x09, 0x87, 0x5e, 0x4f, 0x79, 0x7f,
|
|
||||||
0xc6, 0x1f, 0x88, 0x15, 0x4d, 0x70, 0x98, 0x08, 0xea, 0xf7, 0xc0,
|
|
||||||
0x0f, 0x20, 0x6a, 0x84, 0x70, 0x26, 0x92, 0x34, 0x52, 0x30, 0x7b,
|
|
||||||
0x70, 0x20, 0x82, 0x63, 0x16, 0x5a, 0xe1, 0x30, 0xbd, 0xc1, 0x77,
|
|
||||||
0x0d, 0xe9, 0xe6, 0x19, 0xf6, 0x61, 0xed, 0x19, 0x3f, 0x66, 0x0e,
|
|
||||||
0xa4, 0x0e, 0x19, 0xac, 0x31, 0xa1, 0xfb, 0x02, 0x86, 0x19, 0x8c,
|
|
||||||
0x4c, 0xba, 0xa1, 0x25, 0x12, 0x4c, 0x8b, 0xb9, 0x65, 0xf8, 0xc4,
|
|
||||||
0xe0, 0xed, 0xb1, 0xf9, 0x42, 0x99, 0x62, 0x51, 0x35, 0x3a, 0x04,
|
|
||||||
0x26, 0xce, 0xc5, 0xb6, 0x53, 0xac, 0x8e, 0x17, 0x1a, 0x41, 0xdc,
|
|
||||||
0x73, 0xc4, 0xf8, 0x31, 0x73, 0x38, 0xbe, 0x3a, 0xc9, 0xea, 0x94,
|
|
||||||
0x0d, 0x41, 0x3b, 0x15, 0xf8, 0x73, 0x41, 0x2a, 0x9f, 0x78, 0x5c,
|
|
||||||
0x4f, 0xb0, 0x65, 0xf1, 0xc9, 0x66, 0x5a, 0x6a, 0x33, 0xc6, 0xe8,
|
|
||||||
0x66, 0xcc, 0x9d, 0xe8, 0xa1, 0x83, 0xc4, 0xd1, 0xf8, 0x42, 0xe0,
|
|
||||||
0xac, 0x03, 0x50, 0x21, 0xb4, 0x09, 0xf8, 0x01, 0xec, 0x06, 0x50,
|
|
||||||
0x93, 0xa0, 0x6d, 0xbd, 0x2d, 0xb0, 0x89, 0xd7, 0xd8, 0x4f, 0x98,
|
|
||||||
0x47, 0x6a, 0x6d, 0x6c, 0x81, 0x24, 0x89, 0xb0, 0xd1, 0x1c, 0xa4,
|
|
||||||
0xc0, 0x79, 0x86, 0xae, 0x42, 0xf1, 0x24, 0x88, 0xf7, 0x16, 0x8a,
|
|
||||||
0xe0, 0x68, 0xc6, 0xb1, 0x16, 0x35, 0x88, 0xc6, 0xfa, 0x0b, 0xa2,
|
|
||||||
0x48, 0x70, 0xdf, 0x1e, 0xf8, 0x01, 0x1c, 0x70, 0xca, 0x29, 0x1b,
|
|
||||||
0x3f, 0xb8, 0x1a, 0x89, 0x4f, 0xe4, 0x10, 0x72, 0x13, 0x13, 0x14,
|
|
||||||
0x57, 0x02, 0xf1, 0x89, 0x60, 0xa1, 0x68, 0x29, 0x70, 0x70, 0x03,
|
|
||||||
0x4e, 0x7c, 0xc5, 0x80, 0x40, 0xec, 0x7f, 0x9b, 0x3a, 0x93, 0xac,
|
|
||||||
0x35, 0xc7, 0x6b, 0x6d, 0x70, 0xd7, 0xe1, 0x26, 0x65, 0x78, 0x2b,
|
|
||||||
0x2d, 0xa1, 0x22, 0x95, 0xb1, 0xc2, 0xb9, 0x55, 0xf4, 0x21, 0x7d,
|
|
||||||
0x9d, 0xdd, 0x15, 0x4f, 0xcb, 0xf9, 0xc3, 0xfc, 0x07, 0x6e, 0x32,
|
|
||||||
0x62, 0x4e, 0x56, 0x70, 0xc3, 0x72, 0x5f, 0xc4, 0x3f, 0x07, 0x11,
|
|
||||||
0x85, 0x67, 0x2e, 0xd2, 0xf8, 0xe7, 0x80, 0x2c, 0xa6, 0xcb, 0xe7,
|
|
||||||
0x62, 0xfa, 0xb8, 0xf8, 0x36, 0x7d, 0x9d, 0x3d, 0xa2, 0x9b, 0x53,
|
|
||||||
0xde, 0x9f, 0xf1, 0x87, 0xc4, 0x2f, 0xa7, 0xf7, 0xf3, 0x97, 0xd5,
|
|
||||||
0xc8, 0xe0, 0x28, 0xf0, 0xe7, 0x82, 0x37, 0x26, 0x0f, 0xcb, 0xe9,
|
|
||||||
0xeb, 0xfc, 0xf9, 0xef, 0xb7, 0xa6, 0xc3, 0x82, 0xff, 0xbf, 0x85,
|
|
||||||
0xde, 0xd5, 0xe3, 0xec, 0xc7, 0xc3, 0xf3, 0xb7, 0xd1, 0xee, 0x47,
|
|
||||||
0x81, 0x3f, 0x17, 0xf4, 0x26, 0x77, 0x4f, 0x8f, 0x4f, 0xcb, 0x41,
|
|
||||||
0x3d, 0x31, 0x7e, 0xcc, 0x1c, 0x08, 0xf9, 0x0f, 0x4f, 0xf4, 0xb0,
|
|
||||||
0xf8, 0x53, 0x0e, 0x00, 0x00, 0x78, 0xda, 0xcd, 0x5c, 0x09, 0x98,
|
|
||||||
0x14, 0xc5, 0x15, 0xee, 0xae, 0x65, 0x57, 0xb2, 0x88, 0xa8, 0x28,
|
|
||||||
0xc4, 0x44, 0x77, 0x16, 0xc4, 0x13, 0x4f, 0x44, 0x2e, 0xa3, 0x01,
|
|
||||||
0x57, 0x44, 0xc5, 0x0b, 0x95, 0x44, 0x04, 0x35, 0xba, 0x2a, 0x8a,
|
|
||||||
0xa2, 0x78, 0xb0, 0x68, 0x62, 0xc2, 0xec, 0x82, 0x40, 0x04, 0x04,
|
|
||||||
0x4f, 0x54, 0x40, 0x14, 0x10, 0x39, 0x14, 0x44, 0x51, 0x3c, 0xa2,
|
|
||||||
0x31, 0xae, 0xb8, 0xc0, 0x2a, 0xe2, 0x01, 0x11, 0xd7, 0x40, 0x82,
|
|
||||||
0x22, 0x28, 0x8a, 0xdc, 0xb8, 0x02, 0x62, 0xbd, 0xcc, 0xeb, 0xf4,
|
|
||||||
0xeb, 0x9f, 0xee, 0xaa, 0xee, 0x19, 0x21, 0xce, 0xf7, 0xf5, 0x76,
|
|
||||||
0xbd, 0x7d, 0x47, 0xbd, 0xaa, 0x7a, 0xef, 0xef, 0xaa, 0xea, 0x9a,
|
|
||||||
0x71, 0x9c, 0xe0, 0x27, 0xa5, 0xaf, 0xb4, 0xbe, 0x0e, 0x72, 0x33,
|
|
||||||
0x74, 0x23, 0x2e, 0x7f, 0xaa, 0xef, 0x45, 0xfa, 0xde, 0x92, 0xef,
|
|
||||||
0x7b, 0xb0, 0x7c, 0x99, 0x90, 0x4d, 0xe9, 0xfb, 0x7d, 0xfa, 0xbe,
|
|
||||||
0x83, 0xcb, 0x75, 0xf4, 0xbd, 0x95, 0xbe, 0x56, 0x81, 0x7d, 0x92,
|
|
||||||
0x4f, 0xb1, 0x4e, 0x01, 0xd3, 0xe5, 0x7c, 0x6f, 0xaf, 0xef, 0xb5,
|
|
||||||
0x3b, 0x76, 0xec, 0x90, 0xf2, 0xc5, 0x6c, 0xcb, 0x89, 0xb0, 0xd7,
|
|
||||||
0xc4, 0xc2, 0x6f, 0x6a, 0xe1, 0x1f, 0x0c, 0xfc, 0xa7, 0x80, 0xdf,
|
|
||||||
0xcc, 0xc2, 0x3f, 0xc4, 0xc2, 0x3f, 0xd4, 0xc2, 0x3f, 0xcc, 0xc2,
|
|
||||||
0x3f, 0xdc, 0xc2, 0x3f, 0xc2, 0xc2, 0x3f, 0xd2, 0xc2, 0x6f, 0x6e,
|
|
||||||
0xe1, 0x1f, 0x65, 0xe1, 0x1f, 0x6d, 0xe1, 0x1f, 0x63, 0xe1, 0x1f,
|
|
||||||
0x6b, 0xe1, 0x1f, 0x67, 0xe1, 0x1f, 0x6f, 0xe1, 0xb7, 0x10, 0x7c,
|
|
||||||
0xa2, 0x4f, 0x10, 0xf1, 0x4b, 0x34, 0xc5, 0x5e, 0x21, 0xd3, 0x6d,
|
|
||||||
0xf4, 0x35, 0x16, 0xf4, 0xcb, 0x43, 0xf2, 0x61, 0x20, 0xc7, 0x78,
|
|
||||||
0x4b, 0xbe, 0x17, 0x0a, 0xf9, 0x96, 0x50, 0xdf, 0x41, 0xa2, 0xbe,
|
|
||||||
0xd6, 0xfa, 0x1a, 0x0f, 0xf6, 0xc9, 0xb4, 0xf4, 0xff, 0xfb, 0x10,
|
|
||||||
0xfe, 0x01, 0x6e, 0xd0, 0x5e, 0x91, 0x21, 0x7f, 0x36, 0x43, 0xfe,
|
|
||||||
0x9c, 0xe8, 0xda, 0xed, 0x37, 0x16, 0xf6, 0x5b, 0xc5, 0x90, 0x3f,
|
|
||||||
0xd0, 0x75, 0x42, 0x3f, 0x57, 0x53, 0x1b, 0x35, 0xaf, 0x1e, 0xd3,
|
|
||||||
0x27, 0xea, 0x6b, 0xff, 0x08, 0x59, 0x8f, 0xbf, 0x9f, 0x85, 0xdf,
|
|
||||||
0xc8, 0x0d, 0xd2, 0x0d, 0x0d, 0xf2, 0xe4, 0x5f, 0x1b, 0xf0, 0x7f,
|
|
||||||
0x58, 0xb4, 0xb8, 0xd3, 0x8b, 0xc7, 0xd7, 0xeb, 0x33, 0xa2, 0x2b,
|
|
||||||
0xf4, 0xb5, 0x45, 0xd0, 0x03, 0x80, 0x3f, 0x50, 0xf0, 0x11, 0xaf,
|
|
||||||
0xc2, 0xfa, 0xa3, 0xad, 0xe8, 0x8f, 0x9f, 0xfb, 0x87, 0xda, 0xd7,
|
|
||||||
0xc1, 0x0d, 0xb6, 0xf7, 0x54, 0xa0, 0x4b, 0x80, 0x3e, 0x0d, 0xe8,
|
|
||||||
0x8e, 0x40, 0x9f, 0x0e, 0x74, 0x27, 0xa0, 0xcf, 0x00, 0xfa, 0x4c,
|
|
||||||
0xa0, 0xcf, 0xd2, 0xf4, 0x26, 0x43, 0x1f, 0x9b, 0x3e, 0x14, 0x2f,
|
|
||||||
0xff, 0x82, 0xf8, 0xe8, 0x0c, 0xf1, 0xb1, 0x8f, 0xbb, 0x73, 0x7c,
|
|
||||||
0x9f, 0xed, 0xfa, 0xfa, 0x2b, 0x85, 0x7e, 0x73, 0xc1, 0x8b, 0x8a,
|
|
||||||
0xbf, 0xb4, 0x13, 0xcc, 0x7f, 0x8a, 0x2f, 0x99, 0xff, 0xa3, 0xc1,
|
|
||||||
0x9e, 0x0b, 0xfa, 0xe7, 0xb9, 0xd9, 0xeb, 0x93, 0xbf, 0x9f, 0x87,
|
|
||||||
0xe4, 0x6b, 0x17, 0xd7, 0xcc, 0xbf, 0xc0, 0xc2, 0xbf, 0xd0, 0xf5,
|
|
||||||
0xeb, 0xeb, 0x02, 0xfd, 0x75, 0x25, 0xf8, 0x7b, 0x91, 0x01, 0xef,
|
|
||||||
0x9a, 0xb0, 0xbd, 0xee, 0x02, 0x6f, 0xba, 0xc3, 0x78, 0x4c, 0x08,
|
|
||||||
0xa9, 0xff, 0x52, 0x96, 0x2f, 0xd6, 0x57, 0xa9, 0x2e, 0x5f, 0xce,
|
|
||||||
0x34, 0xe1, 0xee, 0xc5, 0x6e, 0xa6, 0xcf, 0x25, 0x1e, 0x2b, 0xa1,
|
|
||||||
0x5f, 0xcd, 0x32, 0x9e, 0x7c, 0x37, 0x8b, 0xfc, 0x35, 0x6e, 0x46,
|
|
||||||
0x46, 0x8e, 0x67, 0x0f, 0x81, 0xff, 0x54, 0xbe, 0xd4, 0x0d, 0xea,
|
|
||||||
0xb7, 0x76, 0x7c, 0x3c, 0xee, 0xc1, 0x78, 0x4c, 0xff, 0xc7, 0xf6,
|
|
||||||
0xa5, 0x98, 0x2f, 0x9f, 0x3f, 0xf2, 0xf9, 0x41, 0xcf, 0x9f, 0x49,
|
|
||||||
0xa2, 0xfd, 0x3d, 0x3d, 0xfc, 0x87, 0xf8, 0xba, 0x8c, 0xfd, 0x21,
|
|
||||||
0xfc, 0x39, 0x38, 0xe4, 0x79, 0x25, 0xf9, 0x4d, 0x80, 0x5f, 0x01,
|
|
||||||
0xfc, 0x14, 0xf0, 0x07, 0x00, 0xff, 0x20, 0xe0, 0x0f, 0x04, 0xfe,
|
|
||||||
0xaf, 0x81, 0x5f, 0x05, 0xfc, 0x03, 0x80, 0x3f, 0x17, 0xf8, 0x8d,
|
|
||||||
0x81, 0xbf, 0x04, 0xf8, 0xfb, 0x03, 0x7f, 0x1e, 0xf0, 0x1b, 0x02,
|
|
||||||
0xff, 0x13, 0xe0, 0xef, 0x03, 0xfc, 0x1a, 0xe0, 0x37, 0x08, 0xc9,
|
|
||||||
0x5f, 0xc9, 0xaf, 0x0f, 0xf8, 0x48, 0xf3, 0x87, 0x55, 0x02, 0x9f,
|
|
||||||
0x7a, 0x6a, 0xfa, 0x4b, 0x41, 0x5f, 0xab, 0xe9, 0xaf, 0x04, 0x7d,
|
|
||||||
0x9d, 0xa6, 0x57, 0x0b, 0xba, 0x97, 0xa6, 0xbf, 0x16, 0xf4, 0xf5,
|
|
||||||
0x9a, 0xfe, 0x46, 0xd0, 0x37, 0x68, 0x7a, 0x8d, 0xa0, 0x7b, 0x6b,
|
|
||||||
0xfa, 0x5b, 0x41, 0xdf, 0xa8, 0xe9, 0xb5, 0x82, 0xbe, 0x49, 0xd3,
|
|
||||||
0xeb, 0x04, 0xdd, 0x47, 0xd3, 0xeb, 0xc5, 0xf3, 0x69, 0x83, 0xc0,
|
|
||||||
0xce, 0x32, 0xd1, 0x36, 0x9c, 0xaf, 0xd3, 0x45, 0xf9, 0xd5, 0x15,
|
|
||||||
0xe2, 0x35, 0x25, 0xe2, 0xb5, 0x98, 0x73, 0xa9, 0x50, 0xd0, 0x94,
|
|
||||||
0x8b, 0xf5, 0x21, 0xfe, 0xf6, 0x66, 0xba, 0x9d, 0xbe, 0x56, 0x8b,
|
|
||||||
0xfe, 0xeb, 0xcc, 0xfa, 0x5d, 0xdd, 0x60, 0x3e, 0xc8, 0xf9, 0x8c,
|
|
||||||
0x97, 0x3f, 0x3d, 0x78, 0x3e, 0x33, 0xcf, 0x80, 0xfd, 0xe4, 0xc7,
|
|
||||||
0x2d, 0x86, 0x7c, 0x6e, 0xce, 0xe3, 0xe9, 0x7d, 0xea, 0xd2, 0x7c,
|
|
||||||
0x9d, 0x75, 0x6e, 0x73, 0x33, 0xb1, 0x45, 0xf7, 0x5b, 0xdd, 0x78,
|
|
||||||
0xfa, 0xf9, 0x4e, 0x46, 0x96, 0x72, 0xa0, 0x2f, 0xe7, 0x77, 0x3f,
|
|
||||||
0xe8, 0xaf, 0xbe, 0x90, 0xdf, 0x35, 0x30, 0xbf, 0x9c, 0x1d, 0x82,
|
|
||||||
0x6f, 0x7d, 0x5d, 0xdf, 0xbf, 0x5b, 0xd9, 0x37, 0xf2, 0xa3, 0x11,
|
|
||||||
0xfb, 0xd3, 0x17, 0xfc, 0xcb, 0x77, 0xc2, 0xe5, 0x5d, 0xe6, 0x97,
|
|
||||||
0x0b, 0x39, 0x4f, 0xbf, 0xcc, 0xcd, 0xb4, 0xa7, 0xcc, 0xdd, 0x19,
|
|
||||||
0x2f, 0xca, 0x04, 0xbe, 0x4b, 0x3e, 0x15, 0x6f, 0xd7, 0x7f, 0x86,
|
|
||||||
0xba, 0x3e, 0x9e, 0xe1, 0xf3, 0x2d, 0x05, 0xed, 0x1d, 0xe6, 0xda,
|
|
||||||
0xdb, 0xfb, 0x17, 0xc0, 0xf3, 0x21, 0xae, 0x5f, 0xdf, 0x9d, 0x6e,
|
|
||||||
0x86, 0x7f, 0x17, 0xd7, 0xf7, 0x0e, 0xd4, 0x77, 0x27, 0xd4, 0x37,
|
|
||||||
0x3c, 0x46, 0x7d, 0x15, 0x22, 0xde, 0xe6, 0x83, 0xbd, 0x3f, 0x83,
|
|
||||||
0xbd, 0x77, 0x62, 0x8c, 0xd7, 0x20, 0x37, 0x48, 0x0f, 0x10, 0xf4,
|
|
||||||
0x1f, 0x75, 0xb9, 0xbf, 0xa0, 0xff, 0x44, 0xf1, 0x29, 0xda, 0xdb,
|
|
||||||
0x1f, 0xe2, 0xe5, 0x0e, 0xc8, 0xaf, 0x0a, 0xc8, 0xaf, 0x21, 0x09,
|
|
||||||
0xf2, 0x2b, 0xcc, 0xfe, 0x3d, 0x60, 0xff, 0x2e, 0x8b, 0xfd, 0x11,
|
|
||||||
0x6e, 0xb4, 0x7d, 0xfc, 0x50, 0xfc, 0x3d, 0x40, 0x38, 0xe2, 0x06,
|
|
||||||
0xe3, 0xad, 0x82, 0xef, 0xc4, 0x7f, 0x50, 0xdf, 0xef, 0xe7, 0x1c,
|
|
||||||
0xcf, 0xe7, 0xfd, 0x83, 0x0a, 0xbe, 0x53, 0x7d, 0x23, 0xc1, 0xdf,
|
|
||||||
0x7b, 0x0d, 0xcf, 0xc7, 0x14, 0xeb, 0x49, 0x7f, 0xef, 0x13, 0xfe,
|
|
||||||
0x12, 0x4d, 0x75, 0x79, 0xcf, 0x84, 0x93, 0x68, 0x2c, 0x0d, 0xf3,
|
|
||||||
0x35, 0x62, 0x3d, 0xb4, 0x0b, 0xe2, 0x7b, 0x34, 0xc4, 0xf7, 0x34,
|
|
||||||
0x37, 0x18, 0x5f, 0xd2, 0xfe, 0x23, 0x59, 0xc4, 0xf3, 0x78, 0x43,
|
|
||||||
0x3c, 0x3f, 0x9a, 0x45, 0x3c, 0x4f, 0x10, 0xf8, 0x33, 0x9e, 0xc7,
|
|
||||||
0xe7, 0x49, 0x1e, 0xbf, 0x09, 0x4c, 0x4f, 0x62, 0x7c, 0xa1, 0xff,
|
|
||||||
0x53, 0xfb, 0x26, 0x73, 0x7f, 0xd1, 0xff, 0xa7, 0x08, 0x7f, 0x46,
|
|
||||||
0xe9, 0xf2, 0x18, 0x41, 0x3f, 0xac, 0xcb, 0x63, 0x05, 0xbe, 0x8f,
|
|
||||||
0x62, 0x7c, 0x1a, 0xe7, 0x66, 0xe8, 0x87, 0x99, 0x7e, 0x9c, 0x9f,
|
|
||||||
0x3f, 0x63, 0x44, 0x3c, 0x14, 0xb3, 0x3f, 0x32, 0x7e, 0xa7, 0x41,
|
|
||||||
0x3c, 0x94, 0x8b, 0x67, 0x74, 0x5b, 0x7d, 0x7d, 0x0d, 0xf9, 0x30,
|
|
||||||
0x0e, 0xe2, 0x6b, 0x3a, 0xd8, 0x7b, 0x12, 0xf2, 0x61, 0x5a, 0xc2,
|
|
||||||
0x7c, 0x43, 0xfb, 0x33, 0xc0, 0xfe, 0x64, 0x8b, 0xfd, 0x6c, 0xf2,
|
|
||||||
0x6d, 0xa6, 0x25, 0xdf, 0x9e, 0x33, 0xe4, 0xdb, 0xb3, 0xae, 0x39,
|
|
||||||
0xbe, 0x8b, 0xa0, 0x7f, 0x67, 0x82, 0xbf, 0xcf, 0x81, 0xbf, 0x7b,
|
|
||||||
0x1a, 0xf2, 0x8b, 0xda, 0x3b, 0x58, 0x5f, 0xb3, 0x44, 0x3e, 0xbc,
|
|
||||||
0xa6, 0xcb, 0xb3, 0x21, 0x3f, 0x5e, 0x11, 0xf4, 0x2c, 0xf0, 0xef,
|
|
||||||
0x79, 0xe8, 0xcf, 0xd9, 0xd0, 0x9f, 0xaf, 0x24, 0x18, 0xaf, 0xb0,
|
|
||||||
0xf5, 0xda, 0x3f, 0xb4, 0xfe, 0x1c, 0x11, 0xaf, 0x6f, 0xea, 0xf2,
|
|
||||||
0xdb, 0x82, 0xae, 0xd4, 0xe5, 0xb9, 0x82, 0x7e, 0x4b, 0x97, 0xe7,
|
|
||||||
0x81, 0xff, 0xd5, 0x82, 0x9e, 0x03, 0xfe, 0xbf, 0x01, 0xfe, 0xcf,
|
|
||||||
0x05, 0xff, 0xab, 0x73, 0xf0, 0xdf, 0x8b, 0x87, 0x85, 0x96, 0x78,
|
|
||||||
0x78, 0xdf, 0x10, 0x0f, 0xef, 0x25, 0x8c, 0x87, 0x85, 0xe0, 0xef,
|
|
||||||
0xfb, 0x10, 0x0f, 0x0d, 0x2c, 0xeb, 0xe3, 0x0f, 0x60, 0xbd, 0xf7,
|
|
||||||
0x84, 0x65, 0x3f, 0x6c, 0x2f, 0x98, 0xaf, 0x7c, 0x08, 0xfa, 0xe3,
|
|
||||||
0x0c, 0xfa, 0x44, 0x7f, 0x04, 0xed, 0x59, 0x04, 0xed, 0xa9, 0x06,
|
|
||||||
0xfc, 0xa8, 0x07, 0xf5, 0x2d, 0x36, 0xd4, 0x77, 0x02, 0xd7, 0xa7,
|
|
||||||
0x0c, 0xed, 0x5d, 0x9c, 0xa3, 0xbf, 0x1f, 0x83, 0xbf, 0x4b, 0xa0,
|
|
||||||
0xff, 0x17, 0xc1, 0xf3, 0xaf, 0xda, 0x89, 0xff, 0xfc, 0xfb, 0xef,
|
|
||||||
0x7a, 0xc9, 0x8d, 0xee, 0xef, 0x30, 0xf9, 0xe5, 0x9a, 0x5f, 0x23,
|
|
||||||
0xf2, 0xe1, 0x33, 0x7a, 0x3f, 0x20, 0xf0, 0xbd, 0x1b, 0x3f, 0x73,
|
|
||||||
0x96, 0x72, 0x7c, 0x5d, 0xa2, 0xaf, 0x65, 0x22, 0x3f, 0x96, 0x42,
|
|
||||||
0xbc, 0x7d, 0x0e, 0xfb, 0x05, 0x6b, 0x01, 0x3f, 0x6a, 0xc0, 0xbf,
|
|
||||||
0x75, 0xe0, 0xcf, 0x0a, 0x43, 0xff, 0xb6, 0xe4, 0xfe, 0x2d, 0x10,
|
|
||||||
0xf2, 0x5f, 0x40, 0xfd, 0xde, 0x9c, 0xd9, 0x34, 0x3e, 0x45, 0x6e,
|
|
||||||
0x30, 0x3f, 0xbc, 0x2e, 0xea, 0x20, 0xf8, 0x61, 0xf3, 0x73, 0x92,
|
|
||||||
0x5f, 0x09, 0xf5, 0x2d, 0x82, 0xf1, 0xad, 0x86, 0xe7, 0xf3, 0x02,
|
|
||||||
0xcb, 0x7e, 0xe8, 0x46, 0xa0, 0xd7, 0x83, 0xbf, 0x6b, 0x68, 0x7d,
|
|
||||||
0x2a, 0xfc, 0xfd, 0x96, 0xd6, 0xa7, 0x82, 0x5e, 0x4b, 0xeb, 0x4f,
|
|
||||||
0xa0, 0x57, 0x0b, 0xba, 0x93, 0x13, 0x7c, 0xfe, 0xae, 0x02, 0xfc,
|
|
||||||
0x5a, 0x0d, 0xf3, 0x93, 0xbd, 0x85, 0xbf, 0xfb, 0xb3, 0xfe, 0x3a,
|
|
||||||
0xe8, 0x0f, 0xd9, 0xde, 0xf5, 0xd0, 0x1f, 0x1b, 0x80, 0xff, 0x19,
|
|
||||||
0xc4, 0xfb, 0x46, 0x88, 0xf7, 0x8d, 0x06, 0xbc, 0x69, 0x14, 0x51,
|
|
||||||
0xbf, 0x02, 0xff, 0x36, 0x31, 0x1e, 0x76, 0x60, 0x7e, 0x91, 0xc1,
|
|
||||||
0xdf, 0xcd, 0xbb, 0xc1, 0xdf, 0x4d, 0x16, 0x7f, 0xb7, 0x24, 0xf0,
|
|
||||||
0xf7, 0xbb, 0xdd, 0xe0, 0xef, 0x16, 0x8b, 0xbf, 0xb5, 0x3f, 0x33,
|
|
||||||
0x7f, 0x6b, 0x2d, 0xfe, 0xd6, 0x38, 0xf1, 0xfd, 0xfd, 0x7e, 0x37,
|
|
||||||
0xf8, 0x5b, 0xe3, 0x44, 0xd7, 0xbf, 0x75, 0x17, 0xd6, 0x8f, 0xef,
|
|
||||||
0xcb, 0x10, 0x0f, 0x1b, 0x33, 0xde, 0xa5, 0x0d, 0xef, 0xbf, 0x5a,
|
|
||||||
0x58, 0x9e, 0x77, 0xdb, 0x42, 0xf0, 0x37, 0xee, 0xfb, 0x31, 0x0f,
|
|
||||||
0x2f, 0x73, 0xc1, 0xcf, 0xa5, 0x21, 0xf6, 0xf3, 0x95, 0x99, 0xaf,
|
|
||||||
0x2c, 0x7c, 0x97, 0xf9, 0x25, 0x6c, 0xab, 0x1c, 0xfa, 0xa7, 0x4e,
|
|
||||||
0x44, 0xfd, 0xf9, 0xac, 0x5f, 0x57, 0xeb, 0xe4, 0xa9, 0xcc, 0x7e,
|
|
||||||
0x97, 0x0a, 0xd9, 0xcf, 0xcd, 0x03, 0xfb, 0x15, 0x31, 0xed, 0xff,
|
|
||||||
0xaf, 0xff, 0x94, 0xbf, 0x9f, 0x19, 0x66, 0xbf, 0x0e, 0xd8, 0x9f,
|
|
||||||
0x9f, 0xd0, 0x7e, 0x81, 0xc1, 0x3e, 0xad, 0x97, 0x0b, 0xc0, 0xfe,
|
|
||||||
0x3c, 0x83, 0xfd, 0x2f, 0x84, 0x7e, 0x53, 0x2f, 0x3e, 0x22, 0xec,
|
|
||||||
0x13, 0x7f, 0x90, 0xe0, 0x7b, 0xf6, 0xf1, 0xfd, 0x6c, 0x5d, 0xcb,
|
|
||||||
0xfb, 0x91, 0x1f, 0x2c, 0xef, 0x3f, 0x76, 0x58, 0xf8, 0x4e, 0x84,
|
|
||||||
0x7f, 0xde, 0xfa, 0xe7, 0x07, 0x31, 0xff, 0xf9, 0x01, 0xe2, 0x9f,
|
|
||||||
0x7c, 0x97, 0xf1, 0x4c, 0xb1, 0x24, 0xf3, 0x89, 0x62, 0x4f, 0xe6,
|
|
||||||
0x2f, 0xc5, 0x82, 0x9c, 0xef, 0xd1, 0xd8, 0x35, 0x14, 0x34, 0xf5,
|
|
||||||
0x75, 0x23, 0xd8, 0xcf, 0xf6, 0xf6, 0xe0, 0x4f, 0x26, 0xec, 0x36,
|
|
||||||
0xac, 0x27, 0xe8, 0x7d, 0xe5, 0x2f, 0xb4, 0xfe, 0xaf, 0x44, 0x7f,
|
|
||||||
0x6d, 0x77, 0x83, 0xef, 0x9b, 0xca, 0x21, 0x9f, 0xf6, 0xb5, 0xf0,
|
|
||||||
0x97, 0x85, 0xf4, 0x57, 0xa1, 0xf2, 0xf7, 0x6f, 0x0b, 0x43, 0xe2,
|
|
||||||
0x39, 0x4f, 0xc8, 0xd7, 0x53, 0x41, 0x3c, 0xd9, 0x0c, 0xf6, 0x57,
|
|
||||||
0x80, 0xfd, 0x3d, 0x95, 0x19, 0x5f, 0xee, 0x76, 0xcc, 0xfe, 0xae,
|
|
||||||
0xb0, 0xe0, 0x4f, 0x7d, 0x18, 0xaf, 0xf9, 0x80, 0x3f, 0x1b, 0x0c,
|
|
||||||
0xf6, 0x49, 0x7e, 0x2f, 0x68, 0x8f, 0xc9, 0x1f, 0xdc, 0x7f, 0xf6,
|
|
||||||
0xde, 0x57, 0xaf, 0x84, 0xf7, 0xd5, 0xab, 0xe0, 0x7d, 0xf5, 0x97,
|
|
||||||
0xf0, 0xbe, 0x7a, 0x83, 0xa0, 0xe9, 0xfd, 0xcc, 0x77, 0x4c, 0xa3,
|
|
||||||
0xfd, 0x30, 0x7f, 0x4f, 0x54, 0xb9, 0xad, 0x7f, 0xc8, 0x7e, 0x33,
|
|
||||||
0xe5, 0x3f, 0xdf, 0xa8, 0xdc, 0x54, 0x5f, 0xed, 0x54, 0x66, 0xbc,
|
|
||||||
0xe9, 0xde, 0x02, 0xfa, 0xf3, 0x10, 0x81, 0xb7, 0xe7, 0xc2, 0x7e,
|
|
||||||
0xf4, 0xc1, 0x2a, 0x73, 0x27, 0x3d, 0x9a, 0xd7, 0xa7, 0xd8, 0xd6,
|
|
||||||
0xa1, 0x2a, 0x9e, 0x7c, 0x31, 0xcb, 0x1f, 0x16, 0x53, 0xbe, 0x09,
|
|
||||||
0xcb, 0x1f, 0x1e, 0x21, 0xef, 0x72, 0x9f, 0x1e, 0x61, 0xe1, 0x1f,
|
|
||||||
0x69, 0xe1, 0xb7, 0xb3, 0xf0, 0x8b, 0x78, 0xbf, 0xac, 0x95, 0xca,
|
|
||||||
0x94, 0x3d, 0xba, 0x1d, 0xd3, 0xcd, 0x95, 0x8f, 0xe7, 0x47, 0x89,
|
|
||||||
0xfe, 0x3b, 0x27, 0xc4, 0x5e, 0x1b, 0xe5, 0xb7, 0xaf, 0x35, 0x97,
|
|
||||||
0xe9, 0xaa, 0xcb, 0xe3, 0x45, 0xe5, 0xa3, 0x95, 0x3f, 0x7e, 0xc7,
|
|
||||||
0x18, 0xc6, 0x63, 0x84, 0x1b, 0xec, 0xaf, 0x72, 0x2e, 0x1f, 0x2b,
|
|
||||||
0xf4, 0x8f, 0x53, 0xc1, 0x78, 0x38, 0x5e, 0x05, 0x9f, 0x3f, 0x2d,
|
|
||||||
0x80, 0xdf, 0x12, 0xe8, 0x13, 0x94, 0x8f, 0x9f, 0x87, 0xaa, 0xe0,
|
|
||||||
0xfa, 0xe4, 0x08, 0x15, 0x5c, 0x9f, 0x94, 0xc2, 0xfe, 0xca, 0x60,
|
|
||||||
0xb1, 0xbe, 0x2f, 0xe6, 0xbe, 0xd9, 0x5b, 0xd0, 0xc7, 0x0a, 0xfc,
|
|
||||||
0x2c, 0x66, 0x5f, 0x24, 0x7e, 0xb6, 0x55, 0xc1, 0xf7, 0xaf, 0x14,
|
|
||||||
0x9b, 0x07, 0x32, 0x7d, 0x0a, 0xe5, 0x52, 0xc2, 0x7c, 0x68, 0xa6,
|
|
||||||
0x82, 0xef, 0xbb, 0x9a, 0xf1, 0x7c, 0xa1, 0x19, 0x3f, 0xff, 0x17,
|
|
||||||
0x18, 0xde, 0x77, 0xfd, 0x14, 0xf9, 0x48, 0x67, 0xf9, 0x4e, 0x83,
|
|
||||||
0xfe, 0x2d, 0x11, 0xf9, 0x49, 0xe5, 0x53, 0xf5, 0xd5, 0x8d, 0xf3,
|
|
||||||
0x93, 0xee, 0x6d, 0xc5, 0x78, 0xff, 0x96, 0xf1, 0xba, 0x1b, 0x8f,
|
|
||||||
0xf7, 0x6f, 0x58, 0xb6, 0x5b, 0x48, 0xfc, 0x16, 0xb0, 0x1c, 0xfd,
|
|
||||||
0xab, 0x23, 0xdf, 0xdb, 0x83, 0xfe, 0xc9, 0x31, 0xf5, 0x4f, 0xe7,
|
|
||||||
0x7b, 0x07, 0xd0, 0x3f, 0x25, 0xa6, 0x7e, 0x27, 0xe5, 0xfb, 0x7f,
|
|
||||||
0x51, 0x84, 0xbc, 0x97, 0x1f, 0x5d, 0x95, 0x9f, 0x5f, 0xdd, 0xb8,
|
|
||||||
0x7c, 0x86, 0xf0, 0x3f, 0x1b, 0xfd, 0x33, 0x85, 0xff, 0xd9, 0xe8,
|
|
||||||
0x9f, 0x25, 0xf2, 0xbb, 0xb3, 0x18, 0xbf, 0xdf, 0xe9, 0xf2, 0xd9,
|
|
||||||
0x86, 0xfc, 0xec, 0xca, 0xf5, 0x7a, 0xfd, 0xf5, 0x7b, 0xae, 0xfb,
|
|
||||||
0x9c, 0x88, 0xfa, 0xdb, 0x80, 0x7c, 0x6b, 0x96, 0x3f, 0x57, 0xe4,
|
|
||||||
0xf3, 0xf9, 0x10, 0x3f, 0xe7, 0x19, 0xea, 0x1f, 0xe8, 0x04, 0xed,
|
|
||||||
0xcd, 0xe3, 0x72, 0x17, 0x95, 0x4c, 0xfe, 0x02, 0xae, 0x9f, 0xfc,
|
|
||||||
0xbb, 0x50, 0xe0, 0x41, 0x47, 0xc0, 0x83, 0x33, 0x12, 0xe2, 0x41,
|
|
||||||
0x67, 0xc0, 0x83, 0x73, 0x01, 0x0f, 0xba, 0x00, 0x1e, 0x5c, 0x0c,
|
|
||||||
0x78, 0x70, 0x5a, 0x8e, 0x78, 0x50, 0x02, 0x78, 0x50, 0xc2, 0x78,
|
|
||||||
0x50, 0xc2, 0x78, 0x50, 0xb5, 0x0b, 0xf1, 0x80, 0xda, 0x77, 0x15,
|
|
||||||
0xe8, 0xd7, 0x0a, 0x7e, 0x09, 0xeb, 0xdf, 0xa6, 0x65, 0xd2, 0x8c,
|
|
||||||
0x07, 0x69, 0xe5, 0xef, 0xa7, 0xa1, 0x3e, 0xf9, 0x73, 0x05, 0xcc,
|
|
||||||
0x8f, 0xd2, 0x30, 0x3f, 0x2a, 0x52, 0xe6, 0xfd, 0x45, 0xc2, 0xa7,
|
|
||||||
0x2b, 0x21, 0xbe, 0x4a, 0x05, 0x3e, 0x51, 0xf9, 0x0a, 0xf0, 0x47,
|
|
||||||
0xe2, 0xd3, 0x65, 0x8c, 0x0f, 0x9e, 0x9f, 0xdd, 0x59, 0x36, 0x1d,
|
|
||||||
0x81, 0x0f, 0x69, 0x8e, 0xf7, 0xab, 0xf8, 0x7e, 0x39, 0xe8, 0xf7,
|
|
||||||
0x88, 0xa9, 0x7f, 0x35, 0xdf, 0xff, 0x00, 0xfa, 0x97, 0xc6, 0xd4,
|
|
||||||
0xbf, 0x46, 0xf9, 0xfe, 0x5f, 0x14, 0x21, 0x1f, 0x86, 0x0f, 0x69,
|
|
||||||
0x2e, 0xf7, 0x14, 0xfe, 0x67, 0xa3, 0x7f, 0xad, 0xf0, 0x3f, 0x1b,
|
|
||||||
0xfd, 0xeb, 0x04, 0x3e, 0xf5, 0x12, 0xe3, 0xd7, 0x57, 0x97, 0xaf,
|
|
||||||
0x8f, 0x81, 0x4f, 0x69, 0x81, 0x4f, 0x54, 0xbe, 0xc1, 0x82, 0x4f,
|
|
||||||
0x69, 0x81, 0x4f, 0x54, 0xee, 0x2d, 0xf0, 0xe9, 0x26, 0x88, 0x9f,
|
|
||||||
0x1b, 0x63, 0xe0, 0x53, 0x5a, 0xe0, 0x0d, 0x95, 0xfb, 0xa8, 0x64,
|
|
||||||
0xf2, 0x37, 0x0b, 0x7c, 0xba, 0x45, 0x85, 0xe7, 0x07, 0xd1, 0x3d,
|
|
||||||
0x13, 0xe2, 0x53, 0x2f, 0xc0, 0xa7, 0xde, 0x80, 0x4f, 0x7d, 0x2c,
|
|
||||||
0xf8, 0x74, 0x65, 0x8e, 0xf8, 0x54, 0x0a, 0xf8, 0x54, 0xca, 0xf8,
|
|
||||||
0x54, 0x1a, 0x82, 0x4f, 0x5e, 0x7f, 0x7b, 0xf9, 0xdb, 0x9d, 0xfb,
|
|
||||||
0xcb, 0x96, 0xcf, 0x03, 0x1c, 0x73, 0x3e, 0x57, 0xe5, 0x98, 0xcf,
|
|
||||||
0x55, 0x39, 0xe6, 0x73, 0x55, 0x96, 0xf9, 0x1c, 0x95, 0x3f, 0x65,
|
|
||||||
0x2a, 0x13, 0x07, 0x26, 0xfe, 0xb5, 0x16, 0x7e, 0x3a, 0xcb, 0xf5,
|
|
||||||
0x02, 0xe6, 0x2b, 0xcd, 0xdf, 0x7b, 0xc5, 0x58, 0x2f, 0x60, 0xbe,
|
|
||||||
0xa5, 0xc5, 0x7a, 0x21, 0xcd, 0x39, 0xee, 0x8d, 0xef, 0x0d, 0x86,
|
|
||||||
0x7c, 0xeb, 0x07, 0xf9, 0xeb, 0x8d, 0x7d, 0xef, 0x88, 0xf6, 0x94,
|
|
||||||
0x81, 0xbc, 0x37, 0x16, 0x37, 0xaa, 0xf0, 0xf3, 0x1a, 0xb7, 0xab,
|
|
||||||
0xe0, 0x7a, 0xff, 0xd1, 0x90, 0xf5, 0xfc, 0x4d, 0xb0, 0xfe, 0xe8,
|
|
||||||
0x03, 0xf1, 0x79, 0x33, 0xd0, 0x49, 0xf2, 0xf9, 0x0e, 0x15, 0xcc,
|
|
||||||
0xe7, 0x3b, 0x55, 0x6e, 0xf9, 0xdc, 0xff, 0xff, 0x98, 0xcf, 0xbb,
|
|
||||||
0x62, 0xfd, 0x31, 0x4e, 0x33, 0xc7, 0xb0, 0xc0, 0x7e, 0x4e, 0xa6,
|
|
||||||
0x4c, 0x6b, 0xfe, 0x89, 0x9c, 0xff, 0x74, 0xef, 0x08, 0xf2, 0x63,
|
|
||||||
0x85, 0xfc, 0xd8, 0x10, 0xf9, 0xf6, 0x20, 0xff, 0x98, 0x90, 0xa7,
|
|
||||||
0x72, 0x35, 0xc8, 0x9f, 0x24, 0xe2, 0x6b, 0x2c, 0xef, 0x47, 0xde,
|
|
||||||
0xc5, 0x71, 0x36, 0x86, 0xe9, 0x41, 0x4c, 0x3f, 0xc6, 0xf4, 0x60,
|
|
||||||
0xc5, 0xe7, 0xa7, 0xa0, 0xfd, 0x73, 0x60, 0x3e, 0xe5, 0xb2, 0x8c,
|
|
||||||
0x8c, 0x9f, 0x3a, 0x70, 0x1e, 0x27, 0x2a, 0x3e, 0x0b, 0xf8, 0xdd,
|
|
||||||
0x0a, 0xd9, 0x78, 0x54, 0x85, 0xe7, 0xa3, 0xf7, 0xfc, 0x9b, 0xc8,
|
|
||||||
0xf9, 0xf0, 0xb8, 0xca, 0x94, 0x47, 0x33, 0x5d, 0xc1, 0xfd, 0x3b,
|
|
||||||
0x91, 0xf5, 0x47, 0x85, 0xcc, 0xe7, 0x06, 0x08, 0x7c, 0x98, 0xc8,
|
|
||||||
0xf1, 0x30, 0xc4, 0xcb, 0x47, 0xee, 0xef, 0xa4, 0xfa, 0x7f, 0x65,
|
|
||||||
0xfd, 0x81, 0xdc, 0xff, 0x49, 0xf5, 0xef, 0x56, 0x7e, 0xdf, 0x51,
|
|
||||||
0xdb, 0x87, 0x32, 0x3d, 0x88, 0xe9, 0x61, 0x4c, 0x0f, 0x66, 0x7a,
|
|
||||||
0x38, 0xe7, 0x3f, 0xb5, 0xfb, 0x1e, 0xd1, 0xdf, 0x44, 0x8f, 0x00,
|
|
||||||
0x7a, 0x24, 0xe4, 0xfb, 0xbd, 0x02, 0x9f, 0xc2, 0xfc, 0x5b, 0xc2,
|
|
||||||
0x7e, 0x79, 0xfd, 0xfc, 0x84, 0xf2, 0xfb, 0x9b, 0xce, 0x7b, 0x4e,
|
|
||||||
0x64, 0x9a, 0xf6, 0xef, 0xcf, 0x63, 0xfa, 0x3e, 0xf6, 0x67, 0xbc,
|
|
||||||
0xbe, 0xdf, 0x2f, 0xea, 0xa3, 0xb9, 0xe0, 0x03, 0x10, 0x0f, 0x0f,
|
|
||||||
0x02, 0xfd, 0x10, 0xf8, 0x37, 0x0a, 0xf8, 0x0f, 0x03, 0xfd, 0x88,
|
|
||||||
0xc0, 0xa3, 0x21, 0x80, 0x47, 0x43, 0x01, 0x8f, 0xee, 0x51, 0xe6,
|
|
||||||
0xf9, 0xc5, 0xbd, 0x80, 0x47, 0x0f, 0x00, 0x1e, 0x8d, 0x02, 0x3c,
|
|
||||||
0x9a, 0xa0, 0x76, 0x3e, 0x8f, 0x9e, 0x2d, 0x1e, 0x75, 0xe6, 0xf9,
|
|
||||||
0xc1, 0x63, 0x62, 0xff, 0x7c, 0x8e, 0xc0, 0x1f, 0x8f, 0x3f, 0x56,
|
|
||||||
0xf0, 0xdf, 0x08, 0xe1, 0x8f, 0x11, 0xfc, 0x57, 0x77, 0xc3, 0xfe,
|
|
||||||
0xc9, 0x14, 0x18, 0x8f, 0xa9, 0x62, 0x3e, 0x43, 0xe5, 0x57, 0xf4,
|
|
||||||
0x55, 0xc9, 0x78, 0x53, 0x29, 0xe6, 0x33, 0x1e, 0x3e, 0xd5, 0x81,
|
|
||||||
0xfd, 0x4e, 0x13, 0x1e, 0x4c, 0xe2, 0x38, 0x9c, 0xa6, 0xb2, 0xd3,
|
|
||||||
0x7f, 0x8a, 0xf5, 0x9f, 0xce, 0x52, 0x7f, 0x32, 0xeb, 0x3f, 0xc3,
|
|
||||||
0xfa, 0xaf, 0x82, 0xfe, 0xc7, 0xae, 0xfd, 0x79, 0x3b, 0x5d, 0xf4,
|
|
||||||
0x57, 0x36, 0xfa, 0x33, 0x72, 0xd4, 0x7f, 0x16, 0xf2, 0x6b, 0xa6,
|
|
||||||
0xa0, 0xff, 0xa6, 0xcb, 0xcf, 0x19, 0xe6, 0x2b, 0xb5, 0x8c, 0xc7,
|
|
||||||
0x95, 0x9c, 0xff, 0xaf, 0xf1, 0xd8, 0x3e, 0x6f, 0x59, 0x9f, 0x78,
|
|
||||||
0xf2, 0x34, 0xbf, 0xa2, 0xf2, 0x2c, 0x31, 0x5f, 0x79, 0x11, 0xe2,
|
|
||||||
0xe7, 0x85, 0x18, 0xeb, 0x93, 0x4a, 0xb1, 0xde, 0xa0, 0xf2, 0x6c,
|
|
||||||
0x95, 0x4c, 0xfe, 0x25, 0xb1, 0x3e, 0x79, 0x59, 0xe0, 0xc7, 0x34,
|
|
||||||
0xc0, 0x8f, 0xe9, 0x09, 0xd7, 0x27, 0x33, 0x01, 0x3f, 0x66, 0x01,
|
|
||||||
0x7e, 0xcc, 0xb6, 0xac, 0x4f, 0xa6, 0xe4, 0x38, 0x9f, 0x99, 0x0a,
|
|
||||||
0xf3, 0x99, 0xa9, 0x3c, 0x9f, 0x99, 0x6a, 0x58, 0x9f, 0x4c, 0x81,
|
|
||||||
0xf5, 0x89, 0x2d, 0x9f, 0xab, 0x9c, 0x60, 0x3e, 0xb7, 0x72, 0xa2,
|
|
||||||
0xc7, 0xcb, 0xe5, 0xf7, 0xf7, 0x5e, 0xff, 0x4f, 0xe2, 0x78, 0x99,
|
|
||||||
0xa6, 0xe2, 0xc9, 0x3f, 0xc5, 0xf2, 0x4f, 0xc7, 0x94, 0x9f, 0xcc,
|
|
||||||
0xf2, 0xcf, 0x58, 0xe4, 0xa7, 0x5b, 0xf8, 0x33, 0x62, 0xd4, 0x97,
|
|
||||||
0xcd, 0x7a, 0xa3, 0x92, 0xe9, 0x67, 0xc5, 0x7a, 0x63, 0xa6, 0x65,
|
|
||||||
0xbd, 0xf1, 0xb8, 0xf2, 0xdb, 0xe7, 0x95, 0x2b, 0xc5, 0x7a, 0xa3,
|
|
||||||
0x92, 0x73, 0xd6, 0x1b, 0xaf, 0xe7, 0x0d, 0xf9, 0xf3, 0x3a, 0xe4,
|
|
||||||
0x63, 0xad, 0xc8, 0xc7, 0x30, 0xf9, 0xbf, 0x83, 0xfc, 0xeb, 0x5c,
|
|
||||||
0xf7, 0x0b, 0x39, 0xac, 0x37, 0x5e, 0x04, 0xfc, 0x99, 0x0d, 0xf1,
|
|
||||||
0xf6, 0x32, 0xd0, 0x2f, 0x25, 0xc8, 0xcf, 0xc1, 0x4e, 0x30, 0x3f,
|
|
||||||
0xdf, 0x50, 0xb9, 0xe5, 0x67, 0xff, 0xdd, 0x9c, 0x9f, 0xf3, 0x77,
|
|
||||||
0xf1, 0xf3, 0x9a, 0xfa, 0x73, 0x81, 0xc8, 0x67, 0x2a, 0x57, 0xeb,
|
|
||||||
0x6b, 0x39, 0xe7, 0x33, 0xdd, 0x4f, 0x11, 0xe3, 0x3f, 0x97, 0xf7,
|
|
||||||
0x23, 0x96, 0xf3, 0xf8, 0xcf, 0x61, 0xd9, 0xe5, 0x86, 0xf8, 0x7f,
|
|
||||||
0x47, 0xec, 0x87, 0x2d, 0xe7, 0xf2, 0x42, 0x8e, 0xa3, 0x79, 0x60,
|
|
||||||
0xef, 0xed, 0x2c, 0xed, 0xbd, 0xcf, 0xf6, 0xe6, 0x83, 0xbd, 0xaa,
|
|
||||||
0x2c, 0xed, 0x7d, 0xa0, 0xfc, 0xf6, 0xbe, 0x6b, 0xd1, 0x7f, 0x37,
|
|
||||||
0x44, 0xff, 0x43, 0xd1, 0xbe, 0x6c, 0xf4, 0x3f, 0x12, 0xed, 0xc9,
|
|
||||||
0x46, 0x7f, 0xb9, 0xf2, 0x9f, 0x77, 0x61, 0xfc, 0x45, 0x22, 0x5f,
|
|
||||||
0x17, 0x5b, 0xf0, 0x66, 0x99, 0xf2, 0xfb, 0x73, 0x99, 0xe8, 0x4f,
|
|
||||||
0x0f, 0x6f, 0xa8, 0xfc, 0xcf, 0x08, 0xff, 0x5a, 0xb1, 0x1f, 0x9e,
|
|
||||||
0xfe, 0xbf, 0x59, 0xf7, 0xe3, 0x08, 0xf9, 0x65, 0x20, 0x3f, 0x82,
|
|
||||||
0xdb, 0xb2, 0x44, 0xf8, 0xfb, 0x89, 0x61, 0xfd, 0x18, 0x07, 0x6f,
|
|
||||||
0x6a, 0x04, 0x7e, 0xfc, 0x52, 0x97, 0x3f, 0x15, 0xf4, 0x42, 0xc0,
|
|
||||||
0x93, 0x0f, 0x13, 0x3e, 0xef, 0x17, 0x03, 0x9e, 0x2c, 0x01, 0x3c,
|
|
||||||
0xf9, 0x14, 0xf0, 0xe4, 0x3f, 0x80, 0x27, 0xef, 0xe5, 0x88, 0x27,
|
|
||||||
0x0b, 0x00, 0x4f, 0x16, 0x30, 0x9e, 0x2c, 0x60, 0x3c, 0x79, 0xd3,
|
|
||||||
0x82, 0x27, 0xd4, 0x9f, 0x6b, 0x04, 0x1e, 0x50, 0xf9, 0x1b, 0x15,
|
|
||||||
0x3c, 0x7f, 0xd2, 0xc6, 0x31, 0xaf, 0x0f, 0x6b, 0xb5, 0xfc, 0xb7,
|
|
||||||
0xca, 0xbc, 0x7e, 0xf4, 0xce, 0x1d, 0xa5, 0xc4, 0xef, 0x45, 0x90,
|
|
||||||
0xbf, 0x9f, 0x2b, 0xff, 0xfb, 0x96, 0x24, 0x4b, 0x76, 0x56, 0x8a,
|
|
||||||
0xf8, 0xf5, 0xce, 0x1f, 0xae, 0xcd, 0xd2, 0xfe, 0x8a, 0x10, 0xfb,
|
|
||||||
0xab, 0x42, 0xec, 0xaf, 0xcb, 0xd2, 0xfe, 0x17, 0x21, 0xf6, 0xbf,
|
|
||||||
0x0c, 0xb1, 0xbf, 0x5e, 0x25, 0xff, 0x3e, 0xbb, 0x97, 0x8f, 0x74,
|
|
||||||
0x46, 0x71, 0x43, 0x8e, 0xfa, 0x1b, 0x73, 0xd4, 0xdf, 0x24, 0xde,
|
|
||||||
0x67, 0x6c, 0x36, 0xe4, 0x63, 0x1c, 0x7b, 0xfd, 0x5c, 0xbf, 0xff,
|
|
||||||
0x46, 0xb8, 0x7e, 0xff, 0x79, 0xfb, 0x07, 0x54, 0xde, 0x22, 0xf6,
|
|
||||||
0x0f, 0xbe, 0x13, 0xf9, 0xba, 0x16, 0xf2, 0x75, 0x03, 0xe4, 0xeb,
|
|
||||||
0x57, 0x96, 0xf5, 0xfd, 0x66, 0xc8, 0xd7, 0x7d, 0x21, 0x5f, 0x1b,
|
|
||||||
0x40, 0xbe, 0x7e, 0xff, 0x13, 0xae, 0xef, 0x53, 0x9c, 0x5f, 0x32,
|
|
||||||
0x5f, 0xd7, 0x70, 0xbe, 0xae, 0xe1, 0x7c, 0x9d, 0x6b, 0xc8, 0xd7,
|
|
||||||
0xa8, 0xf3, 0x63, 0x5b, 0x55, 0xb0, 0xbd, 0xde, 0x81, 0xb1, 0xab,
|
|
||||||
0x99, 0x37, 0x5c, 0xe8, 0x9f, 0xef, 0xee, 0xbc, 0x3f, 0xb7, 0x5d,
|
|
||||||
0xe8, 0x6f, 0x87, 0xf9, 0x45, 0xb9, 0x32, 0x9f, 0x1f, 0x35, 0xd9,
|
|
||||||
0x2b, 0xe4, 0xfa, 0xf1, 0xfc, 0xa1, 0xfc, 0xfe, 0x41, 0x05, 0xc4,
|
|
||||||
0xcf, 0x40, 0xc7, 0x8e, 0xe7, 0xdb, 0xc4, 0xfe, 0x46, 0x7e, 0xd8,
|
|
||||||
0xf9, 0x4d, 0x41, 0x0f, 0x48, 0x60, 0x0f, 0xdb, 0x5f, 0xcc, 0x7d,
|
|
||||||
0x29, 0xdf, 0xdf, 0x6e, 0x53, 0xc1, 0xf7, 0xb7, 0x97, 0xa8, 0x9d,
|
|
||||||
0xf1, 0x54, 0xd6, 0x5f, 0x65, 0xa8, 0xbf, 0x50, 0xac, 0x17, 0x64,
|
|
||||||
0xff, 0xd4, 0x73, 0xc2, 0xfd, 0x49, 0x79, 0xe7, 0x3b, 0x23, 0xde,
|
|
||||||
0x27, 0x13, 0xdd, 0xd8, 0xf0, 0xfd, 0x29, 0x8f, 0x6e, 0x08, 0xe7,
|
|
||||||
0x51, 0x1b, 0x01, 0x3f, 0xea, 0x7c, 0x24, 0xf5, 0x77, 0x5f, 0xc7,
|
|
||||||
0xdc, 0xde, 0x8a, 0x18, 0xfd, 0x9d, 0xc7, 0xf1, 0x59, 0x26, 0xca,
|
|
||||||
0xd4, 0xee, 0x91, 0x4e, 0xe6, 0xb7, 0x7d, 0xe4, 0xf7, 0xef, 0x93,
|
|
||||||
0xb6, 0x3f, 0xb5, 0x0b, 0xdb, 0x9f, 0x34, 0xfe, 0xc3, 0xe2, 0xbb,
|
|
||||||
0xc6, 0xd0, 0x3f, 0x71, 0xe2, 0xcf, 0x85, 0xf3, 0x03, 0x27, 0xa9,
|
|
||||||
0xdc, 0xfc, 0x4b, 0x12, 0xaf, 0xde, 0xfb, 0x29, 0xef, 0x3b, 0x42,
|
|
||||||
0x71, 0xfc, 0xc5, 0xdf, 0xf3, 0xb8, 0x24, 0x07, 0x7f, 0xc3, 0xe2,
|
|
||||||
0xe1, 0x56, 0x98, 0xff, 0x6d, 0x0f, 0x79, 0xff, 0xe0, 0xe1, 0x61,
|
|
||||||
0x18, 0xbe, 0x3d, 0xa9, 0xcc, 0xfd, 0x5f, 0x0a, 0xdf, 0x27, 0xa8,
|
|
||||||
0x93, 0x17, 0x8c, 0xb7, 0xfc, 0xbc, 0x60, 0xbc, 0x15, 0xe4, 0x05,
|
|
||||||
0xe3, 0x2d, 0xed, 0x04, 0xbf, 0x7f, 0xb6, 0xcd, 0x92, 0x3f, 0x38,
|
|
||||||
0x9f, 0x1d, 0x9d, 0x20, 0x3e, 0x70, 0xbe, 0xea, 0xc5, 0x4b, 0x7d,
|
|
||||||
0xe8, 0x2f, 0x53, 0x3e, 0x94, 0x3b, 0xc1, 0x7c, 0xd8, 0x23, 0xcf,
|
|
||||||
0xfc, 0xfc, 0xdb, 0x6a, 0xf0, 0x2f, 0x4e, 0xbe, 0x1e, 0xf8, 0x33,
|
|
||||||
0xca, 0xd7, 0x28, 0x7e, 0x54, 0xfc, 0x84, 0xf5, 0x7f, 0x03, 0x38,
|
|
||||||
0xaf, 0xfe, 0xba, 0x0a, 0x7e, 0x9f, 0xf2, 0x33, 0x4b, 0xfc, 0x2f,
|
|
||||||
0x33, 0x3c, 0x9f, 0x72, 0xf5, 0xdf, 0xb3, 0x55, 0x91, 0x65, 0xfe,
|
|
||||||
0xe2, 0xf7, 0xcb, 0x53, 0xbc, 0xde, 0x93, 0xdf, 0x9f, 0x79, 0xcb,
|
|
||||||
0x72, 0x9e, 0xa9, 0x6e, 0x5e, 0x30, 0x3e, 0xb6, 0x42, 0xbc, 0xdb,
|
|
||||||
0x7e, 0x9f, 0x8c, 0xe2, 0xe7, 0x36, 0x71, 0x7e, 0x9b, 0xfc, 0xb9,
|
|
||||||
0x1d, 0xce, 0x77, 0xf7, 0x83, 0xf3, 0xe0, 0x93, 0xe0, 0x3c, 0xf8,
|
|
||||||
0x0c, 0x38, 0xff, 0xfd, 0xb2, 0xa0, 0xe9, 0x7d, 0xc6, 0x52, 0x41,
|
|
||||||
0x13, 0x5e, 0xcb, 0xf3, 0xe5, 0xf4, 0x7b, 0x3d, 0x1b, 0x05, 0x4d,
|
|
||||||
0x6b, 0x03, 0x79, 0x9e, 0x9c, 0xf6, 0x97, 0xd7, 0x0b, 0x9a, 0x7e,
|
|
||||||
0x7f, 0x67, 0x9d, 0xf8, 0xfd, 0x99, 0xb5, 0x09, 0x7e, 0xbb, 0xeb,
|
|
||||||
0x47, 0x1e, 0x9e, 0x2f, 0x68, 0x03, 0x03, 0x00, 0x00, 0x78, 0xda,
|
|
||||||
0x8d, 0x98, 0x4b, 0x6c, 0x4d, 0x51, 0x14, 0x86, 0xef, 0x3e, 0xe7,
|
|
||||||
0x56, 0x5c, 0x42, 0xa4, 0x89, 0x10, 0xd1, 0x8a, 0x48, 0x30, 0x31,
|
|
||||||
0x31, 0x11, 0x61, 0x20, 0x84, 0x89, 0x78, 0x25, 0x48, 0x84, 0x81,
|
|
||||||
0x98, 0x18, 0x11, 0xa4, 0xc4, 0xab, 0x54, 0x6f, 0xbd, 0xea, 0xd1,
|
|
||||||
0xa2, 0xea, 0x51, 0x13, 0x13, 0x46, 0x92, 0x8a, 0x37, 0x45, 0x11,
|
|
||||||
0xef, 0x8a, 0x89, 0x47, 0xa2, 0x9e, 0x55, 0xd4, 0xb3, 0xde, 0x03,
|
|
||||||
0xe5, 0xf2, 0x9f, 0x7b, 0xcf, 0xb9, 0x7b, 0x69, 0xf6, 0x3a, 0xf9,
|
|
||||||
0x77, 0xb2, 0x7a, 0xf7, 0xda, 0xe7, 0xbb, 0xff, 0x3a, 0x7b, 0xad,
|
|
||||||
0xbd, 0xf7, 0x39, 0xb7, 0x89, 0x04, 0xd7, 0xfe, 0xa2, 0x25, 0x95,
|
|
||||||
0x71, 0xe9, 0x67, 0x14, 0x2e, 0xd3, 0x89, 0xfb, 0x43, 0xea, 0xfd,
|
|
||||||
0x56, 0xb8, 0xce, 0xad, 0x43, 0xe1, 0x4c, 0x68, 0x51, 0xfb, 0x45,
|
|
||||||
0xea, 0xfd, 0x20, 0xf5, 0xbe, 0x93, 0xdc, 0x37, 0x92, 0xfb, 0x4a,
|
|
||||||
0x72, 0x5f, 0x48, 0xee, 0x33, 0x39, 0xdf, 0x76, 0x52, 0xef, 0x13,
|
|
||||||
0xa9, 0xf7, 0x51, 0xe1, 0xbc, 0x40, 0x4f, 0x08, 0x7e, 0x20, 0xe3,
|
|
||||||
0xbe, 0x27, 0xf5, 0xde, 0x91, 0xdc, 0xdb, 0x18, 0xce, 0xf7, 0xad,
|
|
||||||
0xdf, 0xa6, 0x70, 0x7e, 0x56, 0xcf, 0x0a, 0xbe, 0x21, 0xe3, 0xbe,
|
|
||||||
0x26, 0xe7, 0xfb, 0x8a, 0xd4, 0x6b, 0x25, 0xf5, 0x5e, 0x92, 0xfb,
|
|
||||||
0xad, 0x85, 0xd4, 0x7b, 0x41, 0x72, 0xcf, 0xc9, 0xb8, 0xcf, 0xc8,
|
|
||||||
0x3c, 0x3f, 0x25, 0xe3, 0x3e, 0x21, 0xb9, 0xc7, 0x24, 0xd7, 0x4c,
|
|
||||||
0x72, 0x0f, 0xc9, 0xfd, 0xf1, 0x80, 0xd4, 0xbb, 0x4f, 0x72, 0xf7,
|
|
||||||
0xc8, 0xf5, 0x72, 0x87, 0xe4, 0x9a, 0xc8, 0xb8, 0xb7, 0x49, 0xee,
|
|
||||||
0x16, 0xc9, 0xdd, 0x24, 0xef, 0xef, 0x06, 0xc9, 0x5d, 0x21, 0xb9,
|
|
||||||
0xcb, 0x24, 0x77, 0x89, 0x5c, 0xa7, 0x8d, 0xa4, 0xde, 0x45, 0x32,
|
|
||||||
0x2f, 0x17, 0x48, 0xee, 0x3c, 0xc9, 0x35, 0x90, 0xdc, 0x39, 0x92,
|
|
||||||
0x3b, 0x4b, 0x72, 0x67, 0x48, 0xee, 0x34, 0xc9, 0x9d, 0x22, 0xb9,
|
|
||||||
0x93, 0x24, 0x77, 0x82, 0xe4, 0x8e, 0x93, 0xdc, 0xd1, 0x18, 0x4e,
|
|
||||||
0x3c, 0x66, 0x12, 0xf5, 0x24, 0x57, 0x47, 0x9e, 0x2f, 0xfb, 0x49,
|
|
||||||
0x6e, 0x1f, 0xc9, 0xed, 0x25, 0xb9, 0x3d, 0x24, 0x57, 0x4b, 0x72,
|
|
||||||
0xbb, 0x49, 0xae, 0x86, 0xe4, 0x76, 0x91, 0xdc, 0x4e, 0x92, 0xdb,
|
|
||||||
0x41, 0x72, 0xd5, 0xe4, 0x7a, 0xa9, 0x52, 0xb8, 0x82, 0x60, 0x1d,
|
|
||||||
0x18, 0xdf, 0x8f, 0xd8, 0xed, 0x24, 0xb7, 0x8d, 0xe4, 0xb6, 0x2a,
|
|
||||||
0x5c, 0x32, 0xfb, 0x3e, 0x94, 0xc7, 0x12, 0x5b, 0x14, 0xae, 0x4b,
|
|
||||||
0x96, 0xb3, 0x82, 0x95, 0x71, 0xe7, 0xa4, 0x78, 0xc1, 0xda, 0x4c,
|
|
||||||
0xe6, 0x65, 0x53, 0xdc, 0xfb, 0x9a, 0x00, 0x37, 0x92, 0xfb, 0x68,
|
|
||||||
0x03, 0x59, 0xb7, 0xf5, 0xe4, 0x79, 0x5f, 0x41, 0xea, 0xa5, 0xc9,
|
|
||||||
0x79, 0x94, 0x93, 0x79, 0x59, 0xa7, 0x70, 0x5d, 0xb3, 0x7a, 0xb9,
|
|
||||||
0x16, 0xf8, 0x65, 0x0a, 0x97, 0xca, 0xd5, 0x37, 0x68, 0x59, 0x70,
|
|
||||||
0x2d, 0x99, 0xbf, 0x35, 0xe4, 0xfd, 0x95, 0xc6, 0xc7, 0xcd, 0xdf,
|
|
||||||
0xe0, 0xea, 0xf8, 0x75, 0x95, 0x4f, 0xf5, 0x32, 0x32, 0x7f, 0x41,
|
|
||||||
0xb7, 0x08, 0x7f, 0xfa, 0x85, 0xfe, 0x70, 0xe3, 0xae, 0xc7, 0x78,
|
|
||||||
0xd8, 0x08, 0x93, 0xfb, 0x7e, 0xd0, 0x66, 0x18, 0xf7, 0x3c, 0x66,
|
|
||||||
0xc2, 0x46, 0x62, 0xa0, 0x30, 0xf4, 0xe7, 0x1a, 0xbb, 0x3f, 0x8c,
|
|
||||||
0x58, 0xd0, 0x0b, 0x60, 0x13, 0xc5, 0x17, 0x17, 0x29, 0x71, 0x17,
|
|
||||||
0x86, 0x5c, 0x14, 0x37, 0xad, 0xc4, 0x2d, 0x81, 0x4d, 0x12, 0x03,
|
|
||||||
0x35, 0x8a, 0xde, 0x52, 0xd8, 0x64, 0x71, 0xed, 0xa0, 0xc2, 0xad,
|
|
||||||
0x80, 0x4d, 0x15, 0xd7, 0x0e, 0x2b, 0x5c, 0x29, 0x6c, 0x9a, 0xb1,
|
|
||||||
0x35, 0x3f, 0xa2, 0x70, 0x15, 0xb0, 0xe9, 0xb8, 0x56, 0x14, 0x3d,
|
|
||||||
0xb7, 0x8d, 0x7b, 0x9f, 0x37, 0xc1, 0x96, 0x98, 0x5c, 0x3d, 0x83,
|
|
||||||
0x76, 0xcd, 0xb8, 0xdf, 0x87, 0x5a, 0x60, 0xcb, 0xe1, 0xf7, 0x8d,
|
|
||||||
0x7e, 0x07, 0x19, 0xbb, 0x0e, 0xec, 0x6a, 0x46, 0xde, 0xf1, 0x59,
|
|
||||||
0x2d, 0xf4, 0x7e, 0xfe, 0x57, 0x0f, 0xab, 0xd8, 0x0b, 0xbd, 0x5a,
|
|
||||||
0xb1, 0x0e, 0x86, 0x79, 0xf6, 0xfc, 0x13, 0x72, 0x89, 0x51, 0xe8,
|
|
||||||
0xd4, 0x8b, 0xf9, 0x8e, 0xf1, 0xdc, 0xfb, 0x7c, 0x02, 0xba, 0xc7,
|
|
||||||
0x60, 0x3d, 0x42, 0x7f, 0x96, 0xe7, 0xae, 0x5b, 0x90, 0xe3, 0x46,
|
|
||||||
0x58, 0xcf, 0xa8, 0xde, 0x4a, 0xdc, 0x39, 0xe8, 0xdc, 0x15, 0x71,
|
|
||||||
0x57, 0x2a, 0x71, 0xe7, 0xa3, 0xfb, 0x48, 0xbe, 0xff, 0x7a, 0xee,
|
|
||||||
0x7a, 0x94, 0x81, 0x69, 0x96, 0xbf, 0x73, 0x15, 0x2e, 0x1d, 0x72,
|
|
||||||
0xd1, 0x3c, 0x86, 0xf8, 0x6e, 0xae, 0x0e, 0x4c, 0x1b, 0xac, 0x77,
|
|
||||||
0xe8, 0x2f, 0x56, 0xb8, 0x76, 0x30, 0x19, 0x58, 0xf7, 0xd0, 0xaf,
|
|
||||||
0x54, 0xb8, 0x81, 0xb8, 0x9f, 0x94, 0x67, 0xeb, 0x76, 0xdd, 0x77,
|
|
||||||
0xe7, 0x6f, 0x2c, 0x98, 0x01, 0xb0, 0xfe, 0xd1, 0xff, 0x77, 0x7c,
|
|
||||||
0x9b, 0x17, 0x5f, 0xe4, 0x65, 0x15, 0x98, 0xd1, 0xb0, 0xe2, 0xd0,
|
|
||||||
0x2f, 0x4e, 0x0a, 0x4e, 0x1c, 0x08, 0x0d, 0x60, 0x66, 0xc3, 0x06,
|
|
||||||
0x47, 0xf5, 0x55, 0xb8, 0x71, 0x18, 0x28, 0x07, 0x37, 0x28, 0xf4,
|
|
||||||
0xe7, 0x25, 0xdd, 0xe7, 0x5f, 0x15, 0x9c, 0x43, 0x22, 0x6e, 0x89,
|
|
||||||
0xc2, 0x75, 0xc3, 0xf8, 0x55, 0xc1, 0x1d, 0x48, 0x8a, 0xe7, 0xaf,
|
|
||||||
0x6f, 0x2b, 0x3c, 0x05, 0xe3, 0xad, 0xe0, 0xfa, 0x44, 0xbf, 0x33,
|
|
||||||
0x92, 0xee, 0xe7, 0x6f, 0x25, 0x06, 0x3a, 0x3c, 0xbb, 0xae, 0x4c,
|
|
||||||
0x81, 0x3b, 0xcf, 0x43, 0x31, 0x9e, 0x12, 0x37, 0x52, 0xa8, 0x70,
|
|
||||||
0xff, 0x00, 0xad, 0x10, 0xa6, 0xd6, 0x7a, 0x02, 0x00, 0x00, 0x78,
|
|
||||||
0xda, 0x4d, 0xd4, 0x59, 0x6c, 0x4c, 0x61, 0x18, 0xc6, 0xf1, 0x53,
|
|
||||||
0x63, 0x16, 0xbd, 0xa1, 0x0b, 0xd5, 0x4e, 0x1b, 0xa1, 0xb6, 0x52,
|
|
||||||
0xa5, 0xd6, 0xb6, 0xb6, 0xa3, 0xda, 0xa2, 0x8b, 0xa5, 0x28, 0x3a,
|
|
||||||
0x96, 0xb6, 0x96, 0xd2, 0x52, 0x55, 0xda, 0x1a, 0xb5, 0x85, 0x68,
|
|
||||||
0x35, 0x84, 0x0b, 0x24, 0x12, 0x5c, 0x11, 0xe1, 0x02, 0x89, 0x88,
|
|
||||||
0x3b, 0x42, 0x5c, 0x48, 0x44, 0x5c, 0x88, 0x1b, 0x22, 0xe1, 0x42,
|
|
||||||
0x5c, 0xb8, 0x92, 0x08, 0x89, 0x25, 0xe1, 0x79, 0x7d, 0xff, 0x64,
|
|
||||||
0x3a, 0xc9, 0xf3, 0xce, 0x6f, 0xde, 0x7c, 0xe7, 0xcc, 0x99, 0xef,
|
|
||||||
0xbc, 0x67, 0x3c, 0x2f, 0xf1, 0x1a, 0xec, 0x79, 0xfe, 0x18, 0xbd,
|
|
||||||
0x8f, 0x0a, 0x3a, 0xe7, 0xca, 0xb9, 0x72, 0x92, 0x3c, 0x56, 0xce,
|
|
||||||
0x93, 0x07, 0xc9, 0xe3, 0xe4, 0x42, 0x3c, 0x5e, 0x2e, 0x91, 0x03,
|
|
||||||
0xf2, 0x04, 0xb9, 0xcc, 0xf5, 0x3d, 0x73, 0x35, 0x9e, 0xa8, 0xd4,
|
|
||||||
0xe1, 0x3c, 0xa5, 0x81, 0xf5, 0x93, 0xe4, 0x16, 0xfa, 0xe6, 0x4e,
|
|
||||||
0x3c, 0x59, 0x39, 0x81, 0xf3, 0x95, 0xf3, 0xac, 0x9f, 0x22, 0x5f,
|
|
||||||
0xa5, 0x6f, 0xbe, 0x89, 0x0b, 0x94, 0xfb, 0x78, 0xaa, 0xf2, 0x98,
|
|
||||||
0xf5, 0xd3, 0xe4, 0x17, 0xf4, 0xcd, 0xaf, 0x71, 0xa1, 0xf2, 0x1e,
|
|
||||||
0x4f, 0x57, 0x3e, 0xb3, 0x7e, 0x86, 0xfc, 0x95, 0xbe, 0xf9, 0x3b,
|
|
||||||
0x9e, 0xa9, 0xfc, 0xc1, 0xb3, 0x94, 0x40, 0xc8, 0xfd, 0xf6, 0xd9,
|
|
||||||
0x72, 0x32, 0x9e, 0x23, 0xa7, 0xe1, 0x22, 0x39, 0x07, 0x17, 0xdb,
|
|
||||||
0xef, 0x0f, 0xb9, 0xf3, 0x97, 0xd8, 0xb9, 0x5c, 0xdf, 0x33, 0x97,
|
|
||||||
0xe2, 0xb9, 0x4a, 0x2d, 0x9e, 0xa7, 0x34, 0xb1, 0x7e, 0xbe, 0xdc,
|
|
||||||
0x41, 0xdf, 0x1c, 0xc7, 0x0b, 0x6c, 0x7f, 0xf0, 0x42, 0xe5, 0x0c,
|
|
||||||
0xeb, 0x7d, 0xf9, 0x22, 0x7d, 0xf3, 0x15, 0xbc, 0x48, 0xb9, 0x81,
|
|
||||||
0x4b, 0x95, 0x3b, 0x5c, 0xdb, 0x62, 0xf9, 0x21, 0xc7, 0x96, 0xc9,
|
|
||||||
0x4f, 0x59, 0x63, 0x7e, 0x89, 0xcb, 0x95, 0xb7, 0xb8, 0xc2, 0xf6,
|
|
||||||
0x8a, 0x63, 0x97, 0xc8, 0xdf, 0xf0, 0x52, 0xf9, 0x17, 0x5e, 0x26,
|
|
||||||
0x87, 0xc3, 0xce, 0x95, 0x72, 0x2a, 0xae, 0x92, 0xa3, 0xb8, 0xda,
|
|
||||||
0xf6, 0x04, 0xd7, 0xd8, 0x7e, 0x06, 0xdc, 0x35, 0x2c, 0xb7, 0xfd,
|
|
||||||
0x75, 0x7d, 0xcf, 0xec, 0xe3, 0x15, 0x4a, 0x0d, 0x5e, 0xa9, 0xd4,
|
|
||||||
0x87, 0xdd, 0xfa, 0x55, 0x72, 0x33, 0x7d, 0x73, 0x17, 0xae, 0x55,
|
|
||||||
0xfa, 0xf0, 0x6a, 0xe5, 0x72, 0xd8, 0xcd, 0xf3, 0x1a, 0xf9, 0x36,
|
|
||||||
0xc7, 0xae, 0x95, 0x1f, 0xb0, 0xc6, 0xfc, 0x04, 0xd7, 0x29, 0xaf,
|
|
||||||
0xf0, 0x3a, 0x9b, 0x13, 0xae, 0x73, 0xbd, 0xfc, 0x05, 0x6f, 0x90,
|
|
||||||
0x7f, 0xe0, 0x7a, 0xf9, 0x2f, 0x8e, 0xc9, 0x91, 0x88, 0xf3, 0x46,
|
|
||||||
0x39, 0x45, 0xd6, 0xb6, 0xf8, 0x9b, 0x6c, 0xce, 0x92, 0x9c, 0x37,
|
|
||||||
0xdb, 0xfc, 0xe3, 0x2d, 0xf2, 0x49, 0xdc, 0x60, 0xd7, 0x81, 0x1b,
|
|
||||||
0xe5, 0x76, 0xdc, 0x64, 0xf7, 0x14, 0x6f, 0xb5, 0xfd, 0x0c, 0xfe,
|
|
||||||
0x7f, 0x54, 0xfd, 0x6d, 0x2a, 0x59, 0x3a, 0xbf, 0x7d, 0xdc, 0x6e,
|
|
||||||
0xcf, 0x0f, 0xde, 0x61, 0x33, 0x86, 0x9b, 0x6d, 0x3e, 0xf0, 0x4e,
|
|
||||||
0xa5, 0x12, 0xef, 0xb2, 0xef, 0xc2, 0x2d, 0x4a, 0x0c, 0xb7, 0x2a,
|
|
||||||
0x8d, 0x78, 0xb7, 0x1d, 0x3f, 0xc0, 0x6d, 0x78, 0x8f, 0xd2, 0x8d,
|
|
||||||
0xdb, 0x94, 0xe3, 0x78, 0xaf, 0x7d, 0x0e, 0x26, 0x1c, 0xc7, 0xed,
|
|
||||||
0x4a, 0x2f, 0xde, 0xa7, 0x5c, 0xc0, 0x1d, 0x4a, 0x7f, 0x24, 0xe1,
|
|
||||||
0x73, 0x78, 0xbf, 0x72, 0x09, 0x1f, 0xb0, 0xe7, 0x1d, 0x77, 0x2a,
|
|
||||||
0xd7, 0x07, 0xf8, 0x16, 0xee, 0x52, 0xee, 0xe1, 0x6e, 0x9b, 0x67,
|
|
||||||
0x7c, 0x50, 0x79, 0x84, 0xe3, 0xca, 0x33, 0x7c, 0xc8, 0x66, 0x1b,
|
|
||||||
0xf7, 0x28, 0x6f, 0xf0, 0x61, 0xe5, 0x1d, 0x3e, 0xa2, 0x7c, 0xc0,
|
|
||||||
0x47, 0xed, 0xff, 0x25, 0xe4, 0xf6, 0xfc, 0x98, 0xca, 0x27, 0xfa,
|
|
||||||
0xa7, 0x6c, 0xfe, 0x23, 0x6e, 0xae, 0x7a, 0xe5, 0xdf, 0xee, 0xbe,
|
|
||||||
0x7b, 0x7d, 0x36, 0xff, 0x43, 0x9c, 0x4f, 0x2b, 0xe9, 0xb8, 0x5f,
|
|
||||||
0x19, 0xed, 0xec, 0x67, 0xe8, 0x7e, 0x16, 0xe0, 0x4c, 0xb9, 0x08,
|
|
||||||
0x67, 0xdb, 0x1f, 0x2d, 0xeb, 0x87, 0xaa, 0x54, 0xe1, 0x61, 0x2a,
|
|
||||||
0x31, 0x9c, 0xa2, 0xd2, 0x8a, 0x53, 0x55, 0x7a, 0x70, 0x9a, 0xca,
|
|
||||||
0x59, 0x9c, 0xae, 0x72, 0x0d, 0x0f, 0x57, 0xb9, 0x8b, 0x47, 0xa8,
|
|
||||||
0x3c, 0xc7, 0x19, 0x2a, 0x1f, 0xf1, 0x48, 0x95, 0x9f, 0x38, 0x53,
|
|
||||||
0x25, 0x39, 0xd9, 0x39, 0x4b, 0x25, 0x8a, 0xa3, 0x2a, 0xf9, 0x38,
|
|
||||||
0x5b, 0xa5, 0x18, 0xe7, 0xa8, 0x54, 0xc8, 0xff, 0x00, 0x4b, 0x49,
|
|
||||||
0x77, 0x91, 0xac, 0x00, 0x00, 0x00, 0x78, 0xda, 0x45, 0xcc, 0xa9,
|
|
||||||
0x0e, 0x42, 0x31, 0x10, 0x46, 0xe1, 0xb2, 0xf4, 0x72, 0xd9, 0xf7,
|
|
||||||
0xf5, 0x11, 0x10, 0x28, 0x3c, 0xfe, 0x7a, 0x14, 0x0a, 0x85, 0xc3,
|
|
||||||
0x12, 0x1c, 0x8a, 0x04, 0x83, 0x21, 0x38, 0x1c, 0x06, 0x87, 0xc3,
|
|
||||||
0xa1, 0xb0, 0x48, 0x14, 0x86, 0x87, 0xe0, 0x05, 0x38, 0xcd, 0xfc,
|
|
||||||
0x09, 0x4d, 0x4e, 0xfa, 0x65, 0x32, 0xad, 0x73, 0xff, 0x93, 0xd2,
|
|
||||||
0x3d, 0x8c, 0xcd, 0xa1, 0x31, 0x4e, 0x3b, 0x6b, 0x22, 0x67, 0x28,
|
|
||||||
0xc1, 0x59, 0x67, 0x4d, 0x65, 0x4f, 0x33, 0xbd, 0x8d, 0x68, 0x1e,
|
|
||||||
0xdb, 0x6e, 0x8e, 0x16, 0x7a, 0x1b, 0xbc, 0x94, 0xb9, 0xdc, 0x4a,
|
|
||||||
0xce, 0xd3, 0x46, 0xfb, 0x85, 0xb0, 0xe3, 0x6d, 0x1e, 0xbc, 0x96,
|
|
||||||
0x8b, 0xb4, 0x95, 0x4b, 0x74, 0xf0, 0xb6, 0x5f, 0xa6, 0x9d, 0xfe,
|
|
||||||
0x09, 0xde, 0xcb, 0x15, 0x3a, 0xca, 0x55, 0x3a, 0xe9, 0xff, 0x1a,
|
|
||||||
0x9d, 0x35, 0x0f, 0xbe, 0xc8, 0x75, 0xba, 0xca, 0x0d, 0xba, 0xc9,
|
|
||||||
0x4d, 0xba, 0xcb, 0x2d, 0x7a, 0xc8, 0x6d, 0x7a, 0xca, 0x1d, 0x7a,
|
|
||||||
0xc9, 0x5d, 0x7a, 0xcb, 0x3d, 0xfa, 0xc8, 0x7d, 0x1a, 0x45, 0xe6,
|
|
||||||
0x01, 0x7d, 0x99, 0xff, 0x00, 0x65, 0xf7, 0x13, 0x71, 0xee, 0x02,
|
|
||||||
0x00, 0x00, 0x78, 0xda, 0xed, 0xd6, 0x49, 0x4c, 0x53, 0x41, 0x18,
|
|
||||||
0xc0, 0xf1, 0x29, 0xad, 0x0b, 0x55, 0x10, 0x51, 0x11, 0xc5, 0x4a,
|
|
||||||
0x15, 0x37, 0xdc, 0x00, 0x45, 0x44, 0x81, 0x6e, 0x8f, 0x2a, 0x22,
|
|
||||||
0x2a, 0x0a, 0x8a, 0x28, 0x22, 0x6e, 0x88, 0x7b, 0x5d, 0x51, 0x5c,
|
|
||||||
0xe8, 0x0d, 0x63, 0x48, 0xb8, 0x78, 0x00, 0x23, 0x04, 0xc3, 0x8d,
|
|
||||||
0x8b, 0x31, 0xc1, 0x68, 0x42, 0x0c, 0x05, 0x0e, 0x92, 0x08, 0xd1,
|
|
||||||
0xa8, 0x09, 0x5e, 0x54, 0xe2, 0x89, 0x78, 0xc2, 0x93, 0x24, 0x5e,
|
|
||||||
0xfc, 0xbf, 0xbe, 0x29, 0x08, 0x28, 0x12, 0xa5, 0xf5, 0xe2, 0x4b,
|
|
||||||
0x7f, 0x9d, 0x37, 0xcd, 0x6c, 0x6f, 0xe6, 0x9b, 0x79, 0x15, 0xe2,
|
|
||||||
0xff, 0x15, 0xe8, 0xeb, 0x20, 0x0e, 0xe1, 0x08, 0x8a, 0x70, 0x18,
|
|
||||||
0x47, 0x51, 0xfe, 0x43, 0x19, 0x1d, 0x82, 0xa0, 0x87, 0x01, 0x13,
|
|
||||||
0x30, 0x11, 0x93, 0x30, 0x19, 0xc1, 0x30, 0x62, 0x0a, 0xa6, 0x22,
|
|
||||||
0x04, 0xa1, 0x98, 0x86, 0x30, 0x4c, 0x47, 0x38, 0x66, 0x60, 0x26,
|
|
||||||
0x66, 0x21, 0x02, 0xb3, 0x11, 0x89, 0x39, 0x43, 0x46, 0xe4, 0xb6,
|
|
||||||
0xf2, 0x65, 0xe3, 0x03, 0xb7, 0x6d, 0xee, 0x4f, 0xc6, 0x1c, 0x88,
|
|
||||||
0xf1, 0xa8, 0xfd, 0x46, 0x61, 0x1e, 0x4c, 0x98, 0x8f, 0x68, 0x98,
|
|
||||||
0xb1, 0x00, 0x0b, 0x11, 0x83, 0x45, 0x58, 0x8c, 0x25, 0x58, 0x8a,
|
|
||||||
0x65, 0x88, 0xc5, 0x72, 0xac, 0xc0, 0x4a, 0xac, 0xc2, 0x6a, 0xc4,
|
|
||||||
0x21, 0x1e, 0x09, 0x58, 0x83, 0xb5, 0x48, 0xc4, 0x3a, 0x24, 0x61,
|
|
||||||
0x3d, 0x92, 0xb1, 0x01, 0x1b, 0x91, 0x82, 0x54, 0xa4, 0x79, 0x9f,
|
|
||||||
0xba, 0x9e, 0xf9, 0xf0, 0x40, 0xd8, 0x99, 0x17, 0x08, 0x07, 0xa9,
|
|
||||||
0xca, 0xc9, 0xfd, 0x26, 0x52, 0x88, 0xcd, 0xa4, 0x10, 0x19, 0xa4,
|
|
||||||
0x10, 0x5b, 0x48, 0x21, 0x32, 0x49, 0x21, 0xb6, 0x0a, 0xd1, 0x43,
|
|
||||||
0x1b, 0x61, 0xd4, 0x37, 0x23, 0xde, 0x6e, 0xe1, 0x47, 0x39, 0xe1,
|
|
||||||
0x42, 0x36, 0x2a, 0x14, 0xa4, 0x43, 0x36, 0x2c, 0x64, 0x83, 0x42,
|
|
||||||
0x36, 0xa4, 0x36, 0x22, 0xb2, 0xb0, 0x0d, 0xdb, 0xb1, 0x03, 0xd9,
|
|
||||||
0xd8, 0x89, 0x5d, 0xc8, 0x41, 0x2e, 0x76, 0x63, 0x0f, 0xf2, 0xb0,
|
|
||||||
0x17, 0xf9, 0xd8, 0x87, 0xfd, 0x28, 0xc0, 0x01, 0x14, 0xca, 0xb5,
|
|
||||||
0x0a, 0x96, 0xeb, 0x61, 0x92, 0xf3, 0x98, 0x20, 0x9f, 0xdf, 0x29,
|
|
||||||
0xdb, 0xcf, 0x97, 0x31, 0x7a, 0x06, 0x27, 0x71, 0x0a, 0xa7, 0x65,
|
|
||||||
0xfe, 0x2c, 0xce, 0xa1, 0x04, 0x57, 0x70, 0x0b, 0x17, 0x71, 0x1e,
|
|
||||||
0x17, 0x70, 0x49, 0xc6, 0x4d, 0xd0, 0x6f, 0xf6, 0x42, 0xa9, 0x8c,
|
|
||||||
0xfb, 0x0a, 0x54, 0xe1, 0x2e, 0xaa, 0x51, 0x8b, 0x07, 0x68, 0xc4,
|
|
||||||
0x53, 0x3c, 0x43, 0x1b, 0x9e, 0xe3, 0x05, 0x5e, 0xe2, 0x1d, 0x3e,
|
|
||||||
0xa2, 0x17, 0x5f, 0x64, 0x8c, 0x7d, 0x53, 0x63, 0x8f, 0x60, 0x8d,
|
|
||||||
0xd6, 0x69, 0xed, 0xa7, 0xe8, 0xc6, 0xb0, 0x21, 0x33, 0xee, 0x3b,
|
|
||||||
0x45, 0x35, 0x7a, 0x91, 0x5c, 0xeb, 0x14, 0xd9, 0xa4, 0x45, 0x28,
|
|
||||||
0xc1, 0x2b, 0xf2, 0xe6, 0x3a, 0xa7, 0xb8, 0xdd, 0xec, 0xf4, 0x15,
|
|
||||||
0x3f, 0x86, 0x62, 0x6d, 0xdf, 0xb4, 0x1c, 0x1f, 0xa7, 0x33, 0xe1,
|
|
||||||
0xb1, 0xce, 0xb7, 0x0f, 0x7d, 0x6c, 0x8e, 0x28, 0x19, 0xe7, 0x71,
|
|
||||||
0x32, 0x3e, 0x15, 0xb9, 0xfe, 0x79, 0xf2, 0xfc, 0x50, 0xd7, 0xe3,
|
|
||||||
0x32, 0x4e, 0xfc, 0xa2, 0xcd, 0x7b, 0x35, 0x35, 0x96, 0xf1, 0x3c,
|
|
||||||
0xb7, 0x8c, 0xdd, 0x31, 0x6c, 0x8d, 0x0e, 0x35, 0x5c, 0xd3, 0xdf,
|
|
||||||
0x6a, 0xf3, 0x6a, 0x1d, 0x59, 0xca, 0x4c, 0x18, 0xf7, 0x29, 0xfe,
|
|
||||||
0x3e, 0x43, 0x43, 0x08, 0x2c, 0x53, 0xd0, 0x9f, 0xd6, 0xfe, 0xfb,
|
|
||||||
0x31, 0xba, 0x86, 0xe5, 0x2b, 0x19, 0x4b, 0x1d, 0x1a, 0xb5, 0x31,
|
|
||||||
0x29, 0xcd, 0x5a, 0xda, 0xce, 0x5a, 0xd2, 0xcf, 0x6b, 0xa5, 0x7b,
|
|
||||||
0xd4, 0xb1, 0x86, 0x53, 0xe6, 0x2b, 0x7a, 0x94, 0x7e, 0xca, 0xe9,
|
|
||||||
0x39, 0x64, 0x8d, 0x88, 0xd4, 0x8f, 0x56, 0xa7, 0x58, 0x11, 0xee,
|
|
||||||
0x0f, 0xd4, 0xf1, 0x70, 0x84, 0x34, 0x39, 0x92, 0xbc, 0x65, 0x33,
|
|
||||||
0xc8, 0xd7, 0x93, 0xaf, 0x74, 0xd8, 0xb4, 0xbc, 0x23, 0xd3, 0x9b,
|
|
||||||
0xf6, 0xd9, 0x73, 0x49, 0x0b, 0x51, 0xa2, 0xd7, 0x62, 0x66, 0xec,
|
|
||||||
0x57, 0xf9, 0xc0, 0x3c, 0x35, 0x50, 0xf7, 0x91, 0xb7, 0x3d, 0x97,
|
|
||||||
0xf2, 0x44, 0x3f, 0xf0, 0xde, 0xf0, 0x5d, 0xb6, 0x91, 0xf7, 0xe6,
|
|
||||||
0xb6, 0xa1, 0x65, 0x06, 0xe3, 0xbb, 0xd4, 0x8f, 0xb1, 0xf1, 0xde,
|
|
||||||
0x3b, 0xb6, 0x0e, 0x7b, 0x57, 0x67, 0xa7, 0xa5, 0xab, 0x33, 0xcb,
|
|
||||||
0xf2, 0x59, 0xce, 0xe3, 0xd5, 0x80, 0xbc, 0xdd, 0x13, 0x99, 0x2f,
|
|
||||||
0x17, 0x7b, 0xc4, 0xd3, 0xc2, 0xbc, 0xb7, 0x85, 0x1a, 0xb4, 0x5f,
|
|
||||||
0xaf, 0x05, 0xa4, 0x6f, 0x33, 0xfd, 0x16, 0xa9, 0xfb, 0xb3, 0x95,
|
|
||||||
0x7b, 0xf5, 0xdd, 0xc5, 0x5c, 0x37, 0x29, 0xda, 0x3c, 0xf8, 0x64,
|
|
||||||
0x0d, 0x88, 0x97, 0x63, 0x2b, 0xfb, 0x67, 0xff, 0x84, 0xdc, 0xad,
|
|
||||||
0x8c, 0x29, 0xcd, 0xd8, 0xdd, 0x90, 0xaa, 0xc6, 0x4a, 0x8e, 0x1c,
|
|
||||||
0xcf, 0x75, 0xbf, 0xf4, 0xe5, 0x61, 0x5d, 0xdc, 0xec, 0x47, 0x9b,
|
|
||||||
0x87, 0xf5, 0x21, 0x2e, 0x5d, 0xec, 0x93, 0x3e, 0xf5, 0x3f, 0x8f,
|
|
||||||
0x75, 0x90, 0x10, 0x37, 0x02, 0xfb, 0xfc, 0x9c, 0xcf, 0x11, 0xed,
|
|
||||||
0x77, 0xe4, 0x73, 0xdf, 0xf4, 0x5b, 0x3f, 0xfd, 0xf6, 0x87, 0x86,
|
|
||||||
0xb1, 0x96, 0x2d, 0x53, 0x62, 0x0b, 0xaa, 0xd4, 0xf8, 0xb0, 0xbe,
|
|
||||||
0xa1, 0xce, 0xa7, 0x61, 0xf5, 0xbe, 0x03, 0x0b, 0xb8, 0xb3, 0x90
|
|
||||||
};
|
|
File diff suppressed because it is too large
Load Diff
105
baserc/images.h
105
baserc/images.h
|
@ -82,6 +82,111 @@ const unsigned char error_tga[] = {
|
||||||
0x80, 0x80, 0x80, 0x00, 0xff, 0xff, 0xff, 0x9f, 0xff, 0xff, 0xff
|
0x80, 0x80, 0x80, 0x00, 0xff, 0xff, 0xff, 0x9f, 0xff, 0xff, 0xff
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const unsigned char net_png[] = {
|
||||||
|
0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00,
|
||||||
|
0x0d, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00,
|
||||||
|
0x00, 0x20, 0x08, 0x06, 0x00, 0x00, 0x00, 0x73, 0x7a, 0x7a, 0xf4,
|
||||||
|
0x00, 0x00, 0x00, 0x3f, 0x74, 0x45, 0x58, 0x74, 0x47, 0x65, 0x6e,
|
||||||
|
0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x00, 0x47,
|
||||||
|
0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79,
|
||||||
|
0x20, 0x74, 0x68, 0x65, 0x20, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f,
|
||||||
|
0x70, 0x65, 0x72, 0x27, 0x73, 0x20, 0x49, 0x6d, 0x61, 0x67, 0x65,
|
||||||
|
0x20, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x20, 0x28, 0x44,
|
||||||
|
0x65, 0x76, 0x49, 0x4c, 0x29, 0x3e, 0xf9, 0x5b, 0xf1, 0x00, 0x00,
|
||||||
|
0x00, 0x0e, 0x74, 0x45, 0x58, 0x74, 0x41, 0x75, 0x74, 0x68, 0x6f,
|
||||||
|
0x72, 0x27, 0x73, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x00, 0xa7, 0x54,
|
||||||
|
0x77, 0xc3, 0x00, 0x00, 0x00, 0x12, 0x74, 0x45, 0x58, 0x74, 0x41,
|
||||||
|
0x75, 0x74, 0x68, 0x6f, 0x72, 0x27, 0x73, 0x20, 0x63, 0x6f, 0x6d,
|
||||||
|
0x6d, 0x65, 0x6e, 0x74, 0x73, 0x00, 0x57, 0x30, 0xab, 0x86, 0x00,
|
||||||
|
0x00, 0x03, 0xa5, 0x49, 0x44, 0x41, 0x54, 0x78, 0x9c, 0xc5, 0x97,
|
||||||
|
0xbf, 0x6b, 0x1c, 0x39, 0x14, 0xc7, 0xbf, 0x36, 0xc2, 0x08, 0x33,
|
||||||
|
0x04, 0x11, 0x96, 0xb0, 0x84, 0x29, 0x44, 0x58, 0xc2, 0x16, 0x26,
|
||||||
|
0x4c, 0xe1, 0xc2, 0x45, 0x0a, 0x13, 0x4c, 0x6a, 0xff, 0x01, 0x29,
|
||||||
|
0x52, 0xa4, 0xc8, 0x9f, 0x90, 0xf2, 0x8a, 0x14, 0x29, 0x52, 0xa4,
|
||||||
|
0xbc, 0x72, 0xff, 0x80, 0x2b, 0x4c, 0x48, 0x71, 0x1c, 0x5b, 0x0c,
|
||||||
|
0xc6, 0xc5, 0x16, 0x57, 0x0c, 0x21, 0x45, 0x8a, 0x65, 0x51, 0x31,
|
||||||
|
0x98, 0x21, 0x0c, 0x46, 0x84, 0x61, 0x11, 0x46, 0x5c, 0x52, 0x68,
|
||||||
|
0x67, 0x34, 0x4f, 0x3b, 0xb3, 0x1b, 0xe2, 0xe4, 0xfc, 0x60, 0xd9,
|
||||||
|
0xd1, 0x1b, 0x49, 0xef, 0xa3, 0xf7, 0x43, 0x23, 0xed, 0x80, 0x8d,
|
||||||
|
0xbf, 0xa1, 0x2d, 0xd1, 0x90, 0x34, 0xb9, 0x25, 0x4d, 0x0c, 0x87,
|
||||||
|
0x86, 0x2a, 0xa0, 0x48, 0xcb, 0x68, 0x4d, 0xdb, 0x41, 0x77, 0x63,
|
||||||
|
0xa9, 0x82, 0x01, 0xc0, 0x9f, 0x93, 0xbf, 0x1b, 0x85, 0x36, 0x9c,
|
||||||
|
0x8e, 0x08, 0x00, 0x6c, 0xf5, 0x17, 0x5e, 0xbc, 0x7c, 0xe6, 0x27,
|
||||||
|
0xac, 0x28, 0x40, 0xf6, 0x6f, 0x16, 0x00, 0x84, 0xc0, 0x5e, 0x9e,
|
||||||
|
0x3f, 0x7b, 0x89, 0xdd, 0xde, 0xb7, 0xff, 0x93, 0xdc, 0x3a, 0x00,
|
||||||
|
0x03, 0x00, 0xc3, 0xbc, 0xdb, 0x39, 0x17, 0x30, 0xd7, 0x80, 0xb9,
|
||||||
|
0xae, 0x7b, 0x18, 0x12, 0x86, 0x48, 0x3c, 0x06, 0xda, 0x71, 0x0c,
|
||||||
|
0x5c, 0xcc, 0x79, 0xe0, 0xf2, 0x20, 0xe6, 0xa4, 0xbb, 0xe9, 0xf0,
|
||||||
|
0x40, 0x63, 0xb8, 0x99, 0x60, 0xf3, 0x0a, 0x6e, 0x2a, 0x2c, 0x54,
|
||||||
|
0xf0, 0x3d, 0x0f, 0xd1, 0x3c, 0xb3, 0x15, 0x88, 0xed, 0x1a, 0xe1,
|
||||||
|
0x24, 0x4d, 0xa7, 0x00, 0x80, 0xe2, 0x4b, 0x41, 0xf4, 0x66, 0x49,
|
||||||
|
0x3d, 0x30, 0x1e, 0x1f, 0x6c, 0x06, 0xe8, 0x34, 0xde, 0xd0, 0xf5,
|
||||||
|
0xad, 0xc3, 0x03, 0xac, 0x95, 0x5d, 0x4b, 0x91, 0x24, 0xd4, 0xb8,
|
||||||
|
0x03, 0xb0, 0x82, 0x8e, 0xfa, 0xcf, 0xd7, 0x31, 0x67, 0x40, 0x53,
|
||||||
|
0xe7, 0x2b, 0x90, 0x81, 0x28, 0xd0, 0x2e, 0x75, 0x5d, 0xb8, 0x15,
|
||||||
|
0xcf, 0x2e, 0x5c, 0xf9, 0x29, 0xa5, 0x21, 0x06, 0x1c, 0x66, 0x69,
|
||||||
|
0xc1, 0xf7, 0x19, 0x74, 0xe9, 0xe7, 0x1e, 0x8d, 0x0e, 0xa0, 0xab,
|
||||||
|
0x96, 0x2d, 0xd6, 0xeb, 0x50, 0x2a, 0x52, 0xfa, 0xe7, 0x64, 0x24,
|
||||||
|
0xfb, 0xba, 0x79, 0xa8, 0x95, 0x51, 0xb3, 0xdc, 0x9e, 0x40, 0xbd,
|
||||||
|
0x65, 0x38, 0xb8, 0x67, 0x30, 0xb8, 0x67, 0x20, 0x25, 0xc8, 0x8a,
|
||||||
|
0xf3, 0x4b, 0xdd, 0xf9, 0xfc, 0xb3, 0xb2, 0xe6, 0x81, 0xf1, 0x41,
|
||||||
|
0xb0, 0x95, 0x56, 0xee, 0xbf, 0x86, 0xa8, 0xb7, 0xda, 0xf8, 0xbe,
|
||||||
|
0x40, 0x7c, 0x5f, 0x40, 0x17, 0x37, 0x83, 0x60, 0x60, 0x06, 0x22,
|
||||||
|
0xf2, 0x99, 0x2b, 0x07, 0xfe, 0x5b, 0xa0, 0x16, 0x19, 0xcc, 0x35,
|
||||||
|
0x07, 0x6f, 0x25, 0xdf, 0x58, 0x0a, 0x07, 0x54, 0x69, 0xe8, 0xb2,
|
||||||
|
0x80, 0x2e, 0x14, 0x00, 0x20, 0x39, 0x3c, 0xc4, 0xd9, 0xd9, 0x14,
|
||||||
|
0x42, 0xd0, 0x4c, 0xd5, 0xad, 0xfc, 0x8a, 0xe3, 0x01, 0x74, 0xd9,
|
||||||
|
0x02, 0xb6, 0x1d, 0x1e, 0x50, 0x0b, 0x97, 0x4c, 0xf2, 0x41, 0x02,
|
||||||
|
0xf9, 0x20, 0x81, 0xae, 0xaa, 0xa0, 0x47, 0xe9, 0x0c, 0x97, 0x05,
|
||||||
|
0x44, 0x0b, 0xf6, 0xf4, 0xf4, 0x04, 0xa7, 0xa7, 0x27, 0xf8, 0xf0,
|
||||||
|
0x3e, 0xc5, 0xf4, 0x9f, 0x94, 0x8c, 0x78, 0xf3, 0xfa, 0x55, 0xaf,
|
||||||
|
0x07, 0x3a, 0x73, 0x40, 0x2d, 0x32, 0x0f, 0x12, 0xc7, 0xcd, 0x0f,
|
||||||
|
0x40, 0x63, 0x1c, 0x00, 0x01, 0xa8, 0xe5, 0xe4, 0xe9, 0x31, 0x6d,
|
||||||
|
0x3f, 0x79, 0xdc, 0x6b, 0xbc, 0x13, 0xa0, 0x5e, 0xb9, 0x5a, 0x64,
|
||||||
|
0x48, 0xa7, 0x13, 0xa4, 0xb3, 0x99, 0x83, 0xca, 0x73, 0xa8, 0x3c,
|
||||||
|
0xdf, 0x68, 0xbc, 0x96, 0x37, 0x6f, 0xff, 0xf8, 0x61, 0x80, 0x1d,
|
||||||
|
0x11, 0xf1, 0x6f, 0x69, 0x3a, 0x69, 0x14, 0xc3, 0x58, 0x34, 0xcf,
|
||||||
|
0xe9, 0xf9, 0x0c, 0xd5, 0xee, 0x21, 0x62, 0x39, 0x42, 0xae, 0xe6,
|
||||||
|
0xc8, 0xd5, 0x1c, 0x52, 0xfa, 0xf7, 0x6a, 0xa1, 0x80, 0xaf, 0x39,
|
||||||
|
0x84, 0x88, 0x1a, 0x1d, 0xbf, 0x23, 0x20, 0xee, 0x0a, 0xa8, 0xb9,
|
||||||
|
0x6a, 0x40, 0x75, 0x59, 0x42, 0x97, 0x25, 0x00, 0xba, 0xb3, 0xbf,
|
||||||
|
0x7d, 0x37, 0xe9, 0xdf, 0x07, 0xd2, 0xf3, 0x19, 0xd2, 0xf3, 0x19,
|
||||||
|
0x86, 0x52, 0x34, 0x00, 0xb1, 0x1c, 0x01, 0x70, 0x13, 0xa5, 0xd3,
|
||||||
|
0xd4, 0x19, 0x60, 0x86, 0x00, 0xd4, 0x22, 0x57, 0xfb, 0x85, 0xd6,
|
||||||
|
0xfd, 0xe7, 0x01, 0xa0, 0x23, 0x09, 0x6b, 0xc3, 0x6d, 0xf1, 0xc6,
|
||||||
|
0x41, 0x8c, 0x77, 0x89, 0xbe, 0xd2, 0x41, 0xbb, 0x6a, 0x56, 0xbf,
|
||||||
|
0x15, 0x60, 0x32, 0x39, 0x83, 0x41, 0x7f, 0x5d, 0xe7, 0x6a, 0x0e,
|
||||||
|
0x35, 0xa7, 0x27, 0x9e, 0xae, 0xd5, 0xb7, 0x21, 0x48, 0xd9, 0x75,
|
||||||
|
0x01, 0x18, 0x08, 0x9c, 0xcd, 0x5c, 0x62, 0x7d, 0xca, 0x2d, 0x2c,
|
||||||
|
0x3f, 0x06, 0x00, 0x24, 0x8f, 0x5c, 0xd6, 0x1b, 0x44, 0x98, 0x2b,
|
||||||
|
0x17, 0xb9, 0x2c, 0x1b, 0x82, 0xf3, 0x71, 0x33, 0x38, 0x16, 0x16,
|
||||||
|
0x51, 0x54, 0xc0, 0x5a, 0x1f, 0x59, 0xb6, 0x4b, 0x9d, 0x2a, 0x04,
|
||||||
|
0x50, 0x5c, 0xf9, 0x36, 0x6f, 0xa5, 0x3d, 0x67, 0xc2, 0x79, 0xe0,
|
||||||
|
0x62, 0x7a, 0xb1, 0x91, 0x32, 0x94, 0x58, 0x58, 0xf2, 0x7f, 0x13,
|
||||||
|
0xe9, 0xfd, 0x16, 0x64, 0x1f, 0x73, 0x24, 0x8f, 0x62, 0x24, 0x89,
|
||||||
|
0xdb, 0xd9, 0xb2, 0xac, 0xb5, 0xa3, 0x09, 0xfb, 0x4b, 0x8c, 0x03,
|
||||||
|
0x1b, 0xbe, 0x86, 0x75, 0x08, 0xb2, 0xcc, 0x10, 0xe3, 0x00, 0x90,
|
||||||
|
0x6b, 0x3f, 0xcc, 0xda, 0x01, 0x79, 0x17, 0x1e, 0xbb, 0xc5, 0x1e,
|
||||||
|
0x0d, 0x41, 0xb1, 0xf8, 0x4c, 0x01, 0x8c, 0x91, 0xb0, 0xac, 0x75,
|
||||||
|
0xcc, 0xb6, 0xae, 0xce, 0xcb, 0x2b, 0x0e, 0xa5, 0x38, 0x66, 0xd9,
|
||||||
|
0x10, 0x30, 0xab, 0x44, 0xe2, 0x02, 0x06, 0xc7, 0x28, 0x2e, 0x73,
|
||||||
|
0xd7, 0x77, 0x99, 0x03, 0x41, 0x95, 0x31, 0x46, 0xbf, 0x05, 0x55,
|
||||||
|
0x70, 0x6c, 0x37, 0xa5, 0x9b, 0x5f, 0x3e, 0x3c, 0x82, 0xb1, 0xef,
|
||||||
|
0xfa, 0x3d, 0x30, 0x57, 0x06, 0x73, 0x65, 0xc0, 0xeb, 0x63, 0x10,
|
||||||
|
0x17, 0xee, 0x07, 0x80, 0xef, 0xc7, 0x30, 0xcb, 0x1c, 0x7c, 0x3f,
|
||||||
|
0x06, 0xf6, 0x5a, 0x93, 0x7f, 0xcd, 0xd7, 0xe6, 0x89, 0x84, 0xf4,
|
||||||
|
0x30, 0x5a, 0x41, 0x3e, 0x3c, 0xa2, 0xc0, 0x7d, 0x00, 0x44, 0xb8,
|
||||||
|
0x58, 0x57, 0xed, 0xc7, 0xeb, 0xba, 0x3b, 0x31, 0x78, 0xe0, 0x92,
|
||||||
|
0x3a, 0x24, 0x95, 0x56, 0x2b, 0x18, 0x5a, 0x96, 0xdb, 0x01, 0x5a,
|
||||||
|
0x2b, 0xff, 0x1d, 0xc2, 0xc0, 0xe0, 0xce, 0xfe, 0x2b, 0x11, 0x91,
|
||||||
|
0x08, 0x7b, 0x80, 0x50, 0xaf, 0x25, 0xff, 0xe6, 0xad, 0xb6, 0x1e,
|
||||||
|
0x1b, 0xad, 0xce, 0x09, 0xe4, 0xda, 0x60, 0xf5, 0xed, 0xdf, 0x8c,
|
||||||
|
0x6e, 0x1d, 0x60, 0x07, 0xfc, 0x88, 0x5e, 0xcf, 0xed, 0xb6, 0x78,
|
||||||
|
0x87, 0x97, 0x83, 0x6d, 0x21, 0x08, 0xaf, 0x6a, 0xf4, 0xe2, 0xf2,
|
||||||
|
0x1d, 0x72, 0xf3, 0x92, 0x8e, 0x46, 0xd6, 0xb0, 0x55, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82
|
||||||
|
};
|
||||||
|
|
||||||
const unsigned char blank_bmp[] = {
|
const unsigned char blank_bmp[] = {
|
||||||
0x42, 0x4d, 0x76, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36,
|
0x42, 0x4d, 0x76, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36,
|
||||||
0x04, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
|
0x04, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -6,11 +6,11 @@
|
||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
#include "launch_api.h"
|
#include "launch_api.h"
|
||||||
#include "baserc_api.h"
|
#include "baserc_api.h"
|
||||||
|
#include "progs.h"
|
||||||
|
|
||||||
// resources
|
// resources
|
||||||
#include "images.h"
|
#include "images.h"
|
||||||
#include "server.h"
|
#include "conback.h"
|
||||||
#include "client.h"
|
|
||||||
#include "uimenu.h"
|
#include "uimenu.h"
|
||||||
|
|
||||||
stdlib_api_t com;
|
stdlib_api_t com;
|
||||||
|
@ -29,9 +29,10 @@ loadres_t load_resources[] =
|
||||||
{"blank.bmp", blank_bmp, sizeof(blank_bmp)},
|
{"blank.bmp", blank_bmp, sizeof(blank_bmp)},
|
||||||
{"checkerboard.dds", q1mip_dds, sizeof(q1mip_dds)},
|
{"checkerboard.dds", q1mip_dds, sizeof(q1mip_dds)},
|
||||||
{"default.dds", deffont_dds, sizeof(deffont_dds)},
|
{"default.dds", deffont_dds, sizeof(deffont_dds)},
|
||||||
{"server.dat", server_dat, sizeof(server_dat)},
|
{"conback.dds", conback_dds, sizeof(conback_dds)},
|
||||||
{"client.dat", client_dat, sizeof(client_dat)},
|
{"net.png", net_png, sizeof(net_png)},
|
||||||
{"uimenu.dat", uimenu_dat, sizeof(uimenu_dat)},
|
{"progs.pk3", progs_pk3, sizeof(progs_pk3)},
|
||||||
|
{"uimenu.dat", uimenu_dat, sizeof(uimenu_dat)}, // FIXME: get rid of this
|
||||||
{NULL, NULL, 0 }
|
{NULL, NULL, 0 }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
3124
baserc/server.h
3124
baserc/server.h
File diff suppressed because it is too large
Load Diff
2528
baserc/uimenu.h
2528
baserc/uimenu.h
File diff suppressed because it is too large
Load Diff
|
@ -1,243 +0,0 @@
|
||||||
//=======================================================================
|
|
||||||
// Copyright (C) Shambler Team 2005
|
|
||||||
// vector.h - shared vector operations
|
|
||||||
//=======================================================================
|
|
||||||
#ifndef VECTOR_H
|
|
||||||
#define VECTOR_H
|
|
||||||
|
|
||||||
#include <math.h>
|
|
||||||
#include <float.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#include <stdio.h>
|
|
||||||
|
|
||||||
#pragma warning(disable : 4244) // int or float down-conversion
|
|
||||||
|
|
||||||
// Header file containing definition of globalvars_t and entvars_t
|
|
||||||
typedef int func_t; //
|
|
||||||
typedef int string_t; // from engine's pr_comp.h;
|
|
||||||
typedef float vec_t; // needed before including progdefs.h
|
|
||||||
|
|
||||||
//=========================================================
|
|
||||||
// 2DVector - used for many pathfinding and many other
|
|
||||||
// operations that are treated as planar rather than 3d.
|
|
||||||
//=========================================================
|
|
||||||
class Vector2D
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
inline Vector2D(void) { }
|
|
||||||
inline Vector2D(float X, float Y) { x = X; y = Y; }
|
|
||||||
inline Vector2D operator+(const Vector2D& v) const { return Vector2D(x+v.x, y+v.y); }
|
|
||||||
inline Vector2D operator-(const Vector2D& v) const { return Vector2D(x-v.x, y-v.y); }
|
|
||||||
inline Vector2D operator*(float fl) const { return Vector2D(x*fl, y*fl); }
|
|
||||||
inline Vector2D operator/(float fl) const { return Vector2D(x/fl, y/fl); }
|
|
||||||
|
|
||||||
inline float Length(void) const { return (float)sqrt(x*x + y*y ); }
|
|
||||||
inline Vector2D Normalize ( void ) const
|
|
||||||
{
|
|
||||||
Vector2D vec2;
|
|
||||||
|
|
||||||
float flLen = Length();
|
|
||||||
if ( flLen == 0 )
|
|
||||||
{
|
|
||||||
return Vector2D( (float)0, (float)0 );
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
flLen = 1 / flLen;
|
|
||||||
return Vector2D( x * flLen, y * flLen );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
vec_t x, y;
|
|
||||||
};
|
|
||||||
|
|
||||||
#define nanmask (255<<23)
|
|
||||||
#define IS_NAN(x) (((*(int *)&x)&nanmask)==nanmask)
|
|
||||||
|
|
||||||
inline float DotProduct(const Vector2D& a, const Vector2D& b) { return( a.x*b.x + a.y*b.y ); }
|
|
||||||
inline Vector2D operator*(float fl, const Vector2D& v) { return v * fl; }
|
|
||||||
|
|
||||||
//=========================================================
|
|
||||||
// 3D Vector
|
|
||||||
//=========================================================
|
|
||||||
class Vector // same data-layout as engine's vec3_t,
|
|
||||||
{ // which is a vec_t[3]
|
|
||||||
public:
|
|
||||||
// Construction/destruction
|
|
||||||
inline Vector(void) { }
|
|
||||||
inline Vector(float X, float Y, float Z) { x = X; y = Y; z = Z; }
|
|
||||||
inline Vector(const Vector& v) { x = v.x; y = v.y; z = v.z; }
|
|
||||||
inline Vector(float rgfl[3]) { x = rgfl[0]; y = rgfl[1]; z = rgfl[2]; }
|
|
||||||
|
|
||||||
// Initialization
|
|
||||||
void Init(vec_t ix=0.0f, vec_t iy=0.0f, vec_t iz=0.0f){ x = ix; y = iy; z = iz; }
|
|
||||||
|
|
||||||
// Operators
|
|
||||||
inline Vector operator-(void) const { return Vector(-x,-y,-z); }
|
|
||||||
inline int operator==(const Vector& v) const { return x==v.x && y==v.y && z==v.z; }
|
|
||||||
inline int operator!=(const Vector& v) const { return !(*this==v); }
|
|
||||||
inline Vector operator+(const Vector& v) const { return Vector(x+v.x, y+v.y, z+v.z); }
|
|
||||||
inline Vector operator-(const Vector& v) const { return Vector(x-v.x, y-v.y, z-v.z); }
|
|
||||||
inline Vector operator*(float fl) const { return Vector(x*fl, y*fl, z*fl); }
|
|
||||||
inline Vector operator/(float fl) const { return Vector(x/fl, y/fl, z/fl); }
|
|
||||||
|
|
||||||
_forceinline Vector& operator+=(const Vector &v)
|
|
||||||
{
|
|
||||||
x+=v.x; y+=v.y; z += v.z;
|
|
||||||
return *this;
|
|
||||||
}
|
|
||||||
_forceinline Vector& operator-=(const Vector &v)
|
|
||||||
{
|
|
||||||
x-=v.x; y-=v.y; z -= v.z;
|
|
||||||
return *this;
|
|
||||||
}
|
|
||||||
_forceinline Vector& operator*=(const Vector &v)
|
|
||||||
{
|
|
||||||
x *= v.x; y *= v.y; z *= v.z;
|
|
||||||
return *this;
|
|
||||||
}
|
|
||||||
_forceinline Vector& operator*=(float s)
|
|
||||||
{
|
|
||||||
x *= s; y *= s; z *= s;
|
|
||||||
return *this;
|
|
||||||
}
|
|
||||||
_forceinline Vector& operator/=(const Vector &v)
|
|
||||||
{
|
|
||||||
x /= v.x; y /= v.y; z /= v.z;
|
|
||||||
return *this;
|
|
||||||
}
|
|
||||||
_forceinline Vector& operator/=(float s)
|
|
||||||
{
|
|
||||||
float oofl = 1.0f / s;
|
|
||||||
x *= oofl; y *= oofl; z *= oofl;
|
|
||||||
return *this;
|
|
||||||
}
|
|
||||||
_forceinline Vector MA( const Vector &start, float scale, const Vector &direction ) const
|
|
||||||
{
|
|
||||||
return Vector(start.x + scale * direction.x, start.y + scale * direction.y, start.z + scale * direction.z) ;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Methods
|
|
||||||
inline void CopyToArray(float* rgfl) const { rgfl[0] = x, rgfl[1] = y, rgfl[2] = z; }
|
|
||||||
inline float Length(void) const { return (float)sqrt(x*x + y*y + z*z); }
|
|
||||||
operator float *() { return &x; } // Vectors will now automatically convert to float * when needed
|
|
||||||
operator const float *() const { return &x; } // Vectors will now automatically convert to float * when needed
|
|
||||||
|
|
||||||
// array access...
|
|
||||||
vec_t operator[](int i) const { return ((vec_t*)this)[i];}
|
|
||||||
vec_t& operator[](int i) { return ((vec_t*)this)[i];}
|
|
||||||
|
|
||||||
inline Vector Normalize(void) const
|
|
||||||
{
|
|
||||||
float flLen = Length();
|
|
||||||
if (flLen == 0) return Vector(0,0,1); // ????
|
|
||||||
flLen = 1 / flLen;
|
|
||||||
return Vector(x * flLen, y * flLen, z * flLen);
|
|
||||||
}
|
|
||||||
vec_t Dot(Vector const& vOther) const
|
|
||||||
{
|
|
||||||
return(x*vOther.x+y*vOther.y+z*vOther.z);
|
|
||||||
}
|
|
||||||
Vector Cross(const Vector &vOther) const
|
|
||||||
{
|
|
||||||
return Vector(y*vOther.z - z*vOther.y, z*vOther.x - x*vOther.z, x*vOther.y - y*vOther.x);
|
|
||||||
}
|
|
||||||
inline Vector2D Make2D ( void ) const
|
|
||||||
{
|
|
||||||
Vector2D Vec2;
|
|
||||||
Vec2.x = x;
|
|
||||||
Vec2.y = y;
|
|
||||||
return Vec2;
|
|
||||||
}
|
|
||||||
|
|
||||||
inline float Length2D(void) const { return (float)sqrt(x*x + y*y); }
|
|
||||||
// Members
|
|
||||||
vec_t x, y, z;
|
|
||||||
};
|
|
||||||
inline Vector operator*(float fl, const Vector& v) { return v * fl; }
|
|
||||||
inline float DotProduct(const Vector& a, const Vector& b) { return(a.x*b.x+a.y*b.y+a.z*b.z); }
|
|
||||||
inline Vector CrossProduct(const Vector& a, const Vector& b) { return Vector( a.y*b.z - a.z*b.y, a.z*b.x - a.x*b.z, a.x*b.y - a.y*b.x ); }
|
|
||||||
#define vec3_t Vector
|
|
||||||
|
|
||||||
//=========================================================
|
|
||||||
// 4D Vector - for matrix operations
|
|
||||||
//=========================================================
|
|
||||||
class Vector4D
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
// Members
|
|
||||||
vec_t x, y, z, w;
|
|
||||||
|
|
||||||
// Construction/destruction
|
|
||||||
Vector4D(void){}
|
|
||||||
Vector4D(vec_t X, vec_t Y, vec_t Z, vec_t W) { x = X; y = Y; z = Z; w = W;}
|
|
||||||
Vector4D(double X, double Y, double Z, double W) { x = (double)X; y = (double)Y; z = (double)Z; w = (double)W;}
|
|
||||||
Vector4D(const float *pFloat) { x = pFloat[0]; y = pFloat[1]; z = pFloat[2]; w = pFloat[3];}
|
|
||||||
|
|
||||||
// array access...
|
|
||||||
vec_t operator[](int i) const { return ((vec_t*)this)[i];}
|
|
||||||
vec_t& operator[](int i) { return ((vec_t*)this)[i];}
|
|
||||||
|
|
||||||
// equality
|
|
||||||
bool operator==(const Vector4D& src) const{ return(src.x == x) && (src.y == y) && (src.z == z) && (src.w == w);}
|
|
||||||
bool operator!=(const Vector4D& src) const{ return(src.x != x) || (src.y != y) || (src.z != z) || (src.w != w);}
|
|
||||||
|
|
||||||
// arithmetic operations
|
|
||||||
Vector4D& operator+=(const Vector4D &v){ x+=v.x; y+=v.y; z += v.z; return *this;}
|
|
||||||
Vector4D& operator-=(const Vector4D &v){ x-=v.x; y-=v.y; z -= v.z; return *this;}
|
|
||||||
Vector4D operator+ (const Vector4D &v)const {Vector4D res; res.x = x + v.x; res.y = y + v.y; res.z = z + v.z; res.w = w; return res;}
|
|
||||||
Vector4D operator- (const Vector4D &v)const {Vector4D res; res.x = x - v.x; res.y = y - v.y; res.z = z - v.z; res.w = w; return res;}
|
|
||||||
Vector4D operator* (const Vector4D &v)const {Vector4D res; res.x = y * v.z - z * v.y; res.y = z * v.x - x * v.z; res.z = x * v.y - y * v.x; res.w = w; return res;}
|
|
||||||
float operator% (const Vector4D &v)const { return (x * v.x + y * v.y + z * v.z); }
|
|
||||||
Vector4D Scale( float scale)const {Vector4D res; res.x = x * scale; res.y = y * scale; res.z = z * scale; res.w = w;return res; }
|
|
||||||
Vector4D CompProduct (const Vector4D &v)const {Vector4D res; res.x = x * v.x; res.y = y * v.y; res.z = z * v.z; res.w = w; return res;}
|
|
||||||
};
|
|
||||||
|
|
||||||
//=========================================================
|
|
||||||
// RandomRange - for random values
|
|
||||||
//=========================================================
|
|
||||||
class RandomRange
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
float m_flMax, m_flMin;//class members
|
|
||||||
|
|
||||||
RandomRange() { m_flMin = m_flMax = 0; }
|
|
||||||
RandomRange(float fValue) { m_flMin = m_flMax = fValue; }
|
|
||||||
RandomRange(float fMin, float fMax) { m_flMin = fMin; m_flMax = fMax; }
|
|
||||||
RandomRange( char *szToken )
|
|
||||||
{
|
|
||||||
char *cOneDot = NULL;
|
|
||||||
m_flMin = m_flMax = 0;
|
|
||||||
|
|
||||||
for (char *c = szToken; *c; c++)
|
|
||||||
{
|
|
||||||
if (*c == '.')
|
|
||||||
{
|
|
||||||
if (cOneDot != NULL)
|
|
||||||
{
|
|
||||||
// found two dots in a row - it's a range
|
|
||||||
|
|
||||||
*cOneDot = 0; // null terminate the first number
|
|
||||||
m_flMin = atof(szToken); // parse the first number
|
|
||||||
*cOneDot = '.'; // change it back, just in case
|
|
||||||
c++;
|
|
||||||
m_flMax = atof(c); // parse the second number
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
else cOneDot = c;
|
|
||||||
}
|
|
||||||
else cOneDot = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
// no range, just record the number
|
|
||||||
m_flMax = m_flMin = atof(szToken);
|
|
||||||
}
|
|
||||||
|
|
||||||
// FIXME: float Random() { return RANDOM_FLOAT(m_flMin, m_flMax); }
|
|
||||||
float Random() { return m_flMin - m_flMax; }
|
|
||||||
|
|
||||||
// array access...
|
|
||||||
float operator[](int i) const { return ((float*)this)[i];}
|
|
||||||
float& operator[](int i) { return ((float*)this)[i];}
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif
|
|
|
@ -71,7 +71,7 @@ void V_CalcShake( void )
|
||||||
|
|
||||||
void V_ApplyShake( Vector& origin, Vector& angles, float factor )
|
void V_ApplyShake( Vector& origin, Vector& angles, float factor )
|
||||||
{
|
{
|
||||||
origin.MA( origin, factor, gHUD.m_Shake.appliedOffset );
|
origin.MA( factor, origin, gHUD.m_Shake.appliedOffset );
|
||||||
angles.z += gHUD.m_Shake.appliedAngle * factor;
|
angles.z += gHUD.m_Shake.appliedAngle * factor;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -19,6 +19,7 @@ typedef int shader_t;
|
||||||
typedef struct edict_s edict_t;
|
typedef struct edict_s edict_t;
|
||||||
typedef struct cl_priv_s cl_priv_t;
|
typedef struct cl_priv_s cl_priv_t;
|
||||||
typedef struct sv_priv_s sv_priv_t;
|
typedef struct sv_priv_s sv_priv_t;
|
||||||
|
typedef float vec_t;
|
||||||
|
|
||||||
#define DLLEXPORT __declspec( dllexport )
|
#define DLLEXPORT __declspec( dllexport )
|
||||||
|
|
||||||
|
|
|
@ -12,13 +12,6 @@
|
||||||
|
|
||||||
#pragma warning(disable : 4244) // int or float down-conversion
|
#pragma warning(disable : 4244) // int or float down-conversion
|
||||||
|
|
||||||
#ifdef CLIENT_DLL
|
|
||||||
// Header file containing definition of globalvars_t and entvars_t
|
|
||||||
typedef int func_t; //
|
|
||||||
typedef int string_t; // from engine's pr_comp.h;
|
|
||||||
typedef float vec_t; // needed before including progdefs.h
|
|
||||||
#endif
|
|
||||||
|
|
||||||
//=========================================================
|
//=========================================================
|
||||||
// 2DVector - used for many pathfinding and many other
|
// 2DVector - used for many pathfinding and many other
|
||||||
// operations that are treated as planar rather than 3d.
|
// operations that are treated as planar rather than 3d.
|
||||||
|
@ -32,12 +25,7 @@ public:
|
||||||
inline Vector2D operator-(const Vector2D& v) const { return Vector2D(x-v.x, y-v.y); }
|
inline Vector2D operator-(const Vector2D& v) const { return Vector2D(x-v.x, y-v.y); }
|
||||||
inline Vector2D operator*(float fl) const { return Vector2D(x*fl, y*fl); }
|
inline Vector2D operator*(float fl) const { return Vector2D(x*fl, y*fl); }
|
||||||
inline Vector2D operator/(float fl) const { return Vector2D(x/fl, y/fl); }
|
inline Vector2D operator/(float fl) const { return Vector2D(x/fl, y/fl); }
|
||||||
|
|
||||||
#ifdef CLIENT_DLL
|
|
||||||
inline float Length(void) const { return (float)sqrt(x*x + y*y ); }
|
|
||||||
#else
|
|
||||||
inline float Length(void) const { return sqrt(x*x + y*y ); }
|
inline float Length(void) const { return sqrt(x*x + y*y ); }
|
||||||
#endif
|
|
||||||
inline Vector2D Normalize ( void ) const
|
inline Vector2D Normalize ( void ) const
|
||||||
{
|
{
|
||||||
Vector2D vec2;
|
Vector2D vec2;
|
||||||
|
@ -45,11 +33,7 @@ public:
|
||||||
float flLen = Length();
|
float flLen = Length();
|
||||||
if ( flLen == 0 )
|
if ( flLen == 0 )
|
||||||
{
|
{
|
||||||
#ifdef CLIENT_DLL
|
|
||||||
return Vector2D( (float)0, (float)0 );
|
|
||||||
#else
|
|
||||||
return Vector2D( 0, 0 );
|
return Vector2D( 0, 0 );
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -123,7 +107,6 @@ public:
|
||||||
x *= oofl; y *= oofl; z *= oofl;
|
x *= oofl; y *= oofl; z *= oofl;
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
#ifndef CLIENT_DLL
|
|
||||||
_forceinline Vector& fixangle(void)
|
_forceinline Vector& fixangle(void)
|
||||||
{
|
{
|
||||||
if(!IS_NAN(x))
|
if(!IS_NAN(x))
|
||||||
|
@ -143,19 +126,14 @@ public:
|
||||||
}
|
}
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
_forceinline Vector MA( float scale, const Vector &start, const Vector &direction ) const
|
_forceinline Vector MA( float scale, const Vector &start, const Vector &direction ) const
|
||||||
{
|
{
|
||||||
return Vector(start.x + scale * direction.x, start.y + scale * direction.y, start.z + scale * direction.z) ;
|
return Vector(start.x + scale * direction.x, start.y + scale * direction.y, start.z + scale * direction.z) ;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Methods
|
// methods
|
||||||
inline void CopyToArray(float* rgfl) const { rgfl[0] = x, rgfl[1] = y, rgfl[2] = z; }
|
inline void CopyToArray(float* rgfl) const { rgfl[0] = x, rgfl[1] = y, rgfl[2] = z; }
|
||||||
#ifdef CLIENT_DLL
|
|
||||||
inline float Length(void) const { return (float)sqrt(x*x + y*y + z*z); }
|
inline float Length(void) const { return (float)sqrt(x*x + y*y + z*z); }
|
||||||
#else
|
|
||||||
inline float Length(void) const { return sqrt(x*x + y*y + z*z); }
|
|
||||||
#endif
|
|
||||||
operator float *() { return &x; } // Vectors will now automatically convert to float * when needed
|
operator float *() { return &x; } // Vectors will now automatically convert to float * when needed
|
||||||
operator const float *() const { return &x; } // Vectors will now automatically convert to float * when needed
|
operator const float *() const { return &x; } // Vectors will now automatically convert to float * when needed
|
||||||
|
|
||||||
|
@ -185,14 +163,12 @@ public:
|
||||||
Vec2.y = y;
|
Vec2.y = y;
|
||||||
return Vec2;
|
return Vec2;
|
||||||
}
|
}
|
||||||
#ifdef CLIENT_DLL
|
|
||||||
inline float Length2D(void) const { return (float)sqrt(x*x + y*y); }
|
inline float Length2D(void) const { return (float)sqrt(x*x + y*y); }
|
||||||
#else
|
|
||||||
inline float Length2D(void) const { return sqrt(x*x + y*y); }
|
// members
|
||||||
#endif
|
|
||||||
// Members
|
|
||||||
vec_t x, y, z;
|
vec_t x, y, z;
|
||||||
};
|
};
|
||||||
|
|
||||||
inline Vector operator*(float fl, const Vector& v) { return v * fl; }
|
inline Vector operator*(float fl, const Vector& v) { return v * fl; }
|
||||||
inline float DotProduct(const Vector& a, const Vector& b) { return(a.x*b.x+a.y*b.y+a.z*b.z); }
|
inline float DotProduct(const Vector& a, const Vector& b) { return(a.x*b.x+a.y*b.y+a.z*b.z); }
|
||||||
inline Vector CrossProduct(const Vector& a, const Vector& b) { return Vector( a.y*b.z - a.z*b.y, a.z*b.x - a.x*b.z, a.x*b.y - a.y*b.x ); }
|
inline Vector CrossProduct(const Vector& a, const Vector& b) { return Vector( a.y*b.z - a.z*b.y, a.z*b.x - a.x*b.z, a.x*b.y - a.y*b.x ); }
|
|
@ -72,5 +72,5 @@ if exist xtools\xtools.plg del /f /q xtools\xtools.plg
|
||||||
echo Build succeeded!
|
echo Build succeeded!
|
||||||
echo Please wait. Xash is now loading
|
echo Please wait. Xash is now loading
|
||||||
cd D:\Xash3D\
|
cd D:\Xash3D\
|
||||||
quake.exe -game tmpQuArK -log -debug -dev 3 +map qctest
|
quake.exe -game tmpQuArK -log -debug -dev 3 +map dm_knot
|
||||||
:done
|
:done
|
|
@ -20,7 +20,6 @@ cvar_t *cl_testentities;
|
||||||
cvar_t *cl_testlights;
|
cvar_t *cl_testlights;
|
||||||
cvar_t *cl_levelshot_name;
|
cvar_t *cl_levelshot_name;
|
||||||
cvar_t *cl_envshot_size;
|
cvar_t *cl_envshot_size;
|
||||||
cvar_t *cl_neticon;
|
|
||||||
cvar_t *cl_font;
|
cvar_t *cl_font;
|
||||||
|
|
||||||
void SCR_TimeRefresh_f( void );
|
void SCR_TimeRefresh_f( void );
|
||||||
|
@ -392,8 +391,8 @@ void SCR_RegisterShaders( void )
|
||||||
// register console images
|
// register console images
|
||||||
cls.consoleFont = re->RegisterShader( va( "gfx/fonts/%s", con_font->string ), SHADER_FONT );
|
cls.consoleFont = re->RegisterShader( va( "gfx/fonts/%s", con_font->string ), SHADER_FONT );
|
||||||
cls.clientFont = re->RegisterShader( va( "gfx/fonts/%s", cl_font->string ), SHADER_FONT );
|
cls.clientFont = re->RegisterShader( va( "gfx/fonts/%s", cl_font->string ), SHADER_FONT );
|
||||||
cls.consoleBack = re->RegisterShader( "gfx/shell/conback", SHADER_NOMIP ); // FIXME: hardcoded ...
|
cls.consoleBack = re->RegisterShader( "#conback.dds", SHADER_NOMIP ); // internal resource
|
||||||
cls.netIcon = re->RegisterShader( cl_neticon->string, SHADER_NOMIP );
|
cls.netIcon = re->RegisterShader( "#net.png", SHADER_NOMIP ); // internal recource
|
||||||
|
|
||||||
// vid_state has changed
|
// vid_state has changed
|
||||||
if( cls.game ) cls.dllFuncs.pfnVidInit();
|
if( cls.game ) cls.dllFuncs.pfnVidInit();
|
||||||
|
@ -415,7 +414,6 @@ void SCR_Init( void )
|
||||||
cl_testentities = Cvar_Get ("cl_testentities", "0", 0, "test client entities" );
|
cl_testentities = Cvar_Get ("cl_testentities", "0", 0, "test client entities" );
|
||||||
cl_testlights = Cvar_Get ("cl_testlights", "0", 0, "test dynamic lights" );
|
cl_testlights = Cvar_Get ("cl_testlights", "0", 0, "test dynamic lights" );
|
||||||
cl_envshot_size = Cvar_Get( "cl_envshot_size", "256", CVAR_ARCHIVE, "envshot size of cube side" );
|
cl_envshot_size = Cvar_Get( "cl_envshot_size", "256", CVAR_ARCHIVE, "envshot size of cube side" );
|
||||||
cl_neticon = Cvar_Get( "cl_neticon", "gfx/shell/net", CVAR_ARCHIVE, "path to icon that displayed bad network connection" );
|
|
||||||
cl_font = Cvar_Get( "cl_font", "default", CVAR_ARCHIVE, "in-game messages font" );
|
cl_font = Cvar_Get( "cl_font", "default", CVAR_ARCHIVE, "in-game messages font" );
|
||||||
|
|
||||||
// register our commands
|
// register our commands
|
||||||
|
|
|
@ -306,7 +306,6 @@ extern cvar_t *cl_pitchspeed;
|
||||||
extern cvar_t *cl_envshot_size;
|
extern cvar_t *cl_envshot_size;
|
||||||
extern cvar_t *cl_run;
|
extern cvar_t *cl_run;
|
||||||
extern cvar_t *cl_font;
|
extern cvar_t *cl_font;
|
||||||
extern cvar_t *cl_neticon;
|
|
||||||
|
|
||||||
extern cvar_t *cl_anglespeedkey;
|
extern cvar_t *cl_anglespeedkey;
|
||||||
|
|
||||||
|
|
|
@ -1065,7 +1065,7 @@ CL_KeyEvent
|
||||||
Called by the system for both key up and key down events
|
Called by the system for both key up and key down events
|
||||||
===================
|
===================
|
||||||
*/
|
*/
|
||||||
void Key_Event(int key, bool down, uint time)
|
void Key_Event( int key, bool down, uint time )
|
||||||
{
|
{
|
||||||
char *kb;
|
char *kb;
|
||||||
char cmd[1024];
|
char cmd[1024];
|
||||||
|
@ -1073,22 +1073,22 @@ void Key_Event(int key, bool down, uint time)
|
||||||
// update auto-repeat status and BUTTON_ANY status
|
// update auto-repeat status and BUTTON_ANY status
|
||||||
keys[key].down = down;
|
keys[key].down = down;
|
||||||
|
|
||||||
if (down)
|
if( down )
|
||||||
{
|
{
|
||||||
keys[key].repeats++;
|
keys[key].repeats++;
|
||||||
if( keys[key].repeats == 1) anykeydown++;
|
if( keys[key].repeats == 1 ) anykeydown++;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
keys[key].repeats = 0;
|
keys[key].repeats = 0;
|
||||||
anykeydown--;
|
anykeydown--;
|
||||||
if (anykeydown < 0) anykeydown = 0;
|
if( anykeydown < 0 ) anykeydown = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
// console key is hardcoded, so the user can never unbind it
|
// console key is hardcoded, so the user can never unbind it
|
||||||
if (key == '`' || key == '~')
|
if( key == '`' || key == '~' )
|
||||||
{
|
{
|
||||||
if (!down) return;
|
if( !down ) return;
|
||||||
Con_ToggleConsole_f();
|
Con_ToggleConsole_f();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -1112,7 +1112,7 @@ void Key_Event(int key, bool down, uint time)
|
||||||
// passed to client dll's
|
// passed to client dll's
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
MsgDev( D_ERROR, "Key_Event: bad cls.key_dest\n");
|
MsgDev( D_ERROR, "Key_Event: bad cls.key_dest\n" );
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -262,9 +262,9 @@ void IN_Frame( void )
|
||||||
}
|
}
|
||||||
|
|
||||||
// uimenu.dat using mouse
|
// uimenu.dat using mouse
|
||||||
if((!cl.video_prepped && cls.key_dest != key_menu) || cls.key_dest == key_console )
|
if((!cl.video_prepped && cls.key_dest != key_menu) || cls.key_dest == key_console || cl_paused->integer )
|
||||||
{
|
{
|
||||||
if(!Cvar_VariableValue( "fullscreen"))
|
if( !Cvar_VariableValue( "fullscreen" ))
|
||||||
{
|
{
|
||||||
IN_DeactivateMouse();
|
IN_DeactivateMouse();
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -2910,6 +2910,9 @@ bool SV_ParseEdict( script_t *script, edict_t *ent )
|
||||||
|
|
||||||
ent = SV_AllocPrivateData( ent, MAKE_STRING( classname ));
|
ent = SV_AllocPrivateData( ent, MAKE_STRING( classname ));
|
||||||
|
|
||||||
|
if( ent->v.flags & FL_KILLME )
|
||||||
|
return false;
|
||||||
|
|
||||||
for( i = 0; i < numpairs; i++ )
|
for( i = 0; i < numpairs; i++ )
|
||||||
{
|
{
|
||||||
if( pkvd[i].fHandled ) continue;
|
if( pkvd[i].fHandled ) continue;
|
||||||
|
|
|
@ -1278,12 +1278,17 @@ int FS_CheckNastyPath (const char *path, bool isgamedir)
|
||||||
FS_Rescan
|
FS_Rescan
|
||||||
================
|
================
|
||||||
*/
|
*/
|
||||||
void FS_Rescan (void)
|
void FS_Rescan( void )
|
||||||
{
|
{
|
||||||
FS_ClearSearchPath();
|
FS_ClearSearchPath();
|
||||||
|
|
||||||
FS_AddGameHierarchy (GI.basedir);
|
FS_AddGameHierarchy( GI.basedir );
|
||||||
FS_AddGameHierarchy (GI.gamedir);
|
FS_AddGameHierarchy( GI.gamedir );
|
||||||
|
}
|
||||||
|
|
||||||
|
void FS_Rescan_f( void )
|
||||||
|
{
|
||||||
|
FS_Rescan();
|
||||||
}
|
}
|
||||||
|
|
||||||
void FS_ResetGameInfo( void )
|
void FS_ResetGameInfo( void )
|
||||||
|
@ -1412,6 +1417,7 @@ void FS_Init( void )
|
||||||
|
|
||||||
FS_AddGameDirectory( "bin/", FS_READONLY_PATH ); // execute system config
|
FS_AddGameDirectory( "bin/", FS_READONLY_PATH ); // execute system config
|
||||||
|
|
||||||
|
Cmd_AddCommand( "fs_rescan", FS_Rescan_f, "rescan filesystem search pathes" );
|
||||||
Cmd_AddCommand( "fs_path", FS_Path_f, "show filesystem search pathes" );
|
Cmd_AddCommand( "fs_path", FS_Path_f, "show filesystem search pathes" );
|
||||||
Cmd_AddCommand( "fs_clearpaths", FS_ClearPaths_f, "clear filesystem search pathes" );
|
Cmd_AddCommand( "fs_clearpaths", FS_ClearPaths_f, "clear filesystem search pathes" );
|
||||||
fs_wadsupport = Cvar_Get( "fs_wadsupport", "0", CVAR_SYSTEMINFO, "enable wad-archive support" );
|
fs_wadsupport = Cvar_Get( "fs_wadsupport", "0", CVAR_SYSTEMINFO, "enable wad-archive support" );
|
||||||
|
|
|
@ -539,7 +539,8 @@ void Sys_Print( const char *pMsg )
|
||||||
int i = 0;
|
int i = 0;
|
||||||
|
|
||||||
if( Sys.con_silentmode ) return;
|
if( Sys.con_silentmode ) return;
|
||||||
if( Sys.CPrint ) Sys.CPrint( pMsg );
|
if( Sys.CPrint && Sys.app_name == HOST_NORMAL )
|
||||||
|
Sys.CPrint( pMsg );
|
||||||
|
|
||||||
// if the message is REALLY long, use just the last portion of it
|
// if the message is REALLY long, use just the last portion of it
|
||||||
if ( com_strlen( pMsg ) > MAX_MSGLEN - 1 )
|
if ( com_strlen( pMsg ) > MAX_MSGLEN - 1 )
|
||||||
|
@ -582,6 +583,11 @@ void Sys_Print( const char *pMsg )
|
||||||
}
|
}
|
||||||
*b = *c = 0; // cutoff garbage
|
*b = *c = 0; // cutoff garbage
|
||||||
|
|
||||||
|
// because we needs to kill any psedo graph symbols
|
||||||
|
// and color strings for other instances
|
||||||
|
if( Sys.CPrint && Sys.app_name != HOST_NORMAL )
|
||||||
|
Sys.CPrint( logbuf );
|
||||||
|
|
||||||
Sys_PrintLog( logbuf );
|
Sys_PrintLog( logbuf );
|
||||||
|
|
||||||
// don't flood system console with memory allocation messages or another
|
// don't flood system console with memory allocation messages or another
|
||||||
|
|
|
@ -25,7 +25,6 @@
|
||||||
|
|
||||||
#include "basetypes.h"
|
#include "basetypes.h"
|
||||||
|
|
||||||
typedef float vec_t;
|
|
||||||
typedef vec_t vec2_t[2];
|
typedef vec_t vec2_t[2];
|
||||||
typedef vec_t vec3_t[3];
|
typedef vec_t vec3_t[3];
|
||||||
typedef vec_t vec4_t[4];
|
typedef vec_t vec4_t[4];
|
||||||
|
|
|
@ -70,6 +70,7 @@ static dllfunc_t opengl_110funcs[] =
|
||||||
{"glPointSize", (void**) &pglPointSize},
|
{"glPointSize", (void**) &pglPointSize},
|
||||||
{"glMatrixMode", (void **) &pglMatrixMode},
|
{"glMatrixMode", (void **) &pglMatrixMode},
|
||||||
{"glOrtho", (void **) &pglOrtho},
|
{"glOrtho", (void **) &pglOrtho},
|
||||||
|
{"glRasterPos2f", (void **) &pglRasterPos2f},
|
||||||
{"glFrustum", (void **) &pglFrustum},
|
{"glFrustum", (void **) &pglFrustum},
|
||||||
{"glViewport", (void **) &pglViewport},
|
{"glViewport", (void **) &pglViewport},
|
||||||
{"glPushMatrix", (void **) &pglPushMatrix},
|
{"glPushMatrix", (void **) &pglPushMatrix},
|
||||||
|
@ -86,6 +87,7 @@ static dllfunc_t opengl_110funcs[] =
|
||||||
{"glTranslated", (void **) &pglTranslated},
|
{"glTranslated", (void **) &pglTranslated},
|
||||||
{"glTranslatef", (void **) &pglTranslatef},
|
{"glTranslatef", (void **) &pglTranslatef},
|
||||||
{"glReadPixels", (void **) &pglReadPixels},
|
{"glReadPixels", (void **) &pglReadPixels},
|
||||||
|
{"glDrawPixels", (void **) &pglDrawPixels},
|
||||||
{"glStencilFunc", (void **) &pglStencilFunc},
|
{"glStencilFunc", (void **) &pglStencilFunc},
|
||||||
{"glStencilMask", (void **) &pglStencilMask},
|
{"glStencilMask", (void **) &pglStencilMask},
|
||||||
{"glStencilOp", (void **) &pglStencilOp},
|
{"glStencilOp", (void **) &pglStencilOp},
|
||||||
|
@ -569,7 +571,7 @@ void GL_InitExtensions( void )
|
||||||
|
|
||||||
// initialize gl extensions
|
// initialize gl extensions
|
||||||
GL_CheckExtension( "OpenGL 1.1.0", opengl_110funcs, NULL, R_OPENGL_110 );
|
GL_CheckExtension( "OpenGL 1.1.0", opengl_110funcs, NULL, R_OPENGL_110 );
|
||||||
if( !r_framebuffer ) r_framebuffer = Mem_Alloc( r_temppool, r_width->integer * r_height->integer * 3 );
|
if( !r_framebuffer ) r_framebuffer = Mem_Alloc( r_temppool, r_width->integer * r_height->integer * 4 );
|
||||||
|
|
||||||
// get our various GL strings
|
// get our various GL strings
|
||||||
gl_config.vendor_string = pglGetString( GL_VENDOR );
|
gl_config.vendor_string = pglGetString( GL_VENDOR );
|
||||||
|
|
|
@ -1585,6 +1585,10 @@ void RB_DebugGraphics( void )
|
||||||
{
|
{
|
||||||
RB_ShowTextures();
|
RB_ShowTextures();
|
||||||
}
|
}
|
||||||
|
if( r_pause_bw->integer )
|
||||||
|
{
|
||||||
|
RB_DrawPauseScreen();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -3,8 +3,8 @@
|
||||||
// r_bloom.c - lighting post process effect
|
// r_bloom.c - lighting post process effect
|
||||||
//=======================================================================
|
//=======================================================================
|
||||||
|
|
||||||
#include <assert.h>
|
|
||||||
#include "r_local.h"
|
#include "r_local.h"
|
||||||
|
#include "mathlib.h"
|
||||||
|
|
||||||
static float Diamond8x[8][8] =
|
static float Diamond8x[8][8] =
|
||||||
{
|
{
|
||||||
|
@ -170,12 +170,12 @@ void R_Bloom_InitTextures( void )
|
||||||
int size;
|
int size;
|
||||||
rgbdata_t r_bloomscr, r_downsample;
|
rgbdata_t r_bloomscr, r_downsample;
|
||||||
|
|
||||||
Mem_Set(&r_bloomscr, 0, sizeof(rgbdata_t));
|
Mem_Set( &r_bloomscr, 0, sizeof( rgbdata_t ));
|
||||||
Mem_Set(&r_downsample, 0, sizeof(rgbdata_t));
|
Mem_Set( &r_downsample, 0, sizeof( rgbdata_t ));
|
||||||
|
|
||||||
// find closer power of 2 to screen size
|
// find closer power of 2 to screen size
|
||||||
for( screen_texture_width = 1; screen_texture_width < r_width->integer; screen_texture_width *= 2 );
|
screen_texture_width = NearestPOW( r_width->integer, true );
|
||||||
for( screen_texture_height = 1; screen_texture_height < r_height->integer; screen_texture_height *= 2 );
|
screen_texture_height = NearestPOW( r_height->integer, true );
|
||||||
|
|
||||||
// init the screen texture
|
// init the screen texture
|
||||||
size = screen_texture_width * screen_texture_height * 4;
|
size = screen_texture_width * screen_texture_height * 4;
|
||||||
|
@ -191,10 +191,10 @@ void R_Bloom_InitTextures( void )
|
||||||
r_bloomscr.size = screen_texture_width * screen_texture_height * 4;
|
r_bloomscr.size = screen_texture_width * screen_texture_height * 4;
|
||||||
r_bloomscreentexture = R_LoadTexture( "*r_bloomscreentexture", &r_bloomscr, 3, TF_STATIC|TF_NOPICMIP, TF_LINEAR, TW_CLAMP );
|
r_bloomscreentexture = R_LoadTexture( "*r_bloomscreentexture", &r_bloomscr, 3, TF_STATIC|TF_NOPICMIP, TF_LINEAR, TW_CLAMP );
|
||||||
|
|
||||||
//validate bloom size and init the bloom effect texture
|
// validate bloom size and init the bloom effect texture
|
||||||
R_Bloom_InitEffectTexture ();
|
R_Bloom_InitEffectTexture ();
|
||||||
|
|
||||||
//if screensize is more than 2x the bloom effect texture, set up for stepped downsampling
|
// if screensize is more than 2x the bloom effect texture, set up for stepped downsampling
|
||||||
r_bloomdownsamplingtexture = NULL;
|
r_bloomdownsamplingtexture = NULL;
|
||||||
r_screendownsamplingtexture_size = 0;
|
r_screendownsamplingtexture_size = 0;
|
||||||
if( r_width->integer > (BLOOM_SIZE * 2) && !r_bloom_fast_sample->value )
|
if( r_width->integer > (BLOOM_SIZE * 2) && !r_bloom_fast_sample->value )
|
||||||
|
@ -271,7 +271,7 @@ void R_Bloom_GeneratexDiamonds( void )
|
||||||
pglColor4f( 1.0f, 1.0f, 1.0f, 1.0f );
|
pglColor4f( 1.0f, 1.0f, 1.0f, 1.0f );
|
||||||
GL_Enable( GL_BLEND );
|
GL_Enable( GL_BLEND );
|
||||||
|
|
||||||
//darkening passes
|
// darkening passes
|
||||||
if( r_bloom_darken->value )
|
if( r_bloom_darken->value )
|
||||||
{
|
{
|
||||||
GL_BlendFunc( GL_DST_COLOR, GL_ZERO );
|
GL_BlendFunc( GL_DST_COLOR, GL_ZERO );
|
||||||
|
@ -285,12 +285,11 @@ void R_Bloom_GeneratexDiamonds( void )
|
||||||
}
|
}
|
||||||
|
|
||||||
// bluring passes
|
// bluring passes
|
||||||
// GL_BlendFunc(GL_ONE, GL_ONE);
|
GL_BlendFunc( GL_ONE, GL_ONE );
|
||||||
GL_BlendFunc(GL_ONE, GL_ONE_MINUS_SRC_COLOR);
|
|
||||||
|
|
||||||
if( r_bloom_diamond_size->value > 7 || r_bloom_diamond_size->value <= 3)
|
if( r_bloom_diamond_size->value > 7 || r_bloom_diamond_size->value <= 3)
|
||||||
{
|
{
|
||||||
if( (int)r_bloom_diamond_size->value != 8 ) Cvar_SetValue( "r_bloom_diamond_size", 8 );
|
if( r_bloom_diamond_size->integer != 8 ) Cvar_SetValue( "r_bloom_diamond_size", 8 );
|
||||||
|
|
||||||
for( i = 0; i < r_bloom_diamond_size->value; i++ )
|
for( i = 0; i < r_bloom_diamond_size->value; i++ )
|
||||||
{
|
{
|
||||||
|
@ -305,7 +304,6 @@ void R_Bloom_GeneratexDiamonds( void )
|
||||||
}
|
}
|
||||||
else if( r_bloom_diamond_size->value > 5 )
|
else if( r_bloom_diamond_size->value > 5 )
|
||||||
{
|
{
|
||||||
|
|
||||||
if( r_bloom_diamond_size->value != 6 ) Cvar_SetValue( "r_bloom_diamond_size", 6 );
|
if( r_bloom_diamond_size->value != 6 ) Cvar_SetValue( "r_bloom_diamond_size", 6 );
|
||||||
|
|
||||||
for( i = 0; i < r_bloom_diamond_size->value; i++ )
|
for( i = 0; i < r_bloom_diamond_size->value; i++ )
|
||||||
|
@ -356,7 +354,7 @@ void R_Bloom_DownsampleView( void )
|
||||||
pglDisable( GL_BLEND );
|
pglDisable( GL_BLEND );
|
||||||
pglColor4f( 1.0f, 1.0f, 1.0f, 1.0f );
|
pglColor4f( 1.0f, 1.0f, 1.0f, 1.0f );
|
||||||
|
|
||||||
//stepped downsample
|
// stepped downsample
|
||||||
if( r_screendownsamplingtexture_size )
|
if( r_screendownsamplingtexture_size )
|
||||||
{
|
{
|
||||||
int midsample_width = r_screendownsamplingtexture_size * sampleText_tcw;
|
int midsample_width = r_screendownsamplingtexture_size * sampleText_tcw;
|
||||||
|
@ -367,17 +365,17 @@ void R_Bloom_DownsampleView( void )
|
||||||
pglCopyTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, curView_x, r_height->integer - (curView_y + curView_height), curView_width, curView_height);
|
pglCopyTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, curView_x, r_height->integer - (curView_y + curView_height), curView_width, curView_height);
|
||||||
R_Bloom_Quad( 0, r_height->integer-midsample_height, midsample_width, midsample_height, screenText_tcw, screenText_tch );
|
R_Bloom_Quad( 0, r_height->integer-midsample_height, midsample_width, midsample_height, screenText_tcw, screenText_tch );
|
||||||
|
|
||||||
//now copy into Downsampling (mid-sized) texture
|
// now copy into Downsampling (mid-sized) texture
|
||||||
GL_BindTexture( r_bloomdownsamplingtexture );
|
GL_BindTexture( r_bloomdownsamplingtexture );
|
||||||
pglCopyTexSubImage2D( GL_TEXTURE_2D, 0, 0, 0, 0, 0, midsample_width, midsample_height );
|
pglCopyTexSubImage2D( GL_TEXTURE_2D, 0, 0, 0, 0, 0, midsample_width, midsample_height );
|
||||||
|
|
||||||
//now draw again in bloom size
|
// now draw again in bloom size
|
||||||
pglColor4f( 0.5f, 0.5f, 0.5f, 1.0f );
|
pglColor4f( 0.5f, 0.5f, 0.5f, 1.0f );
|
||||||
R_Bloom_Quad( 0, r_height->integer-sample_height, sample_width, sample_height, sampleText_tcw, sampleText_tch );
|
R_Bloom_Quad( 0, r_height->integer-sample_height, sample_width, sample_height, sampleText_tcw, sampleText_tch );
|
||||||
|
|
||||||
//now blend the big screen texture into the bloom generation space (hoping it adds some blur)
|
// now blend the big screen texture into the bloom generation space (hoping it adds some blur)
|
||||||
GL_Enable( GL_BLEND );
|
GL_Enable( GL_BLEND );
|
||||||
GL_BlendFunc(GL_ONE, GL_ONE);
|
GL_BlendFunc( GL_ONE, GL_ONE );
|
||||||
pglColor4f( 0.5f, 0.5f, 0.5f, 1.0f );
|
pglColor4f( 0.5f, 0.5f, 0.5f, 1.0f );
|
||||||
GL_BindTexture( r_bloomscreentexture );
|
GL_BindTexture( r_bloomscreentexture );
|
||||||
R_Bloom_Quad( 0, r_height->integer-sample_height, sample_width, sample_height, screenText_tcw, screenText_tch );
|
R_Bloom_Quad( 0, r_height->integer-sample_height, sample_width, sample_height, screenText_tcw, screenText_tch );
|
||||||
|
|
|
@ -2200,7 +2200,7 @@ void GL_GenerateMipmaps( byte *buffer, texture_t *tex, int side, bool border )
|
||||||
{
|
{
|
||||||
pglHint( GL_GENERATE_MIPMAP_HINT_SGIS, GL_NICEST );
|
pglHint( GL_GENERATE_MIPMAP_HINT_SGIS, GL_NICEST );
|
||||||
pglTexParameteri( image_desc.glTarget, GL_GENERATE_MIPMAP_SGIS, GL_TRUE );
|
pglTexParameteri( image_desc.glTarget, GL_GENERATE_MIPMAP_SGIS, GL_TRUE );
|
||||||
if(pglGetError()) MsgDev(D_WARN, "GL_GenerateMipmaps: can't create mip levels\n");
|
if( pglGetError()) MsgDev( D_WARN, "GL_GenerateMipmaps: %s can't create mip levels\n", tex->name );
|
||||||
else return; // falltrough to software mipmap generating
|
else return; // falltrough to software mipmap generating
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2824,6 +2824,8 @@ static void R_CreateBuiltInTextures( void )
|
||||||
|
|
||||||
buffer = FS_LoadInternal( "default.dds", &bufsize );
|
buffer = FS_LoadInternal( "default.dds", &bufsize );
|
||||||
r_defaultConchars = R_FindTexture( "#default.dds", buffer, bufsize, TF_NOPICMIP|TF_STATIC, TF_LINEAR, 0 );
|
r_defaultConchars = R_FindTexture( "#default.dds", buffer, bufsize, TF_NOPICMIP|TF_STATIC, TF_LINEAR, 0 );
|
||||||
|
|
||||||
|
R_Bloom_InitTextures();
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -702,7 +702,7 @@ void RB_CheckMeshOverflow( int numIndices, int numVertices );
|
||||||
void RB_RenderMesh( void );
|
void RB_RenderMesh( void );
|
||||||
void RB_RenderMeshes( mesh_t *meshes, int numMeshes );
|
void RB_RenderMeshes( mesh_t *meshes, int numMeshes );
|
||||||
void RB_DrawStretchPic( float x, float y, float w, float h, float sl, float tl, float sh, float th, ref_shader_t *shader );
|
void RB_DrawStretchPic( float x, float y, float w, float h, float sl, float tl, float sh, float th, ref_shader_t *shader );
|
||||||
|
void RB_DrawPauseScreen( void );
|
||||||
void RB_InitBackend( void );
|
void RB_InitBackend( void );
|
||||||
void RB_ShutdownBackend( void );
|
void RB_ShutdownBackend( void );
|
||||||
|
|
||||||
|
@ -809,7 +809,7 @@ void R_AddSkyToList( void );
|
||||||
void R_DrawSurface( void );
|
void R_DrawSurface( void );
|
||||||
void R_AddBrushModelToList( ref_entity_t *entity );
|
void R_AddBrushModelToList( ref_entity_t *entity );
|
||||||
void R_AddWorldToList( void );
|
void R_AddWorldToList( void );
|
||||||
|
void R_Bloom_InitTextures( void );
|
||||||
void RotatePointAroundVector( vec3_t dst, const vec3_t dir, const vec3_t point, float degrees );
|
void RotatePointAroundVector( vec3_t dst, const vec3_t dir, const vec3_t point, float degrees );
|
||||||
void PerpendicularVector( vec3_t dst, const vec3_t src );
|
void PerpendicularVector( vec3_t dst, const vec3_t src );
|
||||||
|
|
||||||
|
|
|
@ -911,14 +911,12 @@ void R_RenderView( const ref_params_t *fd )
|
||||||
R_BloomBlend( fd );
|
R_BloomBlend( fd );
|
||||||
}
|
}
|
||||||
|
|
||||||
void R_DrawPauseScreen( void )
|
// FIXME: copy screen into texRecatngle then draw as normal quad
|
||||||
|
void RB_DrawPauseScreen( void )
|
||||||
{
|
{
|
||||||
// don't apply post effects for custom window
|
// don't apply post effects for custom window
|
||||||
if( r_refdef.onlyClientDraw ) return;
|
if( r_refdef.onlyClientDraw ) return;
|
||||||
|
|
||||||
if( !r_pause_bw->integer )
|
|
||||||
return;
|
|
||||||
|
|
||||||
if( r_pause->modified )
|
if( r_pause->modified )
|
||||||
{
|
{
|
||||||
// reset saturation value
|
// reset saturation value
|
||||||
|
@ -935,7 +933,7 @@ void R_DrawPauseScreen( void )
|
||||||
int i, s, r, g, b;
|
int i, s, r, g, b;
|
||||||
|
|
||||||
pglFlush();
|
pglFlush();
|
||||||
pglReadPixels(0, 0, r_width->integer, r_height->integer, GL_RGB, GL_UNSIGNED_BYTE, r_framebuffer);
|
pglReadPixels( 0, 0, r_width->integer, r_height->integer, GL_RGB, GL_UNSIGNED_BYTE, r_framebuffer );
|
||||||
for (i = 0; i < r_width->integer * r_height->integer * 3; i+=3)
|
for (i = 0; i < r_width->integer * r_height->integer * 3; i+=3)
|
||||||
{
|
{
|
||||||
r = r_framebuffer[i+0];
|
r = r_framebuffer[i+0];
|
||||||
|
@ -948,18 +946,19 @@ void R_DrawPauseScreen( void )
|
||||||
}
|
}
|
||||||
r_lefthand->modified = false;
|
r_lefthand->modified = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// set custom orthogonal mode
|
// set custom orthogonal mode
|
||||||
pglMatrixMode(GL_PROJECTION);
|
pglMatrixMode( GL_PROJECTION );
|
||||||
pglLoadIdentity ();
|
pglLoadIdentity ();
|
||||||
pglOrtho(0, r_width->integer, 0, r_height->integer, 0, 1.0f);
|
pglOrtho( 0, r_width->integer, 0, r_height->integer, 0, 1.0f );
|
||||||
pglMatrixMode(GL_MODELVIEW);
|
pglMatrixMode( GL_MODELVIEW );
|
||||||
pglLoadIdentity ();
|
pglLoadIdentity ();
|
||||||
|
|
||||||
pglDisable(GL_TEXTURE_2D);
|
pglDisable( GL_TEXTURE_2D );
|
||||||
pglRasterPos2f(0, 0);
|
pglRasterPos2f( 0, 0 );
|
||||||
pglDrawPixels(r_width->integer, r_height->integer, GL_RGB, GL_UNSIGNED_BYTE, r_framebuffer);
|
pglDrawPixels( r_width->integer, r_height->integer, GL_RGB, GL_UNSIGNED_BYTE, r_framebuffer );
|
||||||
pglFlush();
|
pglFlush();
|
||||||
pglEnable(GL_TEXTURE_2D);
|
pglEnable( GL_TEXTURE_2D );
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -1170,6 +1169,7 @@ static bool R_AddEntityToScene( edict_t *pRefEntity, int ed_type, float lerpfrac
|
||||||
|
|
||||||
if( refent->ent_type == ED_CLIENT )
|
if( refent->ent_type == ED_CLIENT )
|
||||||
refent->gaitsequence = pRefEntity->v.gaitsequence;
|
refent->gaitsequence = pRefEntity->v.gaitsequence;
|
||||||
|
else refent->gaitsequence = 0;
|
||||||
|
|
||||||
// because entity without models never added to scene
|
// because entity without models never added to scene
|
||||||
if( !refent->ent_type )
|
if( !refent->ent_type )
|
||||||
|
@ -1362,7 +1362,7 @@ void R_EndFrame( void )
|
||||||
// Swap the buffers
|
// Swap the buffers
|
||||||
if( !r_frontbuffer->integer )
|
if( !r_frontbuffer->integer )
|
||||||
{
|
{
|
||||||
if( !pwglSwapBuffers( glw_state.hDC ) )
|
if( !pwglSwapBuffers( glw_state.hDC ))
|
||||||
Sys_Break("R_EndFrame() - SwapBuffers() failed!\n" );
|
Sys_Break("R_EndFrame() - SwapBuffers() failed!\n" );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -4088,11 +4088,23 @@ static ref_shader_t *R_CreateDefaultShader( const char *name, int shaderType, ui
|
||||||
break;
|
break;
|
||||||
case SHADER_NOMIP:
|
case SHADER_NOMIP:
|
||||||
shader->stages[0]->bundles[0]->flags |= STAGEBUNDLE_MAP;
|
shader->stages[0]->bundles[0]->flags |= STAGEBUNDLE_MAP;
|
||||||
shader->stages[0]->bundles[0]->textures[0] = R_FindTexture( shader->name, buffer, bufsize, TF_NOPICMIP, TF_LINEAR, 0 );
|
if( shader->name[0] == '#' )
|
||||||
|
{
|
||||||
|
// search for internal resource
|
||||||
|
size_t bufsize = 0;
|
||||||
|
byte *buffer = FS_LoadInternal( shader->name + 1, &bufsize );
|
||||||
|
shader->stages[0]->bundles[0]->textures[0] = R_FindTexture( shader->name, buffer, bufsize, TF_NOPICMIP|TF_STATIC, TF_LINEAR, 0 );
|
||||||
|
}
|
||||||
|
else shader->stages[0]->bundles[0]->textures[0] = R_FindTexture( shader->name, buffer, bufsize, TF_NOPICMIP, TF_LINEAR, 0 );
|
||||||
|
|
||||||
if( !shader->stages[0]->bundles[0]->textures[0] )
|
if( !shader->stages[0]->bundles[0]->textures[0] )
|
||||||
{
|
{
|
||||||
MsgDev( D_WARN, "couldn't find texture for shader '%s', using default...\n", shader->name );
|
|
||||||
shader->stages[0]->bundles[0]->textures[0] = r_defaultTexture;
|
if( !shader->stages[0]->bundles[0]->textures[0] )
|
||||||
|
{
|
||||||
|
MsgDev( D_WARN, "couldn't find texture for shader '%s', using default...\n", shader->name );
|
||||||
|
shader->stages[0]->bundles[0]->textures[0] = r_defaultTexture;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
shader->stages[0]->rgbGen.type = RGBGEN_VERTEX;
|
shader->stages[0]->rgbGen.type = RGBGEN_VERTEX;
|
||||||
shader->stages[0]->bundles[0]->numTextures++;
|
shader->stages[0]->bundles[0]->numTextures++;
|
||||||
|
|
|
@ -1122,12 +1122,15 @@ float R_StudioMergeBones ( rmodel_t *m_pSubModel )
|
||||||
static vec4_t q[MAXSTUDIOBONES];
|
static vec4_t q[MAXSTUDIOBONES];
|
||||||
static float pos[MAXSTUDIOBONES][3];
|
static float pos[MAXSTUDIOBONES][3];
|
||||||
|
|
||||||
if( m_pCurrentEntity->sequence >= m_pStudioHeader->numseq ) m_pCurrentEntity->sequence = 0;
|
if( m_pCurrentEntity->sequence >= m_pStudioHeader->numseq ) m_pCurrentEntity->sequence = 0;
|
||||||
pseqdesc = (dstudioseqdesc_t *)((byte *)m_pStudioHeader + m_pStudioHeader->seqindex) + m_pCurrentEntity->sequence;
|
pseqdesc = (dstudioseqdesc_t *)((byte *)m_pStudioHeader + m_pStudioHeader->seqindex) + m_pCurrentEntity->sequence;
|
||||||
|
|
||||||
f = R_StudioEstimateFrame( pseqdesc );
|
f = R_StudioEstimateFrame( pseqdesc );
|
||||||
|
|
||||||
//if (m_pCurrentEntity->prev.frame > f) Msg("%f %f\n", m_pCurrentEntity->prev.frame, f );
|
if( m_pCurrentEntity->prev.frame > f )
|
||||||
|
{
|
||||||
|
// Msg("%f %f\n", m_pCurrentEntity->prev.frame, f );
|
||||||
|
}
|
||||||
|
|
||||||
panim = R_StudioGetAnim( m_pSubModel, pseqdesc );
|
panim = R_StudioGetAnim( m_pSubModel, pseqdesc );
|
||||||
R_StudioCalcRotations( pos, q, pseqdesc, panim, f );
|
R_StudioCalcRotations( pos, q, pseqdesc, panim, f );
|
||||||
|
|
|
@ -345,7 +345,7 @@ void CBaseBrush::Precache( void )
|
||||||
break;
|
break;
|
||||||
case None:
|
case None:
|
||||||
default:
|
default:
|
||||||
if(pev->health > 0)//mapmaker forget set material ?
|
if( pev->health > 0 ) // mapmaker forget set material ?
|
||||||
{
|
{
|
||||||
DevMsg("\n======/Xash SmartFiled System/======\n\n");
|
DevMsg("\n======/Xash SmartFiled System/======\n\n");
|
||||||
DevMsg("Please set material for %s,\n", STRING(pev->classname));
|
DevMsg("Please set material for %s,\n", STRING(pev->classname));
|
||||||
|
@ -355,9 +355,10 @@ void CBaseBrush::Precache( void )
|
||||||
}
|
}
|
||||||
|
|
||||||
MaterialSoundPrecache( m_Material );
|
MaterialSoundPrecache( m_Material );
|
||||||
if(IsBreakable())
|
if(IsBreakable( ))
|
||||||
{
|
{
|
||||||
m_idShard = UTIL_PrecacheModel( m_iGibModel, (char*)pGibName ); // precache model
|
if( !FStringNull( m_iGibModel ) || !FStringNull( pGibName ))
|
||||||
|
m_idShard = UTIL_PrecacheModel( m_iGibModel, pGibName ); // precache model
|
||||||
if( m_iSpawnObject ) UTIL_PrecacheEntity( m_iSpawnObject );
|
if( m_iSpawnObject ) UTIL_PrecacheEntity( m_iSpawnObject );
|
||||||
}
|
}
|
||||||
UTIL_PrecacheModel( pev->model ); // can use *.mdl for any brush
|
UTIL_PrecacheModel( pev->model ); // can use *.mdl for any brush
|
||||||
|
@ -502,11 +503,11 @@ void CBaseBrush::Die( void )
|
||||||
int pitch, soundbits = NULL;
|
int pitch, soundbits = NULL;
|
||||||
float fvol;
|
float fvol;
|
||||||
|
|
||||||
pitch = 95 + RANDOM_LONG(0, 29);
|
pitch = 95 + RANDOM_LONG( 0, 29 );
|
||||||
if(pitch > 97 && pitch < 103)pitch = 100;
|
if( pitch > 97 && pitch < 103 ) pitch = PITCH_NORM;
|
||||||
|
|
||||||
fvol = RANDOM_FLOAT(0.85, 1.0) + (abs(pev->health) / 100.0);
|
fvol = RANDOM_FLOAT(0.85, 1.0) + (abs( pev->health ) / 100.0);
|
||||||
if(fvol > 1.0)fvol = 1.0;
|
if( fvol > 1.0 ) fvol = 1.0;
|
||||||
|
|
||||||
switch (m_Material)
|
switch (m_Material)
|
||||||
{
|
{
|
||||||
|
|
|
@ -226,21 +226,21 @@ void CBaseEntity :: SetParent( CBaseEntity* pParent, int m_iAttachment )
|
||||||
//=======================================================================
|
//=======================================================================
|
||||||
void CBaseEntity :: ResetParent( void )
|
void CBaseEntity :: ResetParent( void )
|
||||||
{
|
{
|
||||||
if(pFlags & PF_MOVENONE)//this entity was static e.g. func_wall
|
if( pFlags & PF_MOVENONE ) // this entity was static e.g. func_wall
|
||||||
{
|
{
|
||||||
ClearBits (pFlags, PF_MOVENONE);
|
ClearBits( pFlags, PF_MOVENONE );
|
||||||
pev->movetype = MOVETYPE_NONE;
|
pev->movetype = MOVETYPE_NONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( !g_pWorld )return; //???
|
if( !g_pWorld ) return; //???
|
||||||
|
|
||||||
CBaseEntity* pTemp;
|
CBaseEntity* pTemp;
|
||||||
|
|
||||||
for (pTemp = g_pWorld; pTemp->m_pLinkList != NULL; pTemp = pTemp->m_pLinkList)
|
for( pTemp = g_pWorld; pTemp->m_pLinkList != NULL; pTemp = pTemp->m_pLinkList )
|
||||||
{
|
{
|
||||||
if (this == pTemp->m_pLinkList)
|
if( this == pTemp->m_pLinkList )
|
||||||
{
|
{
|
||||||
pTemp->m_pLinkList = this->m_pLinkList;//save pointer
|
pTemp->m_pLinkList = this->m_pLinkList; // save pointer
|
||||||
this->m_pLinkList = NULL;
|
this->m_pLinkList = NULL;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -680,38 +680,8 @@ CBaseEntity * CBaseEntity::Create( char *szName, const Vector &vecOrigin, const
|
||||||
int istr = ALLOC_STRING(szName);
|
int istr = ALLOC_STRING(szName);
|
||||||
CBaseEntity *pEntity;
|
CBaseEntity *pEntity;
|
||||||
|
|
||||||
// check for virtual entities
|
pent = CREATE_NAMED_ENTITY( istr );
|
||||||
if( FUNCTION_FROM_NAME( szName ) != 0 )
|
if( FNullEnt( pent )) return NULL;
|
||||||
{
|
|
||||||
pent = CREATE_NAMED_ENTITY( istr );
|
|
||||||
if ( FNullEnt( pent )) return NULL;
|
|
||||||
}
|
|
||||||
else if(!strncmp( szName, "weapon_", 7))
|
|
||||||
{
|
|
||||||
//may be this a weapon_generic entity?
|
|
||||||
pent = CREATE_NAMED_ENTITY(MAKE_STRING("weapon_generic"));
|
|
||||||
if ( FNullEnt( pent )) return NULL; // this never gonna called anymore. just in case
|
|
||||||
pent->v.netname = istr;
|
|
||||||
}
|
|
||||||
else if(!strncmp( szName, "item_", 5))
|
|
||||||
{
|
|
||||||
//may be this a weapon_generic entity?
|
|
||||||
pent = CREATE_NAMED_ENTITY(MAKE_STRING("item_generic"));
|
|
||||||
if ( FNullEnt( pent )) return NULL; // this never gonna called anymore. just in case
|
|
||||||
pent->v.netname = istr;
|
|
||||||
}
|
|
||||||
else if(!strncmp( szName, "ammo_", 5))
|
|
||||||
{
|
|
||||||
//may be this a weapon_generic entity?
|
|
||||||
pent = CREATE_NAMED_ENTITY(MAKE_STRING("item_generic"));
|
|
||||||
if ( FNullEnt( pent )) return NULL; // this never gonna called anymore. just in case
|
|
||||||
pent->v.netname = istr;
|
|
||||||
}
|
|
||||||
else //unknown error
|
|
||||||
{
|
|
||||||
Msg("can't create %s\n", szName );
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
pEntity = Instance( pent );
|
pEntity = Instance( pent );
|
||||||
pEntity->pev->owner = pentOwner;
|
pEntity->pev->owner = pentOwner;
|
||||||
|
@ -728,46 +698,16 @@ CBaseEntity * CBaseEntity::CreateGib( char *szName, char *szModel )
|
||||||
string_t model = MAKE_STRING( szModel );
|
string_t model = MAKE_STRING( szModel );
|
||||||
int istr = ALLOC_STRING(szName);
|
int istr = ALLOC_STRING(szName);
|
||||||
|
|
||||||
//check for virtual entities
|
pent = CREATE_NAMED_ENTITY( istr );
|
||||||
if( FUNCTION_FROM_NAME( szName ))
|
if( FNullEnt( pent )) return NULL;
|
||||||
{
|
|
||||||
pent = CREATE_NAMED_ENTITY( istr );
|
|
||||||
if ( FNullEnt( pent )) return NULL;
|
|
||||||
}
|
|
||||||
else if(!strncmp( szName, "weapon_", 7))
|
|
||||||
{
|
|
||||||
// may be this a weapon_generic entity?
|
|
||||||
pent = CREATE_NAMED_ENTITY( MAKE_STRING( "weapon_generic" ));
|
|
||||||
if ( FNullEnt( pent )) return NULL; //this never gonna called anymore. just in case
|
|
||||||
pent->v.netname = istr;
|
|
||||||
}
|
|
||||||
else if(!strncmp( szName, "item_", 5))
|
|
||||||
{
|
|
||||||
//may be this a weapon_generic entity?
|
|
||||||
pent = CREATE_NAMED_ENTITY(MAKE_STRING("item_generic"));
|
|
||||||
if ( FNullEnt( pent )) return NULL;//this never gonna called anymore. just in case
|
|
||||||
pent->v.netname = istr;
|
|
||||||
}
|
|
||||||
else if(!strncmp( szName, "ammo_", 5))
|
|
||||||
{
|
|
||||||
//may be this a weapon_generic entity?
|
|
||||||
pent = CREATE_NAMED_ENTITY(MAKE_STRING("item_generic"));
|
|
||||||
if ( FNullEnt( pent )) return NULL;//this never gonna called anymore. just in case
|
|
||||||
pent->v.netname = istr;
|
|
||||||
}
|
|
||||||
else //unknown error
|
|
||||||
{
|
|
||||||
Msg("can't create %s\n", szName );
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
pEntity = Instance( pent );
|
pEntity = Instance( pent );
|
||||||
DispatchSpawn( pEntity->edict() );
|
DispatchSpawn( pEntity->edict() );
|
||||||
|
|
||||||
if(!FStringNull( model ))
|
if( !FStringNull( model ))
|
||||||
{
|
{
|
||||||
UTIL_SetModel( pEntity->edict(), szModel );
|
UTIL_SetModel( pEntity->edict(), szModel );
|
||||||
Msg("szModel %s\n", szModel );
|
Msg( "szModel %s\n", szModel );
|
||||||
}
|
}
|
||||||
return pEntity;
|
return pEntity;
|
||||||
}
|
}
|
||||||
|
@ -791,7 +731,7 @@ void CBaseEntity::UpdateOnRemove( void )
|
||||||
WorldGraph.m_pLinkPool [ i ].m_pLinkEnt = NULL;
|
WorldGraph.m_pLinkPool [ i ].m_pLinkEnt = NULL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ( pev->globalname ) gGlobalState.EntitySetState( pev->globalname, GLOBAL_DEAD );
|
if( pev->globalname ) gGlobalState.EntitySetState( pev->globalname, GLOBAL_DEAD );
|
||||||
}
|
}
|
||||||
|
|
||||||
//=======================================================================
|
//=======================================================================
|
||||||
|
|
|
@ -51,18 +51,19 @@ void CFuncWall :: Spawn( void )
|
||||||
pev->solid = SOLID_BSP;
|
pev->solid = SOLID_BSP;
|
||||||
pev->movetype = MOVETYPE_PUSH;
|
pev->movetype = MOVETYPE_PUSH;
|
||||||
}
|
}
|
||||||
UTIL_SetModel( ENT(pev), pev->model );
|
UTIL_SetModel( ENT( pev ), pev->model );
|
||||||
|
|
||||||
//Smart field system ®
|
// smart field system ®
|
||||||
if (!FStringNull(pev->angles) && FStringNull(pev->origin))
|
if( !FStringNull( pev->angles ) && FStringNull( pev->origin ))
|
||||||
{
|
{
|
||||||
pev->angles = g_vecZero;
|
pev->angles = g_vecZero;
|
||||||
DevMsg( "\n======/Xash SmartFiled System/======\n\n");
|
ALERT( at_console, "\n======/Xash SmartFiled System/======\n\n");
|
||||||
DevMsg( "Create brush origin for %s,\nif we want correctly set angles\n", STRING(pev->classname));
|
ALERT( at_console, "Create brush origin for %s,\n", STRING( pev->classname ));
|
||||||
SHIFT;
|
ALERT( at_console, "if we want correctly set angles\n\n" );
|
||||||
}
|
}
|
||||||
|
|
||||||
pev->angles[1] = 0 - pev->angles[1];
|
pev->angles[1] = 0 - pev->angles[1];
|
||||||
if(pev->spawnflags & SF_START_ON) TurnOff();
|
if( pev->spawnflags & SF_START_ON ) TurnOff();
|
||||||
else TurnOn();
|
else TurnOn();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2310,15 +2310,14 @@ void CEnvBeam::Spawn( void )
|
||||||
|
|
||||||
if( FStringNull( pev->netname ))
|
if( FStringNull( pev->netname ))
|
||||||
{
|
{
|
||||||
ALERT( at_warning, "%s end entity not found!\n", STRING(pev->classname) );
|
ALERT( at_warning, "%s end entity not found!\n", STRING( pev->classname ));
|
||||||
SetThink( Remove );
|
UTIL_Remove( this );
|
||||||
SetNextThink( 0 );
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
pev->dmgtime = gpGlobals->time;
|
pev->dmgtime = gpGlobals->time;
|
||||||
if (pev->rendercolor == g_vecZero) pev->rendercolor = Vector(255, 255, 255);
|
if( pev->rendercolor == g_vecZero ) pev->rendercolor = Vector( 255, 255, 255 );
|
||||||
if(pev->spawnflags & SF_START_ON) Use( this, this, USE_ON, 0 );
|
if( pev->spawnflags & SF_START_ON ) Use( this, this, USE_ON, 0 );
|
||||||
}
|
}
|
||||||
|
|
||||||
void CEnvBeam::Use( CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value )
|
void CEnvBeam::Use( CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value )
|
||||||
|
|
|
@ -151,17 +151,13 @@ CBaseEntity* CBasePlayerWeapon::Respawn( void )
|
||||||
// make a copy of this weapon that is invisible and inaccessible to players (no touch function). The weapon spawn/respawn code
|
// make a copy of this weapon that is invisible and inaccessible to players (no touch function). The weapon spawn/respawn code
|
||||||
// will decide when to make the weapon visible and touchable.
|
// will decide when to make the weapon visible and touchable.
|
||||||
CBaseEntity *pNewWeapon = NULL;
|
CBaseEntity *pNewWeapon = NULL;
|
||||||
edict_t *pent;
|
edict_t *pent;
|
||||||
|
|
||||||
pent = CREATE_NAMED_ENTITY( pev->classname );
|
pent = CREATE_NAMED_ENTITY( pev->classname );
|
||||||
if ( FNullEnt( pent ) )
|
if( FNullEnt( pent )) return NULL;
|
||||||
{
|
|
||||||
// it's a custom weapon!
|
|
||||||
pent = CREATE_NAMED_ENTITY( MAKE_STRING( "weapon_generic" ));
|
|
||||||
}
|
|
||||||
pNewWeapon = Instance( pent );
|
pNewWeapon = Instance( pent );
|
||||||
|
|
||||||
if ( pNewWeapon )
|
if( pNewWeapon )
|
||||||
{
|
{
|
||||||
pNewWeapon->pev->owner = pev->owner;
|
pNewWeapon->pev->owner = pev->owner;
|
||||||
pNewWeapon->pev->origin = g_pGameRules->VecWeaponRespawnSpot( this );
|
pNewWeapon->pev->origin = g_pGameRules->VecWeaponRespawnSpot( this );
|
||||||
|
@ -172,13 +168,13 @@ CBaseEntity* CBasePlayerWeapon::Respawn( void )
|
||||||
pNewWeapon->SetTouch( NULL );// no touch
|
pNewWeapon->SetTouch( NULL );// no touch
|
||||||
pNewWeapon->SetThink( AttemptToMaterialize );
|
pNewWeapon->SetThink( AttemptToMaterialize );
|
||||||
|
|
||||||
DROP_TO_FLOOR ( ENT(pev) );
|
DROP_TO_FLOOR ( ENT( pev ));
|
||||||
|
|
||||||
// not a typo! We want to know when the weapon the player just picked up should respawn! This new entity we created is the replacement,
|
// not a typo! We want to know when the weapon the player just picked up should respawn! This new entity we created is the replacement,
|
||||||
// but when it should respawn is based on conditions belonging to the weapon that was taken.
|
// but when it should respawn is based on conditions belonging to the weapon that was taken.
|
||||||
pNewWeapon->AbsoluteNextThink( g_pGameRules->FlWeaponRespawnTime( this ) );
|
pNewWeapon->AbsoluteNextThink( g_pGameRules->FlWeaponRespawnTime( this ));
|
||||||
}
|
}
|
||||||
else Msg("Respawn failed to create %s!\n", STRING( pev->classname ) );
|
else ALERT( at_error, "failed to respawn %s!\n", STRING( pev->classname ));
|
||||||
|
|
||||||
return pNewWeapon;
|
return pNewWeapon;
|
||||||
}
|
}
|
||||||
|
@ -238,14 +234,15 @@ BOOL CBasePlayerWeapon :: CanDeploy( void )
|
||||||
void CBasePlayerWeapon :: Precache( void )
|
void CBasePlayerWeapon :: Precache( void )
|
||||||
{
|
{
|
||||||
ItemInfo II;
|
ItemInfo II;
|
||||||
if(GetItemInfo(&II))
|
|
||||||
|
if( GetItemInfo( &II ))
|
||||||
{
|
{
|
||||||
ItemInfoArray[II.iId] = II;
|
ItemInfoArray[II.iId] = II;
|
||||||
|
|
||||||
if( II.iszAmmo1 ) AddAmmoName( II.iszAmmo1 );
|
if( II.iszAmmo1 ) AddAmmoName( II.iszAmmo1 );
|
||||||
if( II.iszAmmo2 ) AddAmmoName( II.iszAmmo2 );
|
if( II.iszAmmo2 ) AddAmmoName( II.iszAmmo2 );
|
||||||
|
|
||||||
memset( &II, 0, sizeof II );
|
memset( &II, 0, sizeof( II ));
|
||||||
|
|
||||||
UTIL_PrecacheModel( iViewModel() );
|
UTIL_PrecacheModel( iViewModel() );
|
||||||
UTIL_PrecacheModel( iWorldModel() );
|
UTIL_PrecacheModel( iWorldModel() );
|
||||||
|
@ -255,12 +252,14 @@ void CBasePlayerWeapon :: Precache( void )
|
||||||
//=========================================================
|
//=========================================================
|
||||||
// Get Weapon Info from Script File
|
// Get Weapon Info from Script File
|
||||||
//=========================================================
|
//=========================================================
|
||||||
int CBasePlayerWeapon :: GetItemInfo(ItemInfo *p)
|
int CBasePlayerWeapon :: GetItemInfo( ItemInfo *p )
|
||||||
{
|
{
|
||||||
if (FStringNull(pev->netname)) pev->netname = pev->classname;
|
if( FStringNull( pev->netname ))
|
||||||
if(ParseWeaponFile( p, STRING(pev->netname)))
|
pev->netname = pev->classname;
|
||||||
|
|
||||||
|
if( ParseWeaponFile( p, STRING( pev->netname )))
|
||||||
{
|
{
|
||||||
//make unical weapon number
|
// make unical weapon number
|
||||||
GenerateID();
|
GenerateID();
|
||||||
p->iId = m_iId;
|
p->iId = m_iId;
|
||||||
return 1;
|
return 1;
|
||||||
|
@ -275,6 +274,10 @@ void CBasePlayerWeapon :: Spawn( void )
|
||||||
{
|
{
|
||||||
Precache();
|
Precache();
|
||||||
|
|
||||||
|
// don't let killed entity continue spawning
|
||||||
|
if( pev->flags & FL_KILLME )
|
||||||
|
return;
|
||||||
|
|
||||||
pev->movetype = MOVETYPE_TOSS;
|
pev->movetype = MOVETYPE_TOSS;
|
||||||
pev->solid = SOLID_BBOX;
|
pev->solid = SOLID_BBOX;
|
||||||
pev->sequence = 1; // set world animation
|
pev->sequence = 1; // set world animation
|
||||||
|
@ -303,7 +306,7 @@ void CBasePlayerWeapon :: GenerateID( void )
|
||||||
{
|
{
|
||||||
for( int i = 0; i < GlobalID; i++ )
|
for( int i = 0; i < GlobalID; i++ )
|
||||||
{
|
{
|
||||||
if( FStrEq( STRING( pev->netname), NameItems[i] ))
|
if( FStrEq( STRING( pev->netname ), NameItems[i] ))
|
||||||
{
|
{
|
||||||
m_iId = ID[i];
|
m_iId = ID[i];
|
||||||
return;
|
return;
|
||||||
|
@ -389,7 +392,7 @@ int CBasePlayerWeapon :: ParseWeaponFile( ItemInfo *II, const char *filename )
|
||||||
|
|
||||||
if( !pfile )
|
if( !pfile )
|
||||||
{
|
{
|
||||||
Msg( "Warning: Weapon info file for %s not found!\n", STRING(pev->netname) );
|
ALERT( at_warning, "Weapon info file for %s not found!\n", STRING( pev->netname ));
|
||||||
COM_FreeFile( pfile );
|
COM_FreeFile( pfile );
|
||||||
UTIL_Remove( this );
|
UTIL_Remove( this );
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -398,16 +401,16 @@ int CBasePlayerWeapon :: ParseWeaponFile( ItemInfo *II, const char *filename )
|
||||||
{
|
{
|
||||||
|
|
||||||
II->iszName = pev->netname;
|
II->iszName = pev->netname;
|
||||||
DevMsg("Parse %s.txt\n", STRING( II->iszName ));
|
ALERT( at_aiconsole, "\nparse %s.txt\n", STRING( II->iszName ));
|
||||||
// parses the type, moves the file pointer
|
// parses the type, moves the file pointer
|
||||||
iResult = ParseWeaponData( II, pfile );
|
iResult = ParseWeaponData( II, pfile );
|
||||||
DevMsg("Parsing: WeaponData{} %s\n", iResult ? "OK" : "ERROR" );
|
ALERT( at_aiconsole, "Parsing: WeaponData{} %s\n", iResult ? "^3OK" : "^1ERROR" );
|
||||||
iResult = ParsePrimaryAttack( II, pfile );
|
iResult = ParsePrimaryAttack( II, pfile );
|
||||||
DevMsg("Parsing: PrimaryAttack{} %s\n", iResult ? "OK" : "ERROR" );
|
ALERT( at_aiconsole, "Parsing: PrimaryAttack{} %s\n", iResult ? "^3OK" : "^1ERROR" );
|
||||||
iResult = ParseSecondaryAttack( II, pfile );
|
iResult = ParseSecondaryAttack( II, pfile );
|
||||||
DevMsg("Parsing: SecondaryAttack{} %s\n", iResult ? "OK" : "ERROR" );
|
ALERT( at_aiconsole, "Parsing: SecondaryAttack{} %s\n", iResult ? "^3OK" : "^1ERROR" );
|
||||||
iResult = ParseSoundData( II, pfile );
|
iResult = ParseSoundData( II, pfile );
|
||||||
DevMsg("Parsing: SoundData{} %s\n", iResult ? "OK" : "ERROR" );
|
ALERT( at_aiconsole, "Parsing: SoundData{} %s\n", iResult ? "^3OK" : "^1ERROR" );
|
||||||
COM_FreeFile( pfile );
|
COM_FreeFile( pfile );
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,6 +12,8 @@
|
||||||
#include "gamerules.h"
|
#include "gamerules.h"
|
||||||
#include "game.h"
|
#include "game.h"
|
||||||
#include "defaults.h"
|
#include "defaults.h"
|
||||||
|
#include "baseitem.h"
|
||||||
|
#include "baseweapon.h"
|
||||||
|
|
||||||
void EntvarsKeyvalue( entvars_t *pev, KeyValueData *pkvd );
|
void EntvarsKeyvalue( entvars_t *pev, KeyValueData *pkvd );
|
||||||
|
|
||||||
|
@ -137,7 +139,25 @@ int DispatchSpawn( edict_t *pent )
|
||||||
|
|
||||||
int DispatchCreate( edict_t *pent, const char *szName )
|
int DispatchCreate( edict_t *pent, const char *szName )
|
||||||
{
|
{
|
||||||
return -1; // -1 = failed, 0 = done
|
if( FNullEnt( pent ) || FStringNull( szName ))
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
int istr = ALLOC_STRING( szName );
|
||||||
|
|
||||||
|
// handle virtual entities here
|
||||||
|
if( !strncmp( szName, "weapon_", 7 ))
|
||||||
|
{
|
||||||
|
CBasePlayerWeapon *pWeapon = GetClassPtr((CBasePlayerWeapon *)VARS( pent ));
|
||||||
|
pWeapon->pev->netname = istr;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
else if( !strncmp( szName, "item_", 5 ) || !strncmp( szName, "ammo_", 5 ))
|
||||||
|
{
|
||||||
|
CItem *pItem = GetClassPtr((CItem *)VARS( pent ));
|
||||||
|
pItem->pev->netname = istr;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
void DispatchKeyValue( edict_t *pentKeyvalue, KeyValueData *pkvd )
|
void DispatchKeyValue( edict_t *pentKeyvalue, KeyValueData *pkvd )
|
||||||
|
|
|
@ -41,9 +41,6 @@ typedef int BOOL;
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
|
|
||||||
// Header file containing definition of globalvars_t and entvars_t
|
|
||||||
typedef float vec_t; // needed before including progdefs.h
|
|
||||||
|
|
||||||
inline unsigned long& FloatBits( vec_t& f ) { return *reinterpret_cast<unsigned long*>(&f); }
|
inline unsigned long& FloatBits( vec_t& f ) { return *reinterpret_cast<unsigned long*>(&f); }
|
||||||
inline unsigned long const& FloatBits( vec_t const& f ) { return *reinterpret_cast<unsigned long const*>(&f); }
|
inline unsigned long const& FloatBits( vec_t const& f ) { return *reinterpret_cast<unsigned long const*>(&f); }
|
||||||
inline vec_t BitsToFloat( unsigned long i ) { return *reinterpret_cast<vec_t*>(&i); }
|
inline vec_t BitsToFloat( unsigned long i ) { return *reinterpret_cast<vec_t*>(&i); }
|
||||||
|
|
|
@ -1,3 +0,0 @@
|
||||||
#pragma once
|
|
||||||
|
|
||||||
// attempt to be remove
|
|
|
@ -1145,28 +1145,12 @@ void UTIL_PrecacheEntity( const char *szClassname )
|
||||||
edict_t *pent;
|
edict_t *pent;
|
||||||
int istr = ALLOC_STRING( szClassname );
|
int istr = ALLOC_STRING( szClassname );
|
||||||
|
|
||||||
// check for virtual entities
|
pent = CREATE_NAMED_ENTITY( istr );
|
||||||
if( FUNCTION_FROM_NAME( szClassname ))
|
if( FNullEnt( pent )) return;
|
||||||
{
|
|
||||||
pent = CREATE_NAMED_ENTITY( istr );
|
|
||||||
if( FNullEnt( pent )) return;
|
|
||||||
}
|
|
||||||
else if( !strncmp( szClassname, "weapon_", 7 ))
|
|
||||||
{
|
|
||||||
//may be this a weapon_generic entity?
|
|
||||||
pent = CREATE_NAMED_ENTITY( MAKE_STRING( "weapon_generic" ));
|
|
||||||
if ( FNullEnt( pent )) return; //this never gonna called anymore. just in case
|
|
||||||
pent->v.netname = istr;
|
|
||||||
}
|
|
||||||
else // unknown error
|
|
||||||
{
|
|
||||||
ALERT( at_error, "can't create %s\n", szClassname );
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
CBaseEntity *pEntity = CBaseEntity::Instance( VARS( pent ));
|
CBaseEntity *pEntity = CBaseEntity::Instance( VARS( pent ));
|
||||||
if( pEntity ) pEntity->Precache();
|
if( pEntity ) pEntity->Precache();
|
||||||
REMOVE_ENTITY(pent);
|
REMOVE_ENTITY( pent );
|
||||||
}
|
}
|
||||||
|
|
||||||
//========================================================================
|
//========================================================================
|
||||||
|
@ -1390,84 +1374,82 @@ BOOL UTIL_EntIsVisible( entvars_t* pev, entvars_t* pevTarget)
|
||||||
//========================================================================
|
//========================================================================
|
||||||
void UTIL_PrecacheResourse( void )
|
void UTIL_PrecacheResourse( void )
|
||||||
{
|
{
|
||||||
//constant precaches
|
// null and errors stuff
|
||||||
|
g_sModelIndexErrorModel = UTIL_PrecacheModel("models/common/error.mdl");//last crash point
|
||||||
|
g_sModelIndexErrorSprite = UTIL_PrecacheModel("sprites/error.spr");
|
||||||
|
g_sModelIndexNullModel = UTIL_PrecacheModel("models/common/null.mdl");
|
||||||
|
g_sModelIndexNullSprite = UTIL_PrecacheModel("sprites/null.spr");
|
||||||
|
|
||||||
//null and errors stuff
|
// global sprites and models
|
||||||
g_sModelIndexErrorModel = UTIL_PrecacheModel("models/common/error.mdl");//last crash point
|
g_sModelIndexFireball = UTIL_PrecacheModel ("sprites/explode.spr");// fireball
|
||||||
g_sModelIndexErrorSprite = UTIL_PrecacheModel("sprites/error.spr");
|
g_sModelIndexWExplosion = UTIL_PrecacheModel ("sprites/wxplode.spr");// underwater fireball
|
||||||
g_sModelIndexNullModel = UTIL_PrecacheModel("models/common/null.mdl");
|
g_sModelIndexSmoke = UTIL_PrecacheModel ("sprites/steam1.spr");// smoke
|
||||||
g_sModelIndexNullSprite = UTIL_PrecacheModel("sprites/null.spr");
|
g_sModelIndexBubbles = UTIL_PrecacheModel ("sprites/bubble.spr");//bubbles
|
||||||
|
g_sModelIndexLaser = UTIL_PrecacheModel( "sprites/laserbeam.spr" );
|
||||||
|
g_sModelIndexBloodSpray = UTIL_PrecacheModel ("sprites/bloodspray.spr");
|
||||||
|
g_sModelIndexBloodDrop = UTIL_PrecacheModel ("sprites/blood.spr");
|
||||||
|
|
||||||
//global sprites and models
|
// player items and weapons
|
||||||
g_sModelIndexFireball = UTIL_PrecacheModel ("sprites/explode.spr");// fireball
|
memset( CBasePlayerWeapon::ItemInfoArray, 0, sizeof( CBasePlayerWeapon::ItemInfoArray ));
|
||||||
g_sModelIndexWExplosion = UTIL_PrecacheModel ("sprites/wxplode.spr");// underwater fireball
|
memset( CBasePlayerWeapon::AmmoInfoArray, 0, sizeof( CBasePlayerWeapon::AmmoInfoArray ));
|
||||||
g_sModelIndexSmoke = UTIL_PrecacheModel ("sprites/steam1.spr");// smoke
|
|
||||||
g_sModelIndexBubbles = UTIL_PrecacheModel ("sprites/bubble.spr");//bubbles
|
|
||||||
g_sModelIndexLaser = UTIL_PrecacheModel( "sprites/laserbeam.spr" );
|
|
||||||
g_sModelIndexBloodSpray = UTIL_PrecacheModel ("sprites/bloodspray.spr");
|
|
||||||
g_sModelIndexBloodDrop = UTIL_PrecacheModel ("sprites/blood.spr");
|
|
||||||
|
|
||||||
//player items and weapons
|
|
||||||
memset( CBasePlayerWeapon::ItemInfoArray, 0, sizeof(CBasePlayerWeapon::ItemInfoArray) );
|
|
||||||
memset( CBasePlayerWeapon::AmmoInfoArray, 0, sizeof(CBasePlayerWeapon::AmmoInfoArray) );
|
|
||||||
giAmmoIndex = 0;
|
giAmmoIndex = 0;
|
||||||
|
|
||||||
//custom precaches
|
// custom precaches
|
||||||
char token[256];
|
char token[256];
|
||||||
char *pfile = (char *)LOAD_FILE( "scripts/precache.txt", NULL );
|
char *pfile = (char *)LOAD_FILE( "scripts/precache.txt", NULL );
|
||||||
if(pfile)
|
if( pfile )
|
||||||
{
|
{
|
||||||
while ( pfile )
|
while( pfile )
|
||||||
{
|
{
|
||||||
if ( !stricmp( token, "entity" ))
|
if( !stricmp( token, "entity" ))
|
||||||
{
|
{
|
||||||
pfile = COM_ParseFile(pfile, token);
|
pfile = COM_ParseFile( pfile, token );
|
||||||
UTIL_PrecacheEntity( ALLOC_STRING(token) );
|
UTIL_PrecacheEntity( ALLOC_STRING( token ));
|
||||||
}
|
}
|
||||||
else if ( !stricmp( token, "dmentity" ))
|
else if( !stricmp( token, "dmentity" ))
|
||||||
{
|
{
|
||||||
pfile = COM_ParseFile(pfile, token);
|
pfile = COM_ParseFile( pfile, token );
|
||||||
if( IsDeatchmatch()) UTIL_PrecacheEntity( ALLOC_STRING( token ));
|
if( IsDeatchmatch()) UTIL_PrecacheEntity( ALLOC_STRING( token ));
|
||||||
}
|
}
|
||||||
else if ( !stricmp( token, "model" ))
|
else if( !stricmp( token, "model" ))
|
||||||
{
|
{
|
||||||
pfile = COM_ParseFile(pfile, token);
|
pfile = COM_ParseFile( pfile, token );
|
||||||
UTIL_PrecacheModel( ALLOC_STRING(token) );
|
UTIL_PrecacheModel( ALLOC_STRING( token ));
|
||||||
}
|
}
|
||||||
else if ( !stricmp( token, "dmmodel" ))
|
else if( !stricmp( token, "dmmodel" ))
|
||||||
{
|
{
|
||||||
pfile = COM_ParseFile(pfile, token);
|
pfile = COM_ParseFile( pfile, token );
|
||||||
if( IsDeatchmatch()) UTIL_PrecacheModel( ALLOC_STRING( token ));
|
if( IsDeatchmatch()) UTIL_PrecacheModel( ALLOC_STRING( token ));
|
||||||
}
|
}
|
||||||
else if ( !stricmp( token, "sound" ))
|
else if( !stricmp( token, "sound" ))
|
||||||
{
|
{
|
||||||
pfile = COM_ParseFile(pfile, token);
|
pfile = COM_ParseFile( pfile, token );
|
||||||
UTIL_PrecacheSound( ALLOC_STRING( token ));
|
UTIL_PrecacheSound( ALLOC_STRING( token ));
|
||||||
}
|
}
|
||||||
else if ( !stricmp( token, "dmsound" ))
|
else if( !stricmp( token, "dmsound" ))
|
||||||
{
|
{
|
||||||
pfile = COM_ParseFile( pfile, token );
|
pfile = COM_ParseFile( pfile, token );
|
||||||
if( IsDeatchmatch()) UTIL_PrecacheSound( ALLOC_STRING( token ));
|
if( IsDeatchmatch()) UTIL_PrecacheSound( ALLOC_STRING( token ));
|
||||||
}
|
}
|
||||||
else if ( !stricmp( token, "aurora" ))
|
else if( !stricmp( token, "aurora" ))
|
||||||
{
|
{
|
||||||
pfile = COM_ParseFile(pfile, token);
|
pfile = COM_ParseFile( pfile, token );
|
||||||
UTIL_PrecacheAurora( ALLOC_STRING( token ));
|
UTIL_PrecacheAurora( ALLOC_STRING( token ));
|
||||||
}
|
}
|
||||||
pfile = COM_ParseFile(pfile, token);
|
pfile = COM_ParseFile( pfile, token );
|
||||||
}
|
}
|
||||||
COM_FreeFile(pfile);
|
COM_FreeFile( pfile );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOL IsMultiplayer ( void )
|
BOOL IsMultiplayer( void )
|
||||||
{
|
{
|
||||||
if( g_pGameRules->IsMultiplayer() )
|
if( g_pGameRules->IsMultiplayer())
|
||||||
return TRUE;
|
return TRUE;
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOL IsDeatchmatch ( void )
|
BOOL IsDeatchmatch( void )
|
||||||
{
|
{
|
||||||
if( g_pGameRules->IsDeathmatch() )
|
if( g_pGameRules->IsDeathmatch() )
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
|
@ -211,8 +211,9 @@ extern BOOL FNullEnt( CBaseEntity *ent );
|
||||||
// g-cont. radnomize hull nullity yep!
|
// g-cont. radnomize hull nullity yep!
|
||||||
// and Doom3 colloisation
|
// and Doom3 colloisation
|
||||||
#define iStringNull 0
|
#define iStringNull 0
|
||||||
inline BOOL FStringNull(int iString) { return iString == iStringNull; }
|
inline BOOL FStringNull( int iString ) { return iString == iStringNull; }
|
||||||
inline BOOL FStringNull(Vector vString) { return vString == Vector(0,0,0); }
|
inline BOOL FStringNull( const char *szString ) { return (szString && *szString) ? FALSE : TRUE; };
|
||||||
|
inline BOOL FStringNull( Vector vString ) { return vString == Vector( 0, 0, 0); }
|
||||||
|
|
||||||
#define cchMapNameMost 32
|
#define cchMapNameMost 32
|
||||||
|
|
||||||
|
|
|
@ -3693,52 +3693,23 @@ void CBloodSplat::Spray ( void )
|
||||||
void CBasePlayer::GiveNamedItem( const char *pszName )
|
void CBasePlayer::GiveNamedItem( const char *pszName )
|
||||||
{
|
{
|
||||||
edict_t *pent;
|
edict_t *pent;
|
||||||
int istr = MAKE_STRING(pszName);
|
int istr = MAKE_STRING( pszName );
|
||||||
|
|
||||||
if( FUNCTION_FROM_NAME( pszName ))
|
pent = CREATE_NAMED_ENTITY( istr );
|
||||||
{
|
if( FNullEnt( pent )) return;
|
||||||
pent = CREATE_NAMED_ENTITY(istr);
|
|
||||||
if ( FNullEnt( pent )) return;
|
|
||||||
}
|
|
||||||
else if( !strncmp( pszName, "weapon_", 7 ))
|
|
||||||
{
|
|
||||||
//may be this a weapon_generic entity?
|
|
||||||
pent = CREATE_NAMED_ENTITY(MAKE_STRING("weapon_generic"));
|
|
||||||
if ( FNullEnt( pent )) return;//this never gonna called anymore. just in case
|
|
||||||
pent->v.netname = istr;
|
|
||||||
}
|
|
||||||
else if( !strncmp( pszName, "item_", 5 ))
|
|
||||||
{
|
|
||||||
//may be this a weapon_generic entity?
|
|
||||||
pent = CREATE_NAMED_ENTITY(MAKE_STRING("item_generic"));
|
|
||||||
if ( FNullEnt( pent )) return;//this never gonna called anymore. just in case
|
|
||||||
pent->v.netname = istr;
|
|
||||||
}
|
|
||||||
else if(!strncmp( pszName, "ammo_", 5))
|
|
||||||
{
|
|
||||||
//may be this a weapon_generic entity?
|
|
||||||
pent = CREATE_NAMED_ENTITY(MAKE_STRING("item_generic"));
|
|
||||||
if ( FNullEnt( pent )) return;//this never gonna called anymore. just in case
|
|
||||||
pent->v.netname = istr;
|
|
||||||
}
|
|
||||||
else //unknown error
|
|
||||||
{
|
|
||||||
Msg("can't create %s\n", pszName );
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
DevMsg("Give %s\n", STRING(pent->v.classname));
|
ALERT( at_aiconsole, "Give %s\n", STRING( pent->v.classname ));
|
||||||
|
|
||||||
VARS( pent )->origin = pev->origin;
|
VARS( pent )->origin = pev->origin;
|
||||||
pent->v.spawnflags |= SF_NORESPAWN;
|
pent->v.spawnflags |= SF_NORESPAWN;
|
||||||
|
|
||||||
DispatchSpawn( pent );
|
DispatchSpawn( pent );
|
||||||
DispatchTouch( pent, ENT( pev ) );
|
DispatchTouch( pent, ENT( pev ));
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOL CBasePlayer :: FlashlightIsOn( void )
|
BOOL CBasePlayer :: FlashlightIsOn( void )
|
||||||
{
|
{
|
||||||
return FBitSet(pev->effects, EF_DIMLIGHT);
|
return FBitSet( pev->effects, EF_DIMLIGHT );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
3
todo.log
3
todo.log
|
@ -55,7 +55,8 @@ Beta 13.12.08
|
||||||
24.ed_fields flags OK
|
24.ed_fields flags OK
|
||||||
25.install ALL missing models & sounds! OK
|
25.install ALL missing models & sounds! OK
|
||||||
26.fixangle doesn't working correctly
|
26.fixangle doesn't working correctly
|
||||||
27.fixup viewmodel drawing
|
27.fixup viewmodel drawing OK
|
||||||
|
28.fixing r_pause_effect
|
||||||
|
|
||||||
|
|
||||||
Список доступных рендереров: Что в них интересного
|
Список доступных рендереров: Что в них интересного
|
||||||
|
|
|
@ -256,8 +256,8 @@ opcode_t pr_opcodes[] =
|
||||||
{"<<", "LSHIFT_I", 3, ASSOC_LEFT, &type_integer, &type_integer, &type_integer},
|
{"<<", "LSHIFT_I", 3, ASSOC_LEFT, &type_integer, &type_integer, &type_integer},
|
||||||
{">>", "RSHIFT_F", 3, ASSOC_LEFT, &type_float, &type_float, &type_float},
|
{">>", "RSHIFT_F", 3, ASSOC_LEFT, &type_float, &type_float, &type_float},
|
||||||
{"<<", "LSHIFT_F", 3, ASSOC_LEFT, &type_float, &type_float, &type_float},
|
{"<<", "LSHIFT_F", 3, ASSOC_LEFT, &type_float, &type_float, &type_float},
|
||||||
{"%", "OP_MODULO_I", 3, ASSOC_LEFT, &type_integer, &type_integer, &type_integer},
|
{"%", "MODULO_I", 3, ASSOC_LEFT, &type_integer, &type_integer, &type_integer},
|
||||||
{"%", "OP_MODULO_F", 3, ASSOC_LEFT, &type_float, &type_float, &type_float},
|
{"%", "MODULO_F", 3, ASSOC_LEFT, &type_float, &type_float, &type_float},
|
||||||
{"<ARRAY>", "GET_POINTER", -1, ASSOC_LEFT, &type_float, &type_integer, &type_pointer},
|
{"<ARRAY>", "GET_POINTER", -1, ASSOC_LEFT, &type_float, &type_integer, &type_pointer},
|
||||||
{"<ARRAY>", "ARRAY_OFS", -1, ASSOC_LEFT, &type_pointer, &type_integer, &type_pointer},
|
{"<ARRAY>", "ARRAY_OFS", -1, ASSOC_LEFT, &type_pointer, &type_integer, &type_pointer},
|
||||||
{"=", "LOADA_F", 6, ASSOC_LEFT, &type_float, &type_integer, &type_float},
|
{"=", "LOADA_F", 6, ASSOC_LEFT, &type_float, &type_integer, &type_float},
|
||||||
|
|
|
@ -159,7 +159,51 @@ char *prvm_opnames[] =
|
||||||
"^6SWITCH_FNC",
|
"^6SWITCH_FNC",
|
||||||
|
|
||||||
"^6CASE",
|
"^6CASE",
|
||||||
"^6CASERANGE"
|
"^6CASERANGE",
|
||||||
|
|
||||||
|
"STORE_I",
|
||||||
|
"STORE_IF",
|
||||||
|
"STORE_FI",
|
||||||
|
|
||||||
|
"ADD_I",
|
||||||
|
"ADD_FI",
|
||||||
|
"ADD_IF",
|
||||||
|
|
||||||
|
"SUB_I",
|
||||||
|
"SUB_FI",
|
||||||
|
"SUB_IF",
|
||||||
|
|
||||||
|
"CONV_ITOF",
|
||||||
|
"CONV_FTOI",
|
||||||
|
"CP_ITOF",
|
||||||
|
"CP_FTOI",
|
||||||
|
"LOAD_I",
|
||||||
|
"STOREP_I",
|
||||||
|
"STOREP_IF",
|
||||||
|
"STOREP_FI",
|
||||||
|
|
||||||
|
"BITAND_I",
|
||||||
|
"BITOR_I",
|
||||||
|
|
||||||
|
"MUL_I",
|
||||||
|
"DIV_I",
|
||||||
|
"EQ_I",
|
||||||
|
"NE_I",
|
||||||
|
|
||||||
|
"IFNOTS",
|
||||||
|
"IFS",
|
||||||
|
|
||||||
|
"NOT_I",
|
||||||
|
|
||||||
|
"DIV_VF",
|
||||||
|
|
||||||
|
"POWER_I",
|
||||||
|
"RSHIFT_I",
|
||||||
|
"LSHIFT_I",
|
||||||
|
"RSHIFT_F",
|
||||||
|
"LSHIFT_F",
|
||||||
|
"MODULO_I",
|
||||||
|
"MODULO_F",
|
||||||
};
|
};
|
||||||
|
|
||||||
char *PRVM_GlobalString (int ofs);
|
char *PRVM_GlobalString (int ofs);
|
||||||
|
@ -179,22 +223,18 @@ void PRVM_PrintStatement (dstatement_t *s)
|
||||||
size_t i;
|
size_t i;
|
||||||
int opnum = (int)(s - vm.prog->statements);
|
int opnum = (int)(s - vm.prog->statements);
|
||||||
|
|
||||||
Msg("s%i: ", opnum);
|
Msg( "s%i: ", opnum );
|
||||||
if( vm.prog->statement_linenums )
|
if( vm.prog->statement_linenums )
|
||||||
Msg( "%s:%i: ", PRVM_GetString( vm.prog->xfunction->s_file ), vm.prog->statement_linenums[ opnum ] );
|
Msg( "%s:%i: ", PRVM_GetString( vm.prog->xfunction->s_file ), vm.prog->statement_linenums[ opnum ] );
|
||||||
|
|
||||||
if (prvm_statementprofiling->value)
|
if( prvm_statementprofiling->integer )
|
||||||
Msg("%7.0f ", vm.prog->statement_profile[s - vm.prog->statements]);
|
Msg( "%7.0f ", vm.prog->statement_profile[s - vm.prog->statements] );
|
||||||
|
|
||||||
if ( (unsigned)s->op < sizeof(prvm_opnames)/sizeof(prvm_opnames[0]))
|
if((uint)s->op < sizeof( prvm_opnames ) / sizeof( prvm_opnames[0] ))
|
||||||
{
|
{
|
||||||
Msg("%s ", prvm_opnames[s->op]);
|
Msg( "%s ", prvm_opnames[s->op] );
|
||||||
i = strlen(prvm_opnames[s->op]);
|
i = com.cstrlen( prvm_opnames[s->op] );
|
||||||
// don't count a preceding color tag when padding the name
|
for( ; i < 10; i++ ) Msg(" ");
|
||||||
if (prvm_opnames[s->op][0] == STRING_COLOR_TAG)
|
|
||||||
i -= 2;
|
|
||||||
for ( ; i<10 ; i++)
|
|
||||||
Msg(" ");
|
|
||||||
}
|
}
|
||||||
if (s->op == OP_IF || s->op == OP_IFNOT)
|
if (s->op == OP_IF || s->op == OP_IFNOT)
|
||||||
Msg("%s, s%i",PRVM_GlobalString((unsigned short) s->a),(signed short)s->b + opnum);
|
Msg("%s, s%i",PRVM_GlobalString((unsigned short) s->a),(signed short)s->b + opnum);
|
||||||
|
|
|
@ -253,17 +253,14 @@ void PRVM_Init( int argc, char **argv )
|
||||||
size_t size;
|
size_t size;
|
||||||
byte *image;
|
byte *image;
|
||||||
|
|
||||||
|
if( !FS_FileExists( "bin/client.dll" ) || !FS_FileExists( "bin/server.dll" ))
|
||||||
|
{
|
||||||
|
image = FS_LoadInternal( "progs.pk3", &size );
|
||||||
|
if( size ) FS_WriteFile( "progs.pk3", image, size );
|
||||||
|
Cmd_ExecuteString( "fs_rescan\n" );
|
||||||
|
}
|
||||||
|
|
||||||
// dump internal copies of progs into hdd if missing
|
// dump internal copies of progs into hdd if missing
|
||||||
if(!FS_FileExists(va("%s/server.dat", GI->vprogs_dir)))
|
|
||||||
{
|
|
||||||
image = FS_LoadInternal( "server.dat", &size );
|
|
||||||
if( size ) FS_WriteFile(va("%s/server.dat", GI->vprogs_dir), image, size );
|
|
||||||
}
|
|
||||||
if(!FS_FileExists(va("%s/client.dat", GI->vprogs_dir)))
|
|
||||||
{
|
|
||||||
image = FS_LoadInternal( "client.dat", &size );
|
|
||||||
if( size ) FS_WriteFile(va("%s/client.dat", GI->vprogs_dir), image, size );
|
|
||||||
}
|
|
||||||
if(!FS_FileExists(va("%s/uimenu.dat", GI->vprogs_dir)))
|
if(!FS_FileExists(va("%s/uimenu.dat", GI->vprogs_dir)))
|
||||||
{
|
{
|
||||||
image = FS_LoadInternal( "uimenu.dat", &size );
|
image = FS_LoadInternal( "uimenu.dat", &size );
|
||||||
|
|
|
@ -463,8 +463,11 @@ void ParseEntities( void )
|
||||||
{
|
{
|
||||||
num_entities = 0;
|
num_entities = 0;
|
||||||
mapfile = Com_OpenScript( "entities", dentdata, entdatasize );
|
mapfile = Com_OpenScript( "entities", dentdata, entdatasize );
|
||||||
if( mapfile ) while( ParseEntity( ));
|
if( mapfile )
|
||||||
Com_CloseScript( mapfile );
|
{
|
||||||
|
while( ParseEntity( ));
|
||||||
|
Com_CloseScript( mapfile );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -480,7 +483,6 @@ void UnparseEntities( void )
|
||||||
char *buf, *end;
|
char *buf, *end;
|
||||||
char line[2048];
|
char line[2048];
|
||||||
char key[MAX_KEY], value[MAX_VALUE];
|
char key[MAX_KEY], value[MAX_VALUE];
|
||||||
char *value2;
|
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
buf = dentdata;
|
buf = dentdata;
|
||||||
|
@ -492,22 +494,11 @@ void UnparseEntities( void )
|
||||||
ep = entities[i].epairs;
|
ep = entities[i].epairs;
|
||||||
if( !ep ) continue; // ent got removed
|
if( !ep ) continue; // ent got removed
|
||||||
|
|
||||||
// certain entities get stripped from bsp file */
|
|
||||||
value2 = ValueForKey( &entities[i], "classname" );
|
|
||||||
|
|
||||||
com.strcat( end, "{\n" );
|
com.strcat( end, "{\n" );
|
||||||
end += 2;
|
end += 2;
|
||||||
|
|
||||||
// always place "classname" at first
|
|
||||||
StripTrailing( value2 );
|
|
||||||
com.snprintf( line, 2048, "\"classname\" \"%s\"\n", value2 );
|
|
||||||
com.strcat( end, line );
|
|
||||||
end += com.strlen( line );
|
|
||||||
|
|
||||||
for( ep = entities[i].epairs; ep; ep = ep->next )
|
for( ep = entities[i].epairs; ep; ep = ep->next )
|
||||||
{
|
{
|
||||||
if( !com.stricmp( ep->key, "classname" ))
|
|
||||||
continue; // already stored
|
|
||||||
com.strncpy( key, ep->key, MAX_KEY );
|
com.strncpy( key, ep->key, MAX_KEY );
|
||||||
StripTrailing( key );
|
StripTrailing( key );
|
||||||
com.strncpy( value, ep->value, MAX_VALUE );
|
com.strncpy( value, ep->value, MAX_VALUE );
|
||||||
|
|
|
@ -230,32 +230,31 @@ int PlaneFromPoints( vec_t *p0, vec_t *p1, vec_t *p2 )
|
||||||
return FindFloatPlane( normal, dist );
|
return FindFloatPlane( normal, dist );
|
||||||
}
|
}
|
||||||
|
|
||||||
void PrintContents( int cnt )
|
void CntString( int cnt, char *contents )
|
||||||
{
|
{
|
||||||
Msg("Contents:" );
|
contents[0] = '\0';
|
||||||
|
|
||||||
if( cnt & CONTENTS_SOLID ) Msg( "solid " );
|
if( cnt & CONTENTS_SOLID ) com.strcat( contents, "solid " );
|
||||||
if( cnt & CONTENTS_WINDOW) Msg( "window " );
|
if( cnt & CONTENTS_WINDOW) com.strcat( contents, "window " );
|
||||||
if( cnt & CONTENTS_AUX ) Msg( "aux " );
|
if( cnt & CONTENTS_AUX ) com.strcat( contents, "aux " );
|
||||||
if( cnt & CONTENTS_LAVA) Msg( "lava " );
|
if( cnt & CONTENTS_LAVA) com.strcat( contents, "lava " );
|
||||||
if( cnt & CONTENTS_SLIME) Msg( "slime " );
|
if( cnt & CONTENTS_SLIME) com.strcat( contents, "slime " );
|
||||||
if( cnt & CONTENTS_WATER) Msg( "water " );
|
if( cnt & CONTENTS_WATER) com.strcat( contents, "water " );
|
||||||
if( cnt & CONTENTS_SKY) Msg( "sky " );
|
if( cnt & CONTENTS_SKY) com.strcat( contents, "sky " );
|
||||||
|
|
||||||
if( cnt & CONTENTS_MIST) Msg( "mist " );
|
if( cnt & CONTENTS_MIST) com.strcat( contents, "mist " );
|
||||||
if( cnt & CONTENTS_FOG) Msg( "fog " );
|
if( cnt & CONTENTS_FOG) com.strcat( contents, "fog " );
|
||||||
if( cnt & CONTENTS_AREAPORTAL) Msg( "areaportal " );
|
if( cnt & CONTENTS_AREAPORTAL) com.strcat( contents, "areaportal " );
|
||||||
if( cnt & CONTENTS_PLAYERCLIP) Msg( "playerclip " );
|
if( cnt & CONTENTS_PLAYERCLIP) com.strcat( contents, "playerclip " );
|
||||||
if( cnt & CONTENTS_MONSTERCLIP) Msg(" monsterclip " );
|
if( cnt & CONTENTS_MONSTERCLIP) com.strcat( contents, " monsterclip " );
|
||||||
if( cnt & CONTENTS_CLIP) Msg( "clip " );
|
if( cnt & CONTENTS_CLIP) com.strcat( contents, "clip " );
|
||||||
if( cnt & CONTENTS_ORIGIN) Msg(" origin" );
|
if( cnt & CONTENTS_ORIGIN) com.strcat( contents, " origin" );
|
||||||
if( cnt & CONTENTS_BODY) Sys_Error("\nCONTENTS_BODY detected\n" );
|
if( cnt & CONTENTS_BODY) Sys_Error("\nCONTENTS_BODY detected\n" );
|
||||||
if( cnt & CONTENTS_CORPSE) Sys_Error("\nCONTENTS_CORPSE detected\n" );
|
if( cnt & CONTENTS_CORPSE) Sys_Error("\nCONTENTS_CORPSE detected\n" );
|
||||||
if( cnt & CONTENTS_DETAIL) Msg(" detail " );
|
if( cnt & CONTENTS_DETAIL) com.strcat( contents, " detail " );
|
||||||
if( cnt & CONTENTS_TRANSLUCENT) Msg( "translucent " );
|
if( cnt & CONTENTS_TRANSLUCENT) com.strcat( contents, "translucent " );
|
||||||
if( cnt & CONTENTS_LADDER) Msg( "ladder " );
|
if( cnt & CONTENTS_LADDER) com.strcat( contents, "ladder " );
|
||||||
if( cnt & CONTENTS_TRIGGER) Msg( "trigger " );
|
if( cnt & CONTENTS_TRIGGER) com.strcat( contents, "trigger " );
|
||||||
Msg( "\n" );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//====================================================================
|
//====================================================================
|
||||||
|
@ -268,6 +267,7 @@ int BrushContents( mapbrush_t *b )
|
||||||
{
|
{
|
||||||
int contents;
|
int contents;
|
||||||
int i, trans;
|
int i, trans;
|
||||||
|
string cnt1, cnt2;
|
||||||
side_t *s;
|
side_t *s;
|
||||||
|
|
||||||
s = &b->original_sides[0];
|
s = &b->original_sides[0];
|
||||||
|
@ -279,10 +279,13 @@ int BrushContents( mapbrush_t *b )
|
||||||
{
|
{
|
||||||
s = &b->original_sides[i];
|
s = &b->original_sides[i];
|
||||||
trans |= dshaders[texinfo[s->texinfo].shadernum].surfaceFlags;
|
trans |= dshaders[texinfo[s->texinfo].shadernum].surfaceFlags;
|
||||||
if( s->contents != contents && !( trans & SURF_NODRAW ))
|
if(( s->contents != contents ) && ( trans & SURF_NODRAW ) == 0 )
|
||||||
{
|
{
|
||||||
|
CntString( s->contents, cnt1 );
|
||||||
|
CntString( contents, cnt2 );
|
||||||
|
|
||||||
// nodraw textures are ignored
|
// nodraw textures are ignored
|
||||||
MsgDev( D_WARN, "Entity %i, Brush %i: mixed face contents\n", b->entitynum, b->brushnum );
|
MsgDev( D_WARN, "Entity %i, Brush %i: mixed face contents ( %s) and ( %s)\n", b->entitynum, b->brushnum, cnt1, cnt2 );
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -699,7 +702,7 @@ void ParseBrush( bsp_entity_t *mapent )
|
||||||
planenum = PlaneFromPoints( planepts[0], planepts[1], planepts[2] );
|
planenum = PlaneFromPoints( planepts[0], planepts[1], planepts[2] );
|
||||||
if( planenum == -1 )
|
if( planenum == -1 )
|
||||||
{
|
{
|
||||||
Msg( "Entity %i, Brush %i: plane with no normal\n", b->entitynum, b->brushnum );
|
MsgDev( D_ERROR, "Entity %i, Brush %i: plane with no normal\n", b->entitynum, b->brushnum );
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -778,7 +781,7 @@ void ParseBrush( bsp_entity_t *mapent )
|
||||||
b->contents = BrushContents( b );
|
b->contents = BrushContents( b );
|
||||||
|
|
||||||
// create windings for sides and bounds for brush
|
// create windings for sides and bounds for brush
|
||||||
if(!MakeBrushWindings( b ))
|
if( !MakeBrushWindings( b ))
|
||||||
{
|
{
|
||||||
// brush outside of the world, remove
|
// brush outside of the world, remove
|
||||||
b->numsides = 0;
|
b->numsides = 0;
|
||||||
|
|
|
@ -173,24 +173,22 @@ winding_t *BaseWindingForPlane (vec3_t normal, vec_t dist)
|
||||||
vec3_t org, vright, vup;
|
vec3_t org, vright, vup;
|
||||||
winding_t *w;
|
winding_t *w;
|
||||||
|
|
||||||
// find the major axis
|
// find the major axis
|
||||||
|
|
||||||
max = -BOGUS_RANGE;
|
max = -BOGUS_RANGE;
|
||||||
x = -1;
|
x = -1;
|
||||||
for (i=0 ; i<3; i++)
|
for( i = 0; i < 3; i++ )
|
||||||
{
|
{
|
||||||
v = fabs(normal[i]);
|
v = fabs( normal[i] );
|
||||||
if (v > max)
|
if( v > max )
|
||||||
{
|
{
|
||||||
x = i;
|
x = i;
|
||||||
max = v;
|
max = v;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (x==-1)
|
if( x == -1 ) Sys_Error ("BaseWindingForPlane: no axis found");
|
||||||
Sys_Error ("BaseWindingForPlane: no axis found");
|
|
||||||
|
|
||||||
VectorCopy (vec3_origin, vup);
|
VectorClear( vup );
|
||||||
switch (x)
|
switch( x )
|
||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
case 1:
|
case 1:
|
||||||
|
@ -201,31 +199,28 @@ winding_t *BaseWindingForPlane (vec3_t normal, vec_t dist)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
v = DotProduct (vup, normal);
|
v = DotProduct( vup, normal );
|
||||||
VectorMA (vup, -v, normal, vup);
|
VectorMA( vup, -v, normal, vup );
|
||||||
VectorNormalize (vup);
|
VectorNormalize( vup );
|
||||||
|
VectorScale( normal, dist, org );
|
||||||
|
CrossProduct( vup, normal, vright );
|
||||||
|
VectorScale( vup, BOGUS_RANGE, vup );
|
||||||
|
VectorScale( vright, BOGUS_RANGE, vright );
|
||||||
|
|
||||||
VectorScale (normal, dist, org);
|
// project a really big axis aligned box onto the plane
|
||||||
|
w = AllocWinding( 4 );
|
||||||
|
|
||||||
CrossProduct (vup, normal, vright);
|
VectorSubtract( org, vright, w->p[0] );
|
||||||
|
VectorAdd( w->p[0], vup, w->p[0] );
|
||||||
|
|
||||||
VectorScale (vup, BOGUS_RANGE, vup);
|
VectorAdd( org, vright, w->p[1] );
|
||||||
VectorScale (vright, BOGUS_RANGE, vright);
|
VectorAdd( w->p[1], vup, w->p[1] );
|
||||||
|
|
||||||
// project a really big axis aligned box onto the plane
|
VectorAdd( org, vright, w->p[2] );
|
||||||
w = AllocWinding (4);
|
VectorSubtract( w->p[2], vup, w->p[2] );
|
||||||
|
|
||||||
VectorSubtract (org, vright, w->p[0]);
|
VectorSubtract( org, vright, w->p[3] );
|
||||||
VectorAdd (w->p[0], vup, w->p[0]);
|
VectorSubtract( w->p[3], vup, w->p[3] );
|
||||||
|
|
||||||
VectorAdd (org, vright, w->p[1]);
|
|
||||||
VectorAdd (w->p[1], vup, w->p[1]);
|
|
||||||
|
|
||||||
VectorAdd (org, vright, w->p[2]);
|
|
||||||
VectorSubtract (w->p[2], vup, w->p[2]);
|
|
||||||
|
|
||||||
VectorSubtract (org, vright, w->p[3]);
|
|
||||||
VectorSubtract (w->p[3], vup, w->p[3]);
|
|
||||||
|
|
||||||
w->numpoints = 4;
|
w->numpoints = 4;
|
||||||
|
|
||||||
|
@ -389,29 +384,29 @@ void ClipWindingEpsilon (winding_t *in, vec3_t normal, vec_t dist,
|
||||||
ChopWindingInPlace
|
ChopWindingInPlace
|
||||||
=============
|
=============
|
||||||
*/
|
*/
|
||||||
void ChopWindingInPlace (winding_t **inout, vec3_t normal, vec_t dist, vec_t epsilon)
|
void ChopWindingInPlace( winding_t **inout, vec3_t normal, vec_t dist, vec_t epsilon )
|
||||||
{
|
{
|
||||||
winding_t *in;
|
winding_t *in;
|
||||||
vec_t dists[MAX_POINTS_ON_WINDING+4];
|
vec_t dists[MAX_POINTS_ON_WINDING+4];
|
||||||
int sides[MAX_POINTS_ON_WINDING+4];
|
int sides[MAX_POINTS_ON_WINDING+4];
|
||||||
int counts[3];
|
int counts[3];
|
||||||
static vec_t dot; // VC 4.2 optimizer bug if not static
|
static vec_t dot; // VC 4.2 optimizer bug if not static
|
||||||
int i, j;
|
int i, j;
|
||||||
vec_t *p1, *p2;
|
vec_t *p1, *p2;
|
||||||
vec3_t mid;
|
vec3_t mid;
|
||||||
winding_t *f;
|
winding_t *f;
|
||||||
int maxpts;
|
int maxpts;
|
||||||
|
|
||||||
in = *inout;
|
in = *inout;
|
||||||
counts[0] = counts[1] = counts[2] = 0;
|
counts[0] = counts[1] = counts[2] = 0;
|
||||||
|
|
||||||
// determine sides for each point
|
// determine sides for each point
|
||||||
for (i=0 ; i<in->numpoints ; i++)
|
for( i = 0; i < in->numpoints; i++ )
|
||||||
{
|
{
|
||||||
dot = DotProduct (in->p[i], normal);
|
dot = DotProduct( in->p[i], normal );
|
||||||
dot -= dist;
|
dot -= dist;
|
||||||
dists[i] = dot;
|
dists[i] = dot;
|
||||||
if (dot > epsilon)
|
if( dot > epsilon )
|
||||||
sides[i] = SIDE_FRONT;
|
sides[i] = SIDE_FRONT;
|
||||||
else if (dot < -epsilon)
|
else if (dot < -epsilon)
|
||||||
sides[i] = SIDE_BACK;
|
sides[i] = SIDE_BACK;
|
||||||
|
@ -424,14 +419,13 @@ void ChopWindingInPlace (winding_t **inout, vec3_t normal, vec_t dist, vec_t eps
|
||||||
sides[i] = sides[0];
|
sides[i] = sides[0];
|
||||||
dists[i] = dists[0];
|
dists[i] = dists[0];
|
||||||
|
|
||||||
if (!counts[0])
|
if( !counts[0] )
|
||||||
{
|
{
|
||||||
FreeWinding (in);
|
FreeWinding (in);
|
||||||
*inout = NULL;
|
*inout = NULL;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (!counts[1])
|
if( !counts[1] ) return; // inout stays the same
|
||||||
return; // inout stays the same
|
|
||||||
|
|
||||||
maxpts = in->numpoints+4; // cant use counts[0]+2 because
|
maxpts = in->numpoints+4; // cant use counts[0]+2 because
|
||||||
// of fp grouping errors
|
// of fp grouping errors
|
||||||
|
|
Reference in New Issue