From 7cf54f48113b77a4d7b21d5858ec98862195b2a6 Mon Sep 17 00:00:00 2001
From: spicyjpeg <88942473+spicyjpeg@users.noreply.github.com>
Date: Sun, 12 Sep 2021 19:39:12 +0200
Subject: Migrated examples to CMake
---
examples/demos/n00bdemo/CMakeLists.txt | 50 ++++++++++++++++++++++++
examples/demos/n00bdemo/data.s | 31 ---------------
examples/demos/n00bdemo/data.s.template | 31 +++++++++++++++
examples/demos/n00bdemo/data.xml | 49 -----------------------
examples/demos/n00bdemo/data.xml.template | 49 +++++++++++++++++++++++
examples/demos/n00bdemo/logo.c | 2 +-
examples/demos/n00bdemo/main.c | 4 +-
examples/demos/n00bdemo/makefile | 65 -------------------------------
8 files changed, 133 insertions(+), 148 deletions(-)
create mode 100644 examples/demos/n00bdemo/CMakeLists.txt
delete mode 100644 examples/demos/n00bdemo/data.s
create mode 100644 examples/demos/n00bdemo/data.s.template
delete mode 100644 examples/demos/n00bdemo/data.xml
create mode 100644 examples/demos/n00bdemo/data.xml.template
delete mode 100644 examples/demos/n00bdemo/makefile
(limited to 'examples/demos')
diff --git a/examples/demos/n00bdemo/CMakeLists.txt b/examples/demos/n00bdemo/CMakeLists.txt
new file mode 100644
index 0000000..0b51beb
--- /dev/null
+++ b/examples/demos/n00bdemo/CMakeLists.txt
@@ -0,0 +1,50 @@
+# PSn00bSDK example CMake script
+# (C) 2021 spicyjpeg - MPL licensed
+
+cmake_minimum_required(VERSION 3.21)
+
+if(NOT DEFINED CMAKE_TOOLCHAIN_FILE AND DEFINED ENV{PSN00BSDK_LIBS})
+ set(CMAKE_TOOLCHAIN_FILE $ENV{PSN00BSDK_LIBS}/cmake/sdk.cmake)
+endif()
+
+project(
+ n00bdemo
+ LANGUAGES C ASM
+ VERSION 1.0.0
+ DESCRIPTION "n00bdemo (PSn00bSDK demo)"
+ HOMEPAGE_URL "http://lameguy64.net/?page=psn00bsdk"
+)
+
+set(DATA_DIR ${PROJECT_SOURCE_DIR}/data)
+
+configure_file(data.s.template data.s)
+configure_file(data.xml.template data.xml)
+
+# Add a build step to pack assets into a single .LZP file. This archive is then
+# embedded into the binary through data.s, which is in turn generated from
+# data.s.template. Note that, since we specify dependencies, CMake can detect
+# when source assets are edited and rebuild the archive automatically.
+file(GLOB _assets ${DATA_DIR}/*.tim ${DATA_DIR}/*.smd)
+add_custom_command(
+ COMMAND ${LZPACK} -y data.xml
+ OUTPUT data.lzp
+ BYPRODUCTS textures.qlp
+ DEPENDS ${_assets}
+ COMMENT "Building LZP archive"
+)
+
+file(GLOB _sources *.s *.c)
+psn00bsdk_add_executable(
+ n00bdemo STATIC
+ ${_sources}
+ ${PROJECT_BINARY_DIR}/data.s
+)
+target_include_directories(n00bdemo PRIVATE ${PROJECT_SOURCE_DIR})
+#psn00bsdk_add_cd_image(n00bdemo_iso n00bdemo iso.xml DEPENDS n00bdemo)
+
+# Ensure data.lzp is built before the executable. Due to CMake's limitations we
+# actually have to wrap it in a dummy target.
+add_custom_target(n00bdemo_data DEPENDS data.lzp)
+add_dependencies(n00bdemo n00bdemo_data)
+
+install(FILES ${PROJECT_BINARY_DIR}/n00bdemo.exe DESTINATION .)
diff --git a/examples/demos/n00bdemo/data.s b/examples/demos/n00bdemo/data.s
deleted file mode 100644
index f3b2a83..0000000
--- a/examples/demos/n00bdemo/data.s
+++ /dev/null
@@ -1,31 +0,0 @@
-.section .data
-
-.global lz_resources
-.type lz_resources, @object
-lz_resources:
- .incbin "build/data.lzp"
-
-#.global smd_mtekdisk
-#.type smd_mtekdisk, @object
-#smd_mtekdisk:
-# .incbin "data/mtekdisk.smd"
-
-#.global smd_mtektext
-#.type smd_mtektext, @object
-#smd_mtektext:
-# .incbin "data/mtektext.smd"
-
-#.global smd_star
-#.type smd_star, @object
-#smd_star:
-# .incbin "data/star.smd"
-
-#.global smd_psn00b
-#.type smd_psn00b, @object
-#smd_psn00b:
-# .incbin "data/psn00blogo.smd"
-
-#.global smd_scarletlogo
-#.type smd_scarletlogo, @object
-#smd_scarletlogo:
-# .incbin "data/scarletlogo.smd"
\ No newline at end of file
diff --git a/examples/demos/n00bdemo/data.s.template b/examples/demos/n00bdemo/data.s.template
new file mode 100644
index 0000000..a7237cd
--- /dev/null
+++ b/examples/demos/n00bdemo/data.s.template
@@ -0,0 +1,31 @@
+.section .data
+
+.global lz_resources
+.type lz_resources, @object
+lz_resources:
+ .incbin "${PROJECT_BINARY_DIR}/data.lzp"
+
+#.global smd_mtekdisk
+#.type smd_mtekdisk, @object
+#smd_mtekdisk:
+# .incbin "data/mtekdisk.smd"
+
+#.global smd_mtektext
+#.type smd_mtektext, @object
+#smd_mtektext:
+# .incbin "data/mtektext.smd"
+
+#.global smd_star
+#.type smd_star, @object
+#smd_star:
+# .incbin "data/star.smd"
+
+#.global smd_psn00b
+#.type smd_psn00b, @object
+#smd_psn00b:
+# .incbin "data/psn00blogo.smd"
+
+#.global smd_scarletlogo
+#.type smd_scarletlogo, @object
+#smd_scarletlogo:
+# .incbin "data/scarletlogo.smd"
\ No newline at end of file
diff --git a/examples/demos/n00bdemo/data.xml b/examples/demos/n00bdemo/data.xml
deleted file mode 100644
index 6761f16..0000000
--- a/examples/demos/n00bdemo/data.xml
+++ /dev/null
@@ -1,49 +0,0 @@
-
-
-
-
- data/petscum16c.tim
- data/bungirl.tim
-
-
- data/clktower.tim
- data/riftbld1.tim
- data/riftbld2.tim
- data/hatkid.tim
-
- data/celmapi.tim
-
- data/lamelotl16c.tim
- data/n00blogo-pixel.tim
- data/font.tim
-
-
-
-
-
-
- data/mtekdisk.smd
- data/mtektext.smd
- data/star.smd
- data/psn00blogo.smd
- data/logo.smd
-
-
- data/petscum.smd
- data/bulb.smd
-
-
- data/bungirl.smd
-
- data/star_mask.smd
- data/timerift.smd
- data/rbowshade.smd
-
- data/hatkid.smd
-
-
- build/textures.qlp
-
-
-
-
\ No newline at end of file
diff --git a/examples/demos/n00bdemo/data.xml.template b/examples/demos/n00bdemo/data.xml.template
new file mode 100644
index 0000000..057d6a6
--- /dev/null
+++ b/examples/demos/n00bdemo/data.xml.template
@@ -0,0 +1,49 @@
+
+
+
+
+ ${DATA_DIR}/petscum16c.tim
+ ${DATA_DIR}/bungirl.tim
+
+
+ ${DATA_DIR}/clktower.tim
+ ${DATA_DIR}/riftbld1.tim
+ ${DATA_DIR}/riftbld2.tim
+ ${DATA_DIR}/hatkid.tim
+
+ ${DATA_DIR}/celmapi.tim
+
+ ${DATA_DIR}/lamelotl16c.tim
+ ${DATA_DIR}/n00blogo-pixel.tim
+ ${DATA_DIR}/font.tim
+
+
+
+
+
+
+ ${DATA_DIR}/mtekdisk.smd
+ ${DATA_DIR}/mtektext.smd
+ ${DATA_DIR}/star.smd
+ ${DATA_DIR}/psn00blogo.smd
+ ${DATA_DIR}/logo.smd
+
+
+ ${DATA_DIR}/petscum.smd
+ ${DATA_DIR}/bulb.smd
+
+
+ ${DATA_DIR}/bungirl.smd
+
+ ${DATA_DIR}/star_mask.smd
+ ${DATA_DIR}/timerift.smd
+ ${DATA_DIR}/rbowshade.smd
+
+ ${DATA_DIR}/hatkid.smd
+
+
+ textures.qlp
+
+
+
+
\ No newline at end of file
diff --git a/examples/demos/n00bdemo/logo.c b/examples/demos/n00bdemo/logo.c
index 2cebf6b..d10b5b4 100644
--- a/examples/demos/n00bdemo/logo.c
+++ b/examples/demos/n00bdemo/logo.c
@@ -7,7 +7,7 @@
#include
#include "malloc.h"
#include "smd.h"
-#include "lzp.h"
+#include
#include "disp.h"
#include "data.h"
diff --git a/examples/demos/n00bdemo/main.c b/examples/demos/n00bdemo/main.c
index 623d8cc..fcd38b8 100644
--- a/examples/demos/n00bdemo/main.c
+++ b/examples/demos/n00bdemo/main.c
@@ -29,8 +29,8 @@
#include
#include
#include
-#include
-#include
+#include
+#include
#include "malloc.h"
#include "smd.h"
diff --git a/examples/demos/n00bdemo/makefile b/examples/demos/n00bdemo/makefile
deleted file mode 100644
index 9206e09..0000000
--- a/examples/demos/n00bdemo/makefile
+++ /dev/null
@@ -1,65 +0,0 @@
-# PSn00bSDK makefile template
-# Part of the PSn00bSDK Project
-# 2019 - 2021 Lameguy64 / Meido-Tek Productions
-
-## Settings
-
-PSN00BSDK_LIBS ?= ../../../libpsn00b
-
-# Edit this to point to psn00bsdk-setup.mk, or copy that over to your project's
-# root folder (it only depends on environment variables).
-include ../../../psn00bsdk-setup.mk
-
-# Project target name
-TARGET = demo
-
-## Files
-
-# Searches for C, C++ and S (assembler) files in local directory
-CFILES = $(notdir $(wildcard *.c))
-CPPFILES= $(notdir $(wildcard *.cpp))
-AFILES = $(notdir $(wildcard *.s))
-
-# Create names for object files
-OFILES = $(addprefix build/,$(CFILES:.c=.o)) \
- $(addprefix build/,$(CPPFILES:.cpp=.o)) \
- $(addprefix build/,$(AFILES:.s=.o))
-
-# Project specific includes and libraries
-# (use -I for include dirs, -L for library dirs, -l for static libraries)
-INCLUDE +=
-LIBDIRS +=
-LIBS += -llzp
-
-## Build rules
-
-#all: iso
-all: build/$(TARGET)
-
-iso: build/$(TARGET)
- $(MKPSXISO) -y -q iso.xml
-
-resources:
- $(LZPACK) data.xml
- touch data.s
-
-build/$(TARGET): $(OFILES)
- @mkdir -p $(dir $@)
- $(LD) $(LDFLAGS_EXE) $(LIBDIRS) $^ $(LIBS) -o $@
- $(NM) -f posix -l -n $@ >$@.map
- $(ELF2X) -q $@ $@.exe
-
-build/%.o: %.c
- @mkdir -p $(dir $@)
- $(CC) $(CFLAGS_EXE) $(INCLUDE) -c $< -o $@
-
-build/%.o: %.cpp
- @mkdir -p $(dir $@)
- $(CXX) $(CPPFLAGS_EXE) $(INCLUDE) -c $< -o $@
-
-build/%.o: %.s resources
- @mkdir -p $(dir $@)
- $(CC) $(AFLAGS_EXE) $(INCLUDE) -c $< -o $@
-
-clean:
- rm -rf build
--
cgit v1.2.3
From 49ea4e7561980d79ec3bed869982852b45b597e8 Mon Sep 17 00:00:00 2001
From: spicyjpeg <88942473+spicyjpeg@users.noreply.github.com>
Date: Mon, 27 Sep 2021 22:27:17 +0200
Subject: Updated changelog and files missing from last commit
---
changelog.txt | 16 ++++++++++++++++
doc/cmake_reference.md | 6 +++++-
examples/demos/n00bdemo/data.h | 4 +++-
examples/demos/n00bdemo/data.s.template | 6 +++---
examples/demos/n00bdemo/main.c | 6 ++++--
libpsn00b/cmake/internal_setup.cmake | 3 +++
libpsn00b/include/lzp/lzp.h | 18 +++++++++---------
libpsn00b/include/lzp/lzqlp.h | 23 ++++++++++++++---------
libpsn00b/lzp/bit.c | 2 +-
libpsn00b/lzp/bit.h | 2 +-
libpsn00b/lzp/crc.c | 6 +++---
tools/lzpack/main.cpp | 18 +++++++++---------
12 files changed, 71 insertions(+), 39 deletions(-)
(limited to 'examples/demos')
diff --git a/changelog.txt b/changelog.txt
index 03d2d10..046f4fe 100644
--- a/changelog.txt
+++ b/changelog.txt
@@ -2,6 +2,22 @@ PSn00bSDK changelog
Items that are lower in the log are more recently implemented.
+09-27-2021 by spicyjpeg:
+
+* liblzp, tools: Fixed tools not building on MSVC and cleaned up LZP API
+ declarations (replaced meaningless void* pointers with proper types).
+
+* libpsn00b: Added missing PSN00BSDK_VERSION CMake variable.
+
+* examples: Fixed childexec (parent.exe) example crashing due to the child
+ executable not being relocated in the new build script. Patched n00bdemo to
+ suppress liblzp pointer type warnings.
+
+* Fixed another MSVC linker error when building tinyxml2 automatically, as well
+ as various toolchain/compiler test errors sometimes thrown by CMake. Updated
+ INSTALL.md with more details.
+
+
09-13-2021 by spicyjpeg:
* Migrated libpsn00b, tools, examples and template to CMake, added a top-level
diff --git a/doc/cmake_reference.md b/doc/cmake_reference.md
index 8810ad4..3b586ab 100644
--- a/doc/cmake_reference.md
+++ b/doc/cmake_reference.md
@@ -182,6 +182,10 @@ the build script.
## Read-only variables
+- `PSN00BSDK_VERSION`
+
+ The SDK's version number (`major.minor.patch`).
+
- `PSN00BSDK_TOOLS`, `PSN00BSDK_INCLUDE`, `PSN00BSDK_LDSCRIPTS`
Lists of paths used internally. Should not be set, manipulated or overridden
@@ -200,4 +204,4 @@ the build script.
LZP archives as part of the build pipeline.
-----------------------------------------
-_Last updated on 2021-09-12 by spicyjpeg_
+_Last updated on 2021-09-27 by spicyjpeg_
diff --git a/examples/demos/n00bdemo/data.h b/examples/demos/n00bdemo/data.h
index 3be0e3d..9e64ea1 100644
--- a/examples/demos/n00bdemo/data.h
+++ b/examples/demos/n00bdemo/data.h
@@ -1,7 +1,9 @@
#ifndef _DATA_H
#define _DATA_H
-extern unsigned char lz_resources[];
+extern unsigned char _lz_resources[];
+
+#define lz_resources ((const LZP_HEAD*) _lz_resources)
/*extern unsigned char smd_mtekdisk[];
extern unsigned char smd_mtektext[];
diff --git a/examples/demos/n00bdemo/data.s.template b/examples/demos/n00bdemo/data.s.template
index a7237cd..9fbef2e 100644
--- a/examples/demos/n00bdemo/data.s.template
+++ b/examples/demos/n00bdemo/data.s.template
@@ -1,8 +1,8 @@
.section .data
-.global lz_resources
-.type lz_resources, @object
-lz_resources:
+.global _lz_resources
+.type _lz_resources, @object
+_lz_resources:
.incbin "${PROJECT_BINARY_DIR}/data.lzp"
#.global smd_mtekdisk
diff --git a/examples/demos/n00bdemo/main.c b/examples/demos/n00bdemo/main.c
index fcd38b8..ba21d88 100644
--- a/examples/demos/n00bdemo/main.c
+++ b/examples/demos/n00bdemo/main.c
@@ -85,11 +85,12 @@ void loadTextures() {
Unpack textures from an embedded LZP archive and upload them to VRAM.
*/
int i;
- int *tex_buff,*ttim,j;
+ int *ttim,j;
+ QLP_HEAD *tex_buff;
TIM_IMAGE tim;
i = lzpSearchFile( "textures", lz_resources );
- tex_buff = (int*)malloc( lzpFileSize( lz_resources, i ) );
+ tex_buff = (QLP_HEAD*)malloc( lzpFileSize( lz_resources, i ) );
lzpUnpackFile( tex_buff, lz_resources, i );
@@ -148,6 +149,7 @@ void loadTextures() {
font_tpage = getTPage( 0, 1, tim.prect->x, tim.prect->y )|0x200;
font_clut = getClut( tim.crect->x, tim.crect->y );
+ free( tex_buff );
}
void unpackModels() {
diff --git a/libpsn00b/cmake/internal_setup.cmake b/libpsn00b/cmake/internal_setup.cmake
index e9423a4..e3d4be7 100644
--- a/libpsn00b/cmake/internal_setup.cmake
+++ b/libpsn00b/cmake/internal_setup.cmake
@@ -7,6 +7,9 @@
cmake_minimum_required(VERSION 3.21)
include(GNUInstallDirs)
+# IMPORTANT TODO: set a version number
+set(PSN00BSDK_VERSION 0.1.0)
+
## Settings (can be overridden by projects)
set(PSN00BSDK_EXECUTABLE_SUFFIX ".exe")
diff --git a/libpsn00b/include/lzp/lzp.h b/libpsn00b/include/lzp/lzp.h
index ffd7933..cfeeb72 100644
--- a/libpsn00b/include/lzp/lzp.h
+++ b/libpsn00b/include/lzp/lzp.h
@@ -111,7 +111,7 @@ extern "C" {
*
* \returns The size of the compressed data in bytes.
*/
-int lzCompress(void* outBuff, void* inBuff, int inSize, int level);
+int lzCompress(void* outBuff, const void* inBuff, int inSize, int level);
/*! Decompress a compressed block of data.
*
@@ -130,9 +130,9 @@ int lzCompress(void* outBuff, void* inBuff, int inSize, int level);
* \returns Size of decompressed data in bytes or LZP_ERR_DECOMPRESS if a
* decompression error occurred.
*/
-int lzDecompress(void* outBuff, void* inBuff, int inSize);
+int lzDecompress(void* outBuff, const void* inBuff, int inSize);
-int lzDecompressLen(void* outBuff, int outSize, void* inBuff, int inSize);
+int lzDecompressLen(void* outBuff, int outSize, const void* inBuff, int inSize);
/*! Sets the sizes of hash tables for data compression.
*
@@ -162,7 +162,7 @@ void lzResetHashSizes();
*
* \returns CRC16 hash of specified buffer.
*/
-unsigned short lzCRC16(void* buff, int bytes, unsigned short crc);
+unsigned short lzCRC16(const void* buff, int bytes, unsigned short crc);
/*! Calculates a CRC32 hash of the specified buffer.
*
@@ -172,7 +172,7 @@ unsigned short lzCRC16(void* buff, int bytes, unsigned short crc);
*
* \returns CRC32 hash of specified buffer.
*/
-unsigned int lzCRC32(void* buff, int bytes, unsigned int crc);
+unsigned int lzCRC32(const void* buff, int bytes, unsigned int crc);
/*! @} */
@@ -189,9 +189,9 @@ unsigned int lzCRC32(void* buff, int bytes, unsigned int crc);
*
* \returns File index of found file or one of \ref libraryErrorCodes if an error occurred.
*/
-int lzpSearchFile(const char* fileName, void* lzpack);
+int lzpSearchFile(const char* fileName, const LZP_HEAD* lzpack);
-int lzpFileSize(void* lzpack, int fileNum);
+int lzpFileSize(const LZP_HEAD* lzpack, int fileNum);
/*! Get a pointer to a file entry inside of an LZP archive.
*
@@ -200,7 +200,7 @@ int lzpFileSize(void* lzpack, int fileNum);
*
* \returns A pointer to an LZP_FILE struct or NULL if an error occurred.
*/
-LZP_FILE* lzpFileEntry(void* lzpack, int fileNum);
+const LZP_FILE* lzpFileEntry(const LZP_HEAD* lzpack, int fileNum);
/*! Unpacks a file from an LZP archive to the specified memory buffer.
*
@@ -210,7 +210,7 @@ LZP_FILE* lzpFileEntry(void* lzpack, int fileNum);
*
* \returns Size of decompressed file in bytes or one of \ref libraryErrorCodes if an error occurred.
*/
-int lzpUnpackFile(void* buff, void* lzpack, int fileNum);
+int lzpUnpackFile(void* buff, const LZP_HEAD* lzpack, int fileNum);
/*! @} */
diff --git a/libpsn00b/include/lzp/lzqlp.h b/libpsn00b/include/lzp/lzqlp.h
index fae6438..5b70b40 100644
--- a/libpsn00b/include/lzp/lzqlp.h
+++ b/libpsn00b/include/lzp/lzqlp.h
@@ -1,6 +1,11 @@
#ifndef _QLP_H
#define _QLP_H
+#include
+#ifdef _WIN32
+#include
+#endif
+
#define PACK_ERR_NONE 0
#define PACK_ERR_INVALID -1
#define PACK_ERR_NOTFOUND -2
@@ -8,19 +13,19 @@
#define PACK_ERR_READ_FAULT -4
typedef struct {
- char id[3];
- unsigned char numfiles;
+ char id[3];
+ u_char numfiles;
} QLP_HEAD;
typedef struct {
- char name[16];
- unsigned int size;
- unsigned int offs;
+ char name[16];
+ u_int size;
+ u_int offs;
} QLP_FILE;
-int qlpFileCount(void* qlpfile);
-QLP_FILE* qlpFileEntry(int index, void* qlpfile);
-void* qlpFileAddr(int index, void* qlpfile);
-int qlpFindFile(char* fileName, void* qlpfile);
+int qlpFileCount(const QLP_HEAD* qlpfile);
+const QLP_FILE* qlpFileEntry(int index, const QLP_HEAD* qlpfile);
+const void* qlpFileAddr(int index, const QLP_HEAD* qlpfile);
+int qlpFindFile(char* fileName, const QLP_HEAD* qlpfile);
#endif // _QLP_H
\ No newline at end of file
diff --git a/libpsn00b/lzp/bit.c b/libpsn00b/lzp/bit.c
index aefa45d..9678357 100644
--- a/libpsn00b/lzp/bit.c
+++ b/libpsn00b/lzp/bit.c
@@ -3,7 +3,7 @@
// Bit I/O
//
-unsigned char* inPtr = 0;
+const unsigned char* inPtr = 0;
int inBytes = 0;
unsigned char* outPtr = 0;
int outBytes = 0;
diff --git a/libpsn00b/lzp/bit.h b/libpsn00b/lzp/bit.h
index ff71025..321160a 100644
--- a/libpsn00b/lzp/bit.h
+++ b/libpsn00b/lzp/bit.h
@@ -1,7 +1,7 @@
#ifndef _LZP_BIT_H
#define _LZP_BIT_H
-extern unsigned char* inPtr;
+extern const unsigned char* inPtr;
extern int inBytes;
extern unsigned char* outPtr;
extern int outBytes;
diff --git a/libpsn00b/lzp/crc.c b/libpsn00b/lzp/crc.c
index 7cc7bf3..3c1ae57 100644
--- a/libpsn00b/lzp/crc.c
+++ b/libpsn00b/lzp/crc.c
@@ -73,9 +73,9 @@ unsigned short lzCRC16(const void* buff, int bytes, unsigned short crc) {
unsigned int lzCRC32(const void* buff, int bytes, unsigned int crc) {
int i;
- unsigned char* byteBuff = (const unsigned char*)buff;
- unsigned int byte;
- unsigned int crcTable[256];
+ const unsigned char* byteBuff = (const unsigned char*)buff;
+ unsigned int byte;
+ unsigned int crcTable[256];
initTable32(crcTable);
diff --git a/tools/lzpack/main.cpp b/tools/lzpack/main.cpp
index f684d18..506b76c 100644
--- a/tools/lzpack/main.cpp
+++ b/tools/lzpack/main.cpp
@@ -178,7 +178,7 @@ int CreateLZPfile(const char* packFile, FileListClass* fileList) {
printf("ERROR: Entry '%s' has more than 15 characters.\n", name);
fclose(packp);
unlink(packFile);
- delete entry;
+ delete[] entry;
return(0);
@@ -216,8 +216,8 @@ int CreateLZPfile(const char* packFile, FileListClass* fileList) {
fwrite(compBuff, compSize, 1, packp);
- delete compBuff;
- delete fileBuff;
+ delete[] compBuff;
+ delete[] fileBuff;
printf("Ok. (%.02f%%)\n", 100.f*((float)compSize/fileSize));
@@ -238,7 +238,7 @@ int CreateLZPfile(const char* packFile, FileListClass* fileList) {
fwrite(entry, sizeof(LZP_FILE), fileList->EntryCount(), packp);
fclose(packp);
- delete entry;
+ delete[] entry;
printf("Packed %d file(s) totaling %d bytes (%.02f%% compression ratio).\n",
fileList->EntryCount(),
@@ -285,7 +285,7 @@ int CreateQLPfile(const char* packFile, FileListClass* fileList) {
printf("ERROR: Entry '%s' has more than 15 characters.\n", name);
fclose(packp);
unlink(packFile);
- delete fileEntry;
+ delete[] fileEntry;
return(0);
@@ -328,7 +328,7 @@ int CreateQLPfile(const char* packFile, FileListClass* fileList) {
}
- delete copyBuff;
+ delete[] copyBuff;
fclose(fp);
fileEntry[i].fileSize = bytesCopied;
@@ -345,7 +345,7 @@ int CreateQLPfile(const char* packFile, FileListClass* fileList) {
fwrite(fileEntry, sizeof(QLP_FILE), head.numFiles, packp);
fclose(packp);
- delete fileEntry;
+ delete[] fileEntry;
return(true);
@@ -417,7 +417,7 @@ int CreatePCKfile(const char* packFile, FileListClass* fileList) {
}
fclose(fp);
- delete buff;
+ delete[] buff;
toc.file[i].size = bytesTotal;
@@ -428,7 +428,7 @@ int CreatePCKfile(const char* packFile, FileListClass* fileList) {
memset(padding, 0x00, pad);
fwrite(padding, pad, 1, packp);
- delete padding;
+ delete[] padding;
}
printf("Done.\n");
--
cgit v1.2.3