tron@1399: typedef struct WaterDrawTileStruct { tron@1399: byte delta_x; tron@1399: byte delta_y; tron@1399: byte delta_z; tron@1399: byte width; tron@1399: byte height; tron@1399: byte unk; tron@1399: SpriteID image; tron@1399: } WaterDrawTileStruct; darkvater@222: tron@1399: #define BEGIN(image) { 0, 0, 0, 0, 0, 0, image } tron@1399: #define END(y) { 0x80, y, 0, 0, 0, 0, 0 } truelight@0: tron@1399: static const WaterDrawTileStruct _shipdepot_display_seq_1[] = { tron@1399: BEGIN(0xFDD), tron@1399: { 0, 15, 0, 16, 1, 0x14, 0x8FE8 }, tron@1399: END(0) truelight@0: }; truelight@0: tron@1399: static const WaterDrawTileStruct _shipdepot_display_seq_2[] = { tron@1399: BEGIN(0xFDD), tron@1399: { 0, 0, 0, 16, 1, 0x14, 0xFEA }, tron@1399: { 0, 15, 0, 16, 1, 0x14, 0x8FE6 }, tron@1399: END(0) truelight@0: }; truelight@0: tron@1399: static const WaterDrawTileStruct _shipdepot_display_seq_3[] = { tron@1399: BEGIN(0xFDD), tron@1399: { 15, 0, 0, 1, 0x10, 0x14, 0x8FE9 }, tron@1399: END(0) truelight@0: }; truelight@0: tron@1399: static const WaterDrawTileStruct _shipdepot_display_seq_4[] = { tron@1399: BEGIN(0xFDD), tron@1399: { 0, 0, 0, 1, 16, 0x14, 0xFEB }, tron@1399: { 15, 0, 0, 1, 16, 0x14, 0x8FE7 }, tron@1399: END(0) tron@1399: }; tron@1399: tron@1399: static const WaterDrawTileStruct* const _shipdepot_display_seq[] = { truelight@0: _shipdepot_display_seq_1, truelight@0: _shipdepot_display_seq_2, truelight@0: _shipdepot_display_seq_3, truelight@0: _shipdepot_display_seq_4, truelight@0: }; truelight@0: tron@1399: static const WaterDrawTileStruct _shiplift_display_seq_0[] = { tron@1399: BEGIN(SPR_CANALS_BASE + 6), tron@1399: { 0, 0, 0, 0x10, 1, 0x14, SPR_CANALS_BASE + 9 + 0 + 1 }, tron@1399: { 0, 0xF, 0, 0x10, 1, 0x14, SPR_CANALS_BASE + 9 + 4 + 1 }, tron@1399: END(0) truelight@0: }; truelight@0: tron@1399: static const WaterDrawTileStruct _shiplift_display_seq_1[] = { tron@1399: BEGIN(SPR_CANALS_BASE + 5), tron@1399: { 0, 0, 0, 1, 0x10, 0x14, SPR_CANALS_BASE + 9 + 0 }, tron@1399: { 0xF, 0, 0, 1, 0x10, 0x14, SPR_CANALS_BASE + 9 + 4 }, tron@1399: END(0) truelight@0: }; truelight@0: tron@1399: static const WaterDrawTileStruct _shiplift_display_seq_2[] = { tron@1399: BEGIN(SPR_CANALS_BASE + 7), tron@1399: { 0, 0, 0, 0x10, 1, 0x14, SPR_CANALS_BASE + 9 + 0 + 2 }, tron@1399: { 0, 0xF, 0, 0x10, 1, 0x14, SPR_CANALS_BASE + 9 + 4 + 2 }, tron@1399: END(0) truelight@0: }; truelight@0: tron@1399: static const WaterDrawTileStruct _shiplift_display_seq_3[] = { tron@1399: BEGIN(SPR_CANALS_BASE + 8), tron@1399: { 0, 0, 0, 1, 0x10, 0x14, SPR_CANALS_BASE + 9 + 0 + 3 }, tron@1399: { 0xF, 0, 0, 1, 0x10, 0x14, SPR_CANALS_BASE + 9 + 4 + 3 }, tron@1399: END(0) truelight@0: }; truelight@0: tron@1399: static const WaterDrawTileStruct _shiplift_display_seq_0b[] = { tron@1399: BEGIN(0xFDD), tron@1399: { 0, 0, 0, 0x10, 1, 0x14, SPR_CANALS_BASE + 9 + 8 + 1 }, tron@1399: { 0, 0xF, 0, 0x10, 1, 0x14, SPR_CANALS_BASE + 9 + 12 + 1 }, tron@1399: END(0) truelight@0: }; truelight@0: tron@1399: static const WaterDrawTileStruct _shiplift_display_seq_1b[] = { tron@1399: BEGIN(0xFDD), tron@1399: { 0, 0, 0, 0x1, 0x10, 0x14, SPR_CANALS_BASE + 9 + 8 }, tron@1399: { 0xF, 0, 0, 0x1, 0x10, 0x14, SPR_CANALS_BASE + 9 + 12 }, tron@1399: END(0) tron@1399: }; tron@1399: tron@1399: static const WaterDrawTileStruct _shiplift_display_seq_2b[] = { tron@1399: BEGIN(0xFDD), tron@1399: { 0, 0, 0, 0x10, 1, 0x14, SPR_CANALS_BASE + 9 + 8 + 2 }, tron@1399: { 0, 0xF, 0, 0x10, 1, 0x14, SPR_CANALS_BASE + 9 + 12 + 2 }, tron@1399: END(0) tron@1399: }; tron@1399: tron@1399: static const WaterDrawTileStruct _shiplift_display_seq_3b[] = { tron@1399: BEGIN(0xFDD), tron@1399: { 0, 0, 0, 1, 0x10, 0x14, SPR_CANALS_BASE + 9 + 8 + 3 }, tron@1399: { 0xF, 0, 0, 1, 0x10, 0x14, SPR_CANALS_BASE + 9 + 12 + 3 }, tron@1399: END(0) tron@1399: }; tron@1399: tron@1399: static const WaterDrawTileStruct _shiplift_display_seq_0t[] = { tron@1399: BEGIN(0xFDD), tron@1399: { 0, 0, 0, 0x10, 1, 0x14, SPR_CANALS_BASE + 9 + 16 + 1 }, tron@1399: { 0, 0xF, 0, 0x10, 1, 0x14, SPR_CANALS_BASE + 9 + 20 + 1 }, tron@1399: END(8) tron@1399: }; tron@1399: tron@1399: static const WaterDrawTileStruct _shiplift_display_seq_1t[] = { tron@1399: BEGIN(0xFDD), tron@1399: { 0, 0, 0, 0x1, 0x10, 0x14, SPR_CANALS_BASE + 9 + 16 }, tron@1399: { 0xF, 0, 0, 0x1, 0x10, 0x14, SPR_CANALS_BASE + 9 + 20 }, tron@1399: END(8) tron@1399: }; tron@1399: tron@1399: static const WaterDrawTileStruct _shiplift_display_seq_2t[] = { tron@1399: BEGIN(0xFDD), tron@1399: { 0, 0, 0, 0x10, 1, 0x14, SPR_CANALS_BASE + 9 + 16 + 2 }, tron@1399: { 0, 0xF, 0, 0x10, 1, 0x14, SPR_CANALS_BASE + 9 + 20 + 2 }, tron@1399: END(8) tron@1399: }; tron@1399: tron@1399: static const WaterDrawTileStruct _shiplift_display_seq_3t[] = { tron@1399: BEGIN(0xFDD), tron@1399: { 0, 0, 0, 1, 0x10, 0x14, SPR_CANALS_BASE + 9 + 16 + 3 }, tron@1399: { 0xF, 0, 0, 1, 0x10, 0x14, SPR_CANALS_BASE + 9 + 20 + 3 }, tron@1399: END(8) tron@1399: }; tron@1399: tron@1399: static const WaterDrawTileStruct* const _shiplift_display_seq[] = { truelight@0: _shiplift_display_seq_0, truelight@0: _shiplift_display_seq_1, truelight@0: _shiplift_display_seq_2, truelight@0: _shiplift_display_seq_3, truelight@0: truelight@0: _shiplift_display_seq_0b, truelight@0: _shiplift_display_seq_1b, truelight@0: _shiplift_display_seq_2b, truelight@0: _shiplift_display_seq_3b, truelight@0: truelight@0: _shiplift_display_seq_0t, truelight@0: _shiplift_display_seq_1t, truelight@0: _shiplift_display_seq_2t, truelight@0: _shiplift_display_seq_3t, truelight@0: }; truelight@0: tron@1399: #undef BEGIN tron@1399: #undef END tron@1399: truelight@0: truelight@0: static const SpriteID _water_shore_sprites[15] = { truelight@0: 0, 0xFDF, 0xFE0, 0xFE4, 0xFDE, 0, 0xFE2, 0, 0xFE1, 0xFE5, 0, 0, 0xFE3, 0, 0 truelight@0: };