diff --git a/assets/item_finish.png b/assets/item_finish.png new file mode 100644 index 0000000..c439dad Binary files /dev/null and b/assets/item_finish.png differ diff --git a/images.h b/images.h index e95990b..3a7482e 100644 --- a/images.h +++ b/images.h @@ -511,7 +511,31 @@ SFG_PROGRAM_MEMORY uint8_t SFG_itemSprites[][SFG_TEXTURE_STORE_SIZE] = 16,0,0,0,0,0,17,22,36,0,0,0,0,1,167,209,0,0,0,0,0,0,0,1,17,0,0,0,0,0,17,16,0,0, 0,0,0,0,0,0,0 }, - { // 6, access card + { // 6, finish teleport +0,151,3,175,6,143,4,5,134,63,55,127,2,61,71,45,51,51,51,48,0,51,51,51,0,0,51,51, +48,0,0,3,51,51,51,48,0,51,51,51,0,0,51,51,48,0,0,3,51,51,51,4,96,3,51,48,68,96, +3,51,12,192,0,0,51,51,48,71,118,0,51,4,119,118,0,51,6,108,12,192,51,0,2,34,34, +32,0,34,34,34,32,0,4,70,198,96,0,36,68,68,68,68,68,68,68,68,68,68,108,68,199, +112,0,66,34,33,17,17,17,85,85,17,17,21,0,116,103,112,0,66,41,153,30,234,85,133, +17,17,221,187,96,34,38,96,0,73,225,85,17,133,17,24,17,85,139,136,108,34,34,32,0, +66,33,136,21,85,85,139,136,187,191,248,108,102,98,32,0,73,225,136,21,81,21,216, +255,251,191,255,108,114,44,192,0,66,90,187,234,81,17,21,85,136,187,136,98,118, +39,98,0,66,42,187,170,169,225,21,85,17,253,221,98,118,39,98,0,66,170,187,154, +174,17,21,85,17,255,223,98,118,39,98,0,66,170,169,154,174,17,21,85,21,139,136, +98,118,39,98,0,74,158,158,21,81,17,85,136,136,184,255,98,118,39,98,0,66,153,153, +21,129,21,88,136,136,184,255,98,118,39,98,0,66,153,153,21,129,21,88,136,136,184, +255,98,118,39,98,0,66,41,153,153,161,17,21,85,21,136,136,98,118,39,98,0,66,89, +153,158,169,17,24,17,17,219,189,98,118,39,98,0,66,37,170,170,170,225,24,17,17, +219,189,98,118,39,98,0,74,162,169,238,88,17,85,85,136,139,187,98,118,39,98,0,69, +165,129,17,85,21,216,221,251,187,255,98,114,34,192,0,66,34,129,17,85,85,88,136, +187,191,248,108,119,68,64,0,74,81,129,17,24,17,88,17,85,88,85,108,100,71,64,0, +74,169,153,30,154,17,21,85,17,187,221,108,100,103,112,0,66,34,33,17,17,17,17,17, +17,21,81,32,100,103,112,0,36,68,68,68,68,68,68,68,68,68,68,98,116,199,112,51,0, +2,34,34,32,0,34,34,34,32,0,6,71,199,96,51,51,48,71,118,0,51,4,119,118,0,51,4, +124,6,96,51,51,51,4,96,3,51,48,68,96,3,51,7,96,2,32,51,51,51,48,0,51,51,51,0,0, +51,51,48,0,0,3 + }, + { // 7, access card 175,0,21,45,44,23,46,2,19,34,69,22,68,60,131,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17,17,17,17,17,17,17,0,0,0,0,0,0,0,0,1, 68,17,24,102,101,86,97,0,0,0,0,0,0,0,0,1,68,17,24,102,85,86,101,16,0,0,0,0,0,0, diff --git a/levels.h b/levels.h index 87872ca..2423b00 100644 --- a/levels.h +++ b/levels.h @@ -93,15 +93,16 @@ typedef struct #define SFG_LEVEL_ELEMENT_ROCKETS 0x04 #define SFG_LEVEL_ELEMENT_PLASMA 0x05 #define SFG_LEVEL_ELEMENT_TREE 0x06 -#define SFG_LEVEL_ELEMENT_CARD0 0x07 ///< Access card, unlocks doors with lock. -#define SFG_LEVEL_ELEMENT_CARD1 0x08 -#define SFG_LEVEL_ELEMENT_CARD2 0x09 -#define SFG_LEVEL_ELEMENT_LOCK0 0x0a /**< Special level element that must be +#define SFG_LEVEL_ELEMENT_FINISH 0x07 +#define SFG_LEVEL_ELEMENT_CARD0 0x08 ///< Access card, unlocks doors with lock. +#define SFG_LEVEL_ELEMENT_CARD1 0x09 +#define SFG_LEVEL_ELEMENT_CARD2 0x0a +#define SFG_LEVEL_ELEMENT_LOCK0 0x0b /**< Special level element that must be placed on a tile with door. This door is then unlocked by taking the corresponding access card. */ -#define SFG_LEVEL_ELEMENT_LOCK1 0x0b -#define SFG_LEVEL_ELEMENT_LOCK2 0x0c +#define SFG_LEVEL_ELEMENT_LOCK1 0x0c +#define SFG_LEVEL_ELEMENT_LOCK2 0x0d /* Monsters have lower 4 bits zero and are only distinguished by the 4 upper @@ -293,7 +294,7 @@ SFG_PROGRAM_MEMORY SFG_Level SFG_level0 = {SFG_LEVEL_ELEMENT_CARD0, {13, 20}}, {SFG_LEVEL_ELEMENT_CARD1, {14, 20}}, {SFG_LEVEL_ELEMENT_CARD2, {13, 21}}, {SFG_LEVEL_ELEMENT_NONE, {0, 0}}, {SFG_LEVEL_ELEMENT_LOCK1, {3, 21}}, {SFG_LEVEL_ELEMENT_NONE, {0, 0}}, - {SFG_LEVEL_ELEMENT_NONE, {0, 0}}, {SFG_LEVEL_ELEMENT_NONE, {0, 0}}, + {SFG_LEVEL_ELEMENT_FINISH, {20, 12}}, {SFG_LEVEL_ELEMENT_NONE, {0, 0}}, {SFG_LEVEL_ELEMENT_NONE, {0, 0}}, {SFG_LEVEL_ELEMENT_NONE, {0, 0}}, {SFG_LEVEL_ELEMENT_NONE, {0, 0}}, {SFG_LEVEL_ELEMENT_NONE, {0, 0}}, {SFG_LEVEL_ELEMENT_NONE, {0, 0}}, {SFG_LEVEL_ELEMENT_NONE, {0, 0}}, diff --git a/main.c b/main.c index 1cfe545..abd0b3a 100755 --- a/main.c +++ b/main.c @@ -2991,6 +2991,8 @@ void SFG_draw() if (e.type == SFG_LEVEL_ELEMENT_TREE) size = 2; + else if (e.type == SFG_LEVEL_ELEMENT_FINISH) + size = 3; RCL_PixelInfo p = RCL_mapToScreen(