diff --git a/makefile.gfx b/makefile.gfx index d9f6ab437..37a98fc77 100644 --- a/makefile.gfx +++ b/makefile.gfx @@ -492,7 +492,8 @@ cleanmapscreens: @$(ECHO) Map screens Cleaned $(MAPSCREENS_OUT_DIR)/%.gfx : $(MAPSCREENS_IN_DIR)/%.tga - @$(TGA2GFX) $< $@ + @$(TGA2GFX) $< a.tmp + @$(LZNP) a.tmp $@ >nul GRAF_DIRS_TO_MAKE += $(MAPSCREENS_OUT_DIR) GFX_DATA_OUT += $(MAPSCREENS_OUT) diff --git a/source/map/map.cpp b/source/map/map.cpp index 23563d372..9c704f4cd 100644 --- a/source/map/map.cpp +++ b/source/map/map.cpp @@ -70,6 +70,7 @@ #include "fma\fma.h" #endif +#include "utils\lznp.h" /* Std Lib ------- */ @@ -131,44 +132,77 @@ CMapScene MapScene; +CMapScene::sMapLevelGfxTable CMapScene::s_GfxTable[MAP_GFX_MAX]= +{ + {MAP_C1_L1_GFX,0}, + {MAP_C1_L2_GFX,0}, + {MAP_C1_L3_GFX,0}, + {MAP_C1_L4_GFX,0}, + {MAP_C1_FAIR_GFX,0}, + + {MAP_C2_L1_GFX,0}, + {MAP_C2_L2_GFX,0}, + {MAP_C2_L3_GFX,0}, + {MAP_C2_L4_GFX,0}, + {MAP_C2_FAIR_GFX,0}, + + {MAP_C3_L1_GFX,0}, + {MAP_C3_L2_GFX,0}, + {MAP_C3_L3_GFX,0}, + {MAP_C3_L4_GFX,0}, + {MAP_C3_FAIR_GFX,0}, + + {MAP_C4_L1_GFX,0}, + {MAP_C4_L2_GFX,0}, + {MAP_C4_L3_GFX,0}, + {MAP_C4_L4_GFX,0}, + {MAP_C4_FAIR_GFX,0}, + + {MAP_C5_L1_GFX,0}, + {MAP_C5_L2_GFX,0}, + {MAP_C5_L3_GFX,0}, + {MAP_C5_L4_GFX,0}, + {MAP_C5_FAIR_GFX,0}, +}; + CMapScene::sMapLevelData CMapScene::s_mapLevelData[MAP_NUM_CHAPTERS][MAP_NUM_LEVELS_PER_CHAPTER]= { - // mapFile globalLevelNumber spatulaOrTokenCounts questItemFrame kelpWorldLevel + // mapFile Gfx, globalLevelNumber spatulaOrTokenCounts questItemFrame kelpWorldLevel { - { MAP_C1_L1_GFX, 0, CHAPTER01_LEVEL01_INF_TOTAL_ITEM_GOLDEN_SPATULA, FRM__C1_L1_QUEST_ITEM, false }, - { MAP_C1_L2_GFX, 1, CHAPTER01_LEVEL02_INF_TOTAL_ITEM_GOLDEN_SPATULA, FRM__C1_L2_QUEST_ITEM, false }, - { MAP_C1_L3_GFX, 2, CHAPTER01_LEVEL03_INF_TOTAL_ITEM_GOLDEN_SPATULA, FRM__C1_L3_QUEST_ITEM, false }, - { MAP_C1_L4_GFX, 3, CHAPTER01_LEVEL04_INF_TOTAL_ITEM_GOLDEN_SPATULA, FRM__C1_L4_QUEST_ITEM, false }, - { MAP_C1_FAIR_GFX, 4, CHAPTER06_LEVEL01_INF_TOTAL_ITEM_KELP_TOKEN, -1, true }, + { MAP_GFX_C1_L1, 0, CHAPTER01_LEVEL01_INF_TOTAL_ITEM_GOLDEN_SPATULA, FRM__C1_L1_QUEST_ITEM, false }, + { MAP_GFX_C1_L2, 1, CHAPTER01_LEVEL02_INF_TOTAL_ITEM_GOLDEN_SPATULA, FRM__C1_L2_QUEST_ITEM, false }, + { MAP_GFX_C1_L3, 2, CHAPTER01_LEVEL03_INF_TOTAL_ITEM_GOLDEN_SPATULA, FRM__C1_L3_QUEST_ITEM, false }, + { MAP_GFX_C1_L4, 3, CHAPTER01_LEVEL04_INF_TOTAL_ITEM_GOLDEN_SPATULA, FRM__C1_L4_QUEST_ITEM, false }, + { MAP_GFX_C1_FAIR, 4, CHAPTER06_LEVEL01_INF_TOTAL_ITEM_KELP_TOKEN, -1, true }, }, { - { MAP_C2_L1_GFX, 5, CHAPTER02_LEVEL01_INF_TOTAL_ITEM_GOLDEN_SPATULA, FRM__C2_L1_QUEST_ITEM, false }, - { MAP_C2_L2_GFX, 6, CHAPTER02_LEVEL02_INF_TOTAL_ITEM_GOLDEN_SPATULA, FRM__C2_L2_QUEST_ITEM, false }, - { MAP_C2_L3_GFX, 7, CHAPTER02_LEVEL03_INF_TOTAL_ITEM_GOLDEN_SPATULA, FRM__C2_L3_QUEST_ITEM, false }, - { MAP_C2_L4_GFX, 8, CHAPTER02_LEVEL04_INF_TOTAL_ITEM_GOLDEN_SPATULA, FRM__C2_L4_QUEST_ITEM, false }, - { MAP_C2_FAIR_GFX, 9, CHAPTER06_LEVEL02_INF_TOTAL_ITEM_KELP_TOKEN, -1, true }, + { MAP_GFX_C2_L1, 5, CHAPTER02_LEVEL01_INF_TOTAL_ITEM_GOLDEN_SPATULA, FRM__C2_L1_QUEST_ITEM, false }, + { MAP_GFX_C2_L2, 6, CHAPTER02_LEVEL02_INF_TOTAL_ITEM_GOLDEN_SPATULA, FRM__C2_L2_QUEST_ITEM, false }, + { MAP_GFX_C2_L3, 7, CHAPTER02_LEVEL03_INF_TOTAL_ITEM_GOLDEN_SPATULA, FRM__C2_L3_QUEST_ITEM, false }, + { MAP_GFX_C2_L4, 8, CHAPTER02_LEVEL04_INF_TOTAL_ITEM_GOLDEN_SPATULA, FRM__C2_L4_QUEST_ITEM, false }, + { MAP_GFX_C2_FAIR, 9, CHAPTER06_LEVEL02_INF_TOTAL_ITEM_KELP_TOKEN, -1, true }, }, { - { MAP_C3_L1_GFX, 10, CHAPTER03_LEVEL01_INF_TOTAL_ITEM_GOLDEN_SPATULA, FRM__C3_L1_QUEST_ITEM, false }, - { MAP_C3_L2_GFX, 11, CHAPTER03_LEVEL02_INF_TOTAL_ITEM_GOLDEN_SPATULA, FRM__C3_L2_QUEST_ITEM, false }, - { MAP_C3_L3_GFX, 12, CHAPTER03_LEVEL03_INF_TOTAL_ITEM_GOLDEN_SPATULA, FRM__C3_L3_QUEST_ITEM, false }, - { MAP_C3_L4_GFX, 13, CHAPTER03_LEVEL04_INF_TOTAL_ITEM_GOLDEN_SPATULA, FRM__C3_L4_QUEST_ITEM, false }, - { MAP_C3_FAIR_GFX, 14, CHAPTER06_LEVEL03_INF_TOTAL_ITEM_KELP_TOKEN, -1, true }, + { MAP_GFX_C3_L1, 10, CHAPTER03_LEVEL01_INF_TOTAL_ITEM_GOLDEN_SPATULA, FRM__C3_L1_QUEST_ITEM, false }, + { MAP_GFX_C3_L2, 11, CHAPTER03_LEVEL02_INF_TOTAL_ITEM_GOLDEN_SPATULA, FRM__C3_L2_QUEST_ITEM, false }, + { MAP_GFX_C3_L3, 12, CHAPTER03_LEVEL03_INF_TOTAL_ITEM_GOLDEN_SPATULA, FRM__C3_L3_QUEST_ITEM, false }, + { MAP_GFX_C3_L4, 13, CHAPTER03_LEVEL04_INF_TOTAL_ITEM_GOLDEN_SPATULA, FRM__C3_L4_QUEST_ITEM, false }, + { MAP_GFX_C3_FAIR, 14, CHAPTER06_LEVEL03_INF_TOTAL_ITEM_KELP_TOKEN, -1, true }, }, { - { MAP_C4_L1_GFX, 15, CHAPTER04_LEVEL01_INF_TOTAL_ITEM_GOLDEN_SPATULA, FRM__C4_QUEST_ITEM_1, false }, - { MAP_C4_L2_GFX, 16, CHAPTER04_LEVEL02_INF_TOTAL_ITEM_GOLDEN_SPATULA, FRM__C4_QUEST_ITEM_1, false }, - { MAP_C4_L3_GFX, 17, CHAPTER04_LEVEL03_INF_TOTAL_ITEM_GOLDEN_SPATULA, FRM__C4_QUEST_ITEM_1, false }, - { MAP_C4_L4_GFX, 18, CHAPTER04_LEVEL04_INF_TOTAL_ITEM_GOLDEN_SPATULA, FRM__C4_QUEST_ITEM_1, false }, - { MAP_C4_FAIR_GFX, 19, CHAPTER06_LEVEL04_INF_TOTAL_ITEM_KELP_TOKEN, -1, true }, + { MAP_GFX_C4_L1, 15, CHAPTER04_LEVEL01_INF_TOTAL_ITEM_GOLDEN_SPATULA, FRM__C4_QUEST_ITEM_1, false }, + { MAP_GFX_C4_L2, 16, CHAPTER04_LEVEL02_INF_TOTAL_ITEM_GOLDEN_SPATULA, FRM__C4_QUEST_ITEM_1, false }, + { MAP_GFX_C4_L3, 17, CHAPTER04_LEVEL03_INF_TOTAL_ITEM_GOLDEN_SPATULA, FRM__C4_QUEST_ITEM_1, false }, + { MAP_GFX_C4_L4, 18, CHAPTER04_LEVEL04_INF_TOTAL_ITEM_GOLDEN_SPATULA, FRM__C4_QUEST_ITEM_1, false }, + { MAP_GFX_C4_FAIR, 19, CHAPTER06_LEVEL04_INF_TOTAL_ITEM_KELP_TOKEN, -1, true }, }, { - { MAP_C5_L1_GFX, 20, CHAPTER05_LEVEL01_INF_TOTAL_ITEM_GOLDEN_SPATULA, FRM__C5_L1_QUEST_ITEM, false }, - { MAP_C5_L2_GFX, 21, CHAPTER05_LEVEL02_INF_TOTAL_ITEM_GOLDEN_SPATULA, FRM__C5_L2_QUEST_ITEM, false }, - { MAP_C5_L3_GFX, 22, CHAPTER05_LEVEL03_INF_TOTAL_ITEM_GOLDEN_SPATULA, FRM__C5_L3_QUEST_ITEM, false }, - { MAP_C5_L4_GFX, 23, CHAPTER05_LEVEL04_INF_TOTAL_ITEM_GOLDEN_SPATULA, FRM__C5_L4_QUEST_ITEM, false }, - { MAP_C5_FAIR_GFX, 24, CHAPTER06_LEVEL05_INF_TOTAL_ITEM_KELP_TOKEN, -1, true }, + { MAP_GFX_C5_L1, 20, CHAPTER05_LEVEL01_INF_TOTAL_ITEM_GOLDEN_SPATULA, FRM__C5_L1_QUEST_ITEM, false }, + { MAP_GFX_C5_L2, 21, CHAPTER05_LEVEL02_INF_TOTAL_ITEM_GOLDEN_SPATULA, FRM__C5_L2_QUEST_ITEM, false }, + { MAP_GFX_C5_L3, 22, CHAPTER05_LEVEL03_INF_TOTAL_ITEM_GOLDEN_SPATULA, FRM__C5_L3_QUEST_ITEM, false }, + { MAP_GFX_C5_L4, 23, CHAPTER05_LEVEL04_INF_TOTAL_ITEM_GOLDEN_SPATULA, FRM__C5_L4_QUEST_ITEM, false }, + { MAP_GFX_C5_FAIR, 24, CHAPTER06_LEVEL05_INF_TOTAL_ITEM_KELP_TOKEN, -1, true }, }, }; @@ -205,7 +239,17 @@ void CMapScene::init() m_screenImage=MemAlloc(512*256*2,"MapScreen"); m_currentChapterSelection=s_chapterToStartOn; - m_mapBackgroundImage=(char*)CFileIO::loadFile(MAP_MAP_BACKGROUND_GFX);ASSERT(m_mapBackgroundImage); +// m_mapBackgroundImage=(char*)CFileIO::loadFile(MAP_MAP_BACKGROUND_GFX);ASSERT(m_mapBackgroundImage); +u8 *Back=(u8*)CFileIO::loadFile(MAP_MAP_BACKGROUND_GFX);ASSERT(Back); + LZNP_Decode(Back,(u8*)m_screenImage); + MemFree(Back); + +// Load level Gfx + for (int i=0; idump(); delete m_font; } @@ -512,12 +562,13 @@ void CMapScene::generateMapScreenImage() int i; m_currentLevelSelection=0; - memcpy(m_screenImage,m_mapBackgroundImage,512*256*2); +// memcpy(m_screenImage,m_mapBackgroundImage,512*256*2); for(i=0;i