Compare commits

...

19 Commits

Author SHA1 Message Date
8df6a82b80 - Updatat el makefile amb els releases de mac i linux. A provar quan me sente davant de un mac o un linux. 2023-10-23 17:24:43 +02:00
7e84495701 Merge branch 'master' of https://gitea.sustancia.synology.me/JailDoctor/arounders 2023-10-23 16:51:22 +02:00
0981882fd3 - [FIX] Problema amb alguns arxius binaris que algú en tota la cadena se pensava que eren de text i canviava caracter 13 per 10+13 2023-10-23 16:50:23 +02:00
8c4233e90e - Ara la versió la dona el Makefile
- El Makefile ja inclou la generació de windows_release
2023-10-23 16:49:13 +02:00
f3f4639abe - Incloguem totes les DLL necessaries 2023-10-23 16:48:38 +02:00
60a0ca2b0e Update README.md 2023-10-23 16:13:53 +02:00
f21a4808f5 Afegits els screenshots 2023-10-23 15:15:30 +02:00
283f3f58f5 - [FIX] Ja funcionen els passwords 2023-10-22 22:29:52 +02:00
7cbf75ffd9 - [FIX] La segona vegada que entraves a ficar password, estaba l'antic 2023-10-22 20:06:45 +02:00
2bfe750ccc - Afegim arxius per al bundle de macOs 2023-10-22 18:04:10 +02:00
438e24ab9e - S'inclou el que fa falta pa ficar el iconet al compilar en windows_release 2023-10-22 17:25:54 +02:00
ccc4f760b2 Merge branch 'master' of https://gitea.sustancia.synology.me/JailDoctor/arounders 2023-10-22 16:45:00 +02:00
fd2b90fb3b - Afegit icono 2023-10-22 16:43:22 +02:00
f8b42bc986 Update README.md 2023-10-22 14:05:50 +02:00
f638d4e262 Update README.md 2023-10-22 14:02:00 +02:00
3a0cba54ba - [FIX] Quan se pillen les sequències del data.jf2 peta per que no hi ha EOF 2023-10-22 13:30:49 +02:00
e30bbc5f8c - Ignorar carpeta release 2023-10-22 13:12:46 +02:00
a69aa23490 - [FIX] Si s´usava arxiu de recursos, jfile no trobava res 2023-10-22 13:12:17 +02:00
24f693e357 - Llevada alguna traça que quedava 2023-10-22 13:11:49 +02:00
30 changed files with 332 additions and 191 deletions

3
.gitignore vendored
View File

@@ -2,4 +2,5 @@
*.exe *.exe
arounders arounders
arounders_debug arounders_debug
*.dll ./*.dll
release/*

44
Info.plist Normal file
View File

@@ -0,0 +1,44 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>BuildMachineOSBuild</key>
<string>19H2</string>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleDisplayName</key>
<string>arounders</string>
<key>CFBundleExecutable</key>
<string>arounders</string>
<key>CFBundleIconFile</key>
<string>arounders</string>
<key>CFBundleIconName</key>
<string>arounders</string>
<key>CFBundleIdentifier</key>
<string>net.jailers.arounders</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>arounders</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>1.2.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>1.2.0</string>
<key>CSResourcesFileMapped</key>
<true/>
<key>LSMinimumSystemVersion</key>
<string>10.12</string>
<key>NSHighResolutionCapable</key>
<true/>
<key>NSHumanReadableCopyright</key>
<string>Copyright 2023 JailDoctor</string>
<key>NSPrincipalClass</key>
<string>NSApplication</string>
<key>SUPublicDSAKeyFile</key>
<string>dsa_pub.pem</string>
</dict>
</plist>

129
Makefile
View File

@@ -1,27 +1,140 @@
executable = arounders executable = arounders
source = source/*.cpp source = source/*.cpp
appName = arounders
releaseFolder = release
version = v1.2.1
# Release names
windowsRelease = $(executable)-$(version)-win32-x64.zip
macosIntelRelease = $(executable)-$(version)-macos-intel.dmg
macosAppleSiliconRelease = $(executable)-$(version)-macos-apple-silicon.dmg
linuxRelease = $(executable)-$(version)-linux.tar.gz
windows: windows:
@echo off @echo off
g++ $(source) icon.res -Wall -Os -ffunction-sections -fdata-sections -Wl,--gc-sections -lmingw32 -lSDL2main -lSDL2 -lSDL2_mixer -mwindows -o "$(executable).exe" windres icon.rc -O coff icon.res
g++ $(source) icon.res -D VERSION=\"$(version)\" -Wall -Os -ffunction-sections -fdata-sections -Wl,--gc-sections -lmingw32 -lSDL2main -lSDL2 -lSDL2_mixer -mwindows -o "$(executable).exe"
strip -s -R .comment -R .gnu.version --strip-unneeded "$(executable).exe" strip -s -R .comment -R .gnu.version --strip-unneeded "$(executable).exe"
windows_debug: windows_debug:
@echo off @echo off
g++ $(source) -D DEBUG -g -Wall -fvar-tracking -lmingw32 -lSDL2main -lSDL2 -lSDL2_mixer -o "$(executable)_debug.exe" g++ $(source) -D DEBUG -D VERSION=\"$(version)\" -g -Wall -fvar-tracking -lmingw32 -lSDL2main -lSDL2 -lSDL2_mixer -o "$(executable)_debug.exe"
windows_release:
@echo off
# Fem el paquetet
respak2 -p
# Create release folder
powershell if (Test-Path "$(releaseFolder)") {Remove-Item "$(releaseFolder)" -Recurse -Force}
powershell if (-not (Test-Path "$(releaseFolder)")) {New-Item "$(releaseFolder)" -ItemType Directory}
# Copy root files
powershell Copy-Item "data.jf2" -Destination "$(releaseFolder)"
powershell Copy-Item "versions.txt" -Destination "$(releaseFolder)"
powershell Copy-Item "README.md" -Destination "$(releaseFolder)"
powershell Copy-Item "bin\*.dll" -Destination "$(releaseFolder)"
# Build
windres icon.rc -O coff icon.res
g++ $(source) icon.res -D VERSION=\"$(version)\" -Wall -Os -ffunction-sections -fdata-sections -Wl,--gc-sections -lmingw32 -lSDL2main -lSDL2 -lSDL2_mixer -mwindows -o "$(releaseFolder)/$(executable).exe"
strip -s -R .comment -R .gnu.version --strip-unneeded "$(releaseFolder)/$(executable).exe"
# Create ZIP
powershell if (Test-Path $(windowsRelease)) {Remove-Item $(windowsRelease)}
powershell Compress-Archive -Path "$(releaseFolder)"/* -DestinationPath $(windowsRelease)
# Remove folder
powershell if (Test-Path "$(releaseFolder)") {Remove-Item "$(releaseFolder)" -Recurse -Force}
macos: macos:
clang++ $(source) -Wall -Os -std=c++11 -ffunction-sections -fdata-sections -lSDL2 -lSDL2_mixer -o "$(executable)" clang++ $(source) -D VERSION=\"$(version)\" -Wall -Os -std=c++11 -ffunction-sections -fdata-sections -lSDL2 -lSDL2_mixer -o "$(executable)"
macos_debug: macos_debug:
clang++ $(source) -D DEBUG -g -Wall -Os -std=c++11 -ffunction-sections -fdata-sections -lSDL2 -lSDL2_mixer -o "$(executable)_debug" clang++ $(source) -D DEBUG -D VERSION=\"$(version)\" -g -Wall -std=c++11 -lSDL2 -lSDL2_mixer -o "$(executable)_debug"
macos_release:
# Remove data and possible data from previous builds
rm -rdf "$(releaseFolder)"
rm -rdf Frameworks
rm -f tmp.dmg
rm -f "$(macosIntelRelease)"
rm -f "$(macosAppleSiliconRelease)"
# Create folders
mkdir -p "$(releaseFolder)/$(appName).app/Contents/Frameworks"
mkdir -p "$(releaseFolder)/$(appName).app/Contents/MacOS"
mkdir -p "$(releaseFolder)/$(appName).app/Contents/Resources"
mkdir -p Frameworks
# Fem el paquetet
respak2 -p
# Copy folders
cp data.jf2 "$(releaseFolder)/$(appName).app/Contents/Resources"
cp -R bin/*.framework "$(releaseFolder)/$(appName).app/Contents/Frameworks"
cp -R bin/*.framework Frameworks
# Copy files
cp *.icns "$(releaseFolder)/$(appName).app/Contents/Resources"
cp Info.plist "$(releaseFolder)/$(appName).app/Contents"
cp versions.txt "$(releaseFolder)"
cp README.md "$(releaseFolder)"
# Create links
ln -s /Applications "$(releaseFolder)"/Applications
# Build INTEL
clang++ $(source) -D MACOS_BUNDLE -D VERSION=\"$(version)\" -Wall -Os -std=c++11 -framework SDL2 -framework SDL2_mixer -F ./Frameworks -ffunction-sections -fdata-sections -o "$(releaseFolder)/$(appName).app/Contents/MacOS/$(executable)" -rpath @executable_path/../Frameworks/ -target x86_64-apple-macos10.12
# Build INTEL DMG
hdiutil create tmp.dmg -ov -volname "$(appName)" -fs HFS+ -srcfolder "$(releaseFolder)"
hdiutil convert tmp.dmg -format UDZO -o "$(macosIntelRelease)"
rm -f tmp.dmg
# Build APPLE SILICON
clang++ $(source) -D MACOS_BUNDLE -D VERSION=\"$(version)\" -std=c++11 -Wall -Os -framework SDL2 -framework SDL2_mixer -F ./Frameworks -ffunction-sections -fdata-sections -o "$(releaseFolder)/$(appName).app/Contents/MacOS/$(executable)" -rpath @executable_path/../Frameworks/ -target arm64-apple-macos11
# Build APPLE SILICON DMG
hdiutil create tmp.dmg -ov -volname "$(appName)" -fs HFS+ -srcfolder "$(releaseFolder)"
hdiutil convert tmp.dmg -format UDZO -o "$(macosAppleSiliconRelease)"
rm -f tmp.dmg
# Remove data
rm -rdf Frameworks
rm -rdf "$(releaseFolder)"
macos_bundle:
clang++ $(source) -D MACOS_BUNDLE -Wall -Os -std=c++11 -framework SDL2 -framework SDL2_mixer -F /Library/Frameworks -ffunction-sections -fdata-sections -o mini_bundle -rpath @executable_path/../Frameworks/ -target x86_64-apple-macos10.12
linux: linux:
g++ $(source) -Wall -Os -ffunction-sections -fdata-sections -Wl,--gc-sections -lSDL2 -lSDL2_mixer -o "$(executable)" g++ $(source) -D VERSION=\"$(version)\" -Wall -Os -ffunction-sections -fdata-sections -Wl,--gc-sections -lSDL2 -lSDL2_mixer -o "$(executable)"
strip -s -R .comment -R .gnu.version --strip-unneeded "$(executable)" strip -s -R .comment -R .gnu.version --strip-unneeded "$(executable)"
linux_debug: linux_debug:
g++ $(source) -D DEBUG -g -Wall -fvar-tracking -lSDL2 -lSDL2_mixer -o "$(executable)_debug" g++ $(source) -D DEBUG -D VERSION=\"$(version)\" -g -Wall -fvar-tracking -lSDL2 -lSDL2_mixer -o "$(executable)_debug"
linux_release:
# Remove data
rm -rdf "$(releaseFolder)"
# Create folders
mkdir -p "$(releaseFolder)"
# Fem el paquetet
respak2 -p
# Copy data
cp data.jf2 "$(releaseFolder)"
cp versions.txt "$(releaseFolder)"
cp README.md "$(releaseFolder)"
# Build
g++ $(source) -D VERSION=\"$(version)\" -Wall -Os -ffunction-sections -fdata-sections -Wl,--gc-sections -lSDL2 -lSDL2_mixer -o "$(releaseFolder)/$(executable)"
strip -s -R .comment -R .gnu.version --strip-unneeded "$(releaseFolder)/$(executable)"
# Pack files
rm -f "$(linuxRelease)"
cd "$(releaseFolder)" && tar -czvf "../$(linuxRelease)" *
# Remove data
rm -rdf "$(releaseFolder)"

View File

@@ -1,14 +1,9 @@
JailGames Presenta... # AROUNDERS
*******************************************************************************************
** **
** AROUNDERS **
** **
*******************************************************************************************
versió 1.2 versió 1.2
![Menú del Arounders](https://php.sustancia.synology.me/images/arounders1.png)
HISTÒRIA ## HISTÒRIA
========
Al principi dels temps l'univers era una massa concetrada de materia que va explotar i... Al principi dels temps l'univers era una massa concetrada de materia que va explotar i...
però avancem un poc en la història: Açò era baloo, barba peluda, el pelo pinxo i pantaló però avancem un poc en la història: Açò era baloo, barba peluda, el pelo pinxo i pantaló
@@ -16,79 +11,78 @@ bermuda, que se anava a menjar narantxes, se ana a dentr para hechar desmadre, p
se ana a fer-se un cortaet... i aixó pot ser FATAL... se ana a fer-se un cortaet... i aixó pot ser FATAL...
REQUERIMENTS TÈCNICS ## REQUERIMENTS TÈCNICS
====================
[NOTA de 2023: Hui en dia açò va en qualsevol cosa que tinga CPU] [NOTA de 2023: Hui en dia açò va en qualsevol cosa que tinga CPU]
Aquest joc s'ha testejat en un Core2Duo 2.66GHz i 2Mb de RAM sense cap mena de problemes Aquest joc s'ha testejat en un Core2Duo 2.66GHz i 2Mb de RAM sense cap mena de problemes
Teòricament, deuria funcionar amb comps molt més xungos, pero no tinc temps ara de provar-ho. Teòricament, deuria funcionar amb comps molt més xungos, pero no tinc temps ara de provar-ho.
* Targeta de só. - Targeta de só.
* Targeta de video. - Targeta de video.
* Ratolí. - Ratolí.
* Teclat. - Teclat.
* Disc Dur. - Disc Dur.
* Monitor. - Monitor.
* Impresora (¿¿??) - Impresora (¿¿??)
OPCIONAL: Scanner, scanner! OPCIONAL: Scanner, scanner!
![Una fase del Arounders](https://php.sustancia.synology.me/images/arounders2.png)
INSTRUCCIONS ## INSTRUCCIONS
============
Has de dur a tots els arounders necessaris des d'una porta del nivell fins l'altra. Has de dur a tots els arounders necessaris des d'una porta del nivell fins l'altra.
Teclat: **Teclat**:
ESC: Mostra el menú intern del joc, desde el qual pots: - **ESC**: Mostra el menú intern del joc, desde el qual pots:
CONTINUAR: Continues jugant per on anaves - **CONTINUAR**: Continues jugant per on anaves
REINICIAR: Reinicia el nivell actual - **REINICIAR**: Reinicia el nivell actual
TORNAR AL MENU: Pos aixó - **TORNAR AL MENU**: Pos aixó
EIXIR: Eix del programa - **EIXIR**: Eix del programa
P: Pausa (tornar a apretar per a eixir de la Pausa) - **P**: Pausa (tornar a apretar per a eixir de la Pausa)
Ratolí: **Ratolí**:
Botó Esquerre: Seleccionar arounder / seleccionar acció - Botó Esquerre: Seleccionar arounder / seleccionar acció
Botó Dret: El arounder seleccionat deixa de fer el que està fent. Si te una acció en cua la executa. - Botó Dret: El arounder seleccionat deixa de fer el que està fent. Si te una acció en cua la executa.
Boto del mig: Pausa - Boto del mig: Pausa
Accions: (ordenades d'esquerra a dreta de la barra) **Accions**: (ordenades d'esquerra a dreta de la barra)
* Aroundar: - **Aroundar**:
Per defecte, no farà falta mai que apretem aquest botó. El arounder caminarà fins que Per defecte, no farà falta mai que apretem aquest botó. El arounder caminarà fins que
no puga seguir (i pegarà la volta) o fins la mort... no puga seguir (i pegarà la volta) o fins la mort...
* Parar: - **Parar**:
El arounder pararà de aroundar i, a més, farà pegar la volta a tots els arounders que El arounder pararà de aroundar i, a més, farà pegar la volta a tots els arounders que
se li acosten. Aquesta acció es du a terme nomes pulsar el botó. se li acosten. Aquesta acció es du a terme nomes pulsar el botó.
* Cavar: - **Cavar**:
El arounder farà un forat en la paret fins que no hi haja res més que foradar. Aquesta El arounder farà un forat en la paret fins que no hi haja res més que foradar. Aquesta
acció es du a terme quan el arounder es trobe amb una paret. acció es du a terme quan el arounder es trobe amb una paret.
* Escalar: - **Escalar**:
El arounder escalarà fins que arrive dalt del tot, o no puga seguir. Es dú a terme al El arounder escalarà fins que arrive dalt del tot, o no puga seguir. Es dú a terme al
trobar-se una paret. trobar-se una paret.
* Perforar: - **Perforar**:
Fà un forat en terra, fins que no puga seguir avall. Es dú a terme només pulsar el botó. Fà un forat en terra, fins que no puga seguir avall. Es dú a terme només pulsar el botó.
* Escalera: - **Escalera**:
Construeix una escalera fins que no puga seguir o s'acaven els escalons. Es dú a terme Construeix una escalera fins que no puga seguir o s'acaven els escalons. Es dú a terme
nomes pulsar el botó. nomes pulsar el botó.
* Pasarela: - **Pasarela**:
Com la escalera però en horitzontal. Construeix un pont. Es dú a terme al trobar un precipici. Com la escalera però en horitzontal. Construeix un pont. Es dú a terme al trobar un precipici.
* Corda: - **Corda**:
El arounder solta una corda desde un precipici fins a terra. Es dú a terme al trobar-se El arounder solta una corda desde un precipici fins a terra. Es dú a terme al trobar-se
un precipici. Tots els arounders que arriven a un precipici amb corda, baixaran per ella, un precipici. Tots els arounders que arriven a un precipici amb corda, baixaran per ella,
pero els que se troben baix pujaran per ella. Si pugen per el costat equivocat, cauran. pero els que se troben baix pujaran per ella. Si pugen per el costat equivocat, cauran.
* Suicidi: - **Suicidi**:
El arounder agarra i explota de rabia. La mort es immediata. El arounder agarra i explota de rabia. La mort es immediata.
* Fast Forward: - **Fast Forward**:
No es una acció per al arounder seleccionat, sino que accelera la partida per a que els No es una acció per al arounder seleccionat, sino que accelera la partida per a que els
arounders vagen més apresa. arounders vagen més apresa.
@@ -99,8 +93,7 @@ Si es vol anul·lar una acció en cua, es pot tornar a pulsar el botó correspon
Crec que tot lo demés ja parla per si sol... Crec que tot lo demés ja parla per si sol...
RECOMANACIONS ## RECOMANACIONS
=============
- El secret de la majoria dels nivells és començar bé. Deuràs tindre reflexos d'acer per a - El secret de la majoria dels nivells és començar bé. Deuràs tindre reflexos d'acer per a
completar els nivells !!! completar els nivells !!!
@@ -119,15 +112,15 @@ passar-te'l, pot ser no apures el suficient.
- Recorda que totes les accions es poden parar quan a tu t'interese pulsant el botó dret. - Recorda que totes les accions es poden parar quan a tu t'interese pulsant el botó dret.
BUGS & POLLS ## BUGS & POLLS
============
**** Si trobes un polls, dis-me EXACTAMENT que has fet per a que passe. Si et dona ****
**** algun missatge d'error, apuntalo EXACTAMENT com el fica. Gracies. **** Si trobes un polls, dis-me EXACTAMENT que has fet per a que passe. Si et dona
algun missatge d'error, apuntalo EXACTAMENT com el fica. Gracies.
Pots comunicar els polls que trobes ací: https://gitea.sustancia.synology.me/JailDoctor/arounders/issues Pots comunicar els polls que trobes ací: https://gitea.sustancia.synology.me/JailDoctor/arounders/issues
* La acció corda és molt sensible. Si la utilitzes, i abans del precipici hi ha un desnivell - La acció corda és molt sensible. Si la utilitzes, i abans del precipici hi ha un desnivell
d'uns pocs pixels, el arounder intentarà sense exit utilitzar la corda, perdent-la. d'uns pocs pixels, el arounder intentarà sense exit utilitzar la corda, perdent-la.
Dubtes, consultes, consells, polls, cheques al portador... Dubtes, consultes, consells, polls, cheques al portador...

BIN
arounders.icns Normal file

Binary file not shown.

BIN
bin/SDL2.dll Normal file

Binary file not shown.

BIN
bin/SDL2_mixer.dll Normal file

Binary file not shown.

BIN
bin/libgcc_s_seh-1.dll Normal file

Binary file not shown.

BIN
bin/libogg-0.dll Normal file

Binary file not shown.

BIN
bin/libstdc++-6.dll Normal file

Binary file not shown.

BIN
bin/libwinpthread-1.dll Normal file

Binary file not shown.

View File

@@ -1,30 +1 @@
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>®<EFBFBD>Ǧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƺ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ø<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>żç<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>³<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>®<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>»<EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>®<EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ø<EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ż<EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>»<EFBFBD><EFBFBD>

View File

@@ -34,3 +34,4 @@ PRINT 79 29 3 'ELS MEUS MAPES US ADORMIRE'
PRINT 79 39 3 'AMB UNA PRACTICA DE TAL!!' PRINT 79 39 3 'AMB UNA PRACTICA DE TAL!!'
ESPERAR 2000 ESPERAR 2000
FADEOUT FADEOUT
END

View File

@@ -11,3 +11,4 @@ PRINT 9 19 1 'ARA TINDREU QUE SUPERAR'
PRINT 9 29 1 '5 MAPES AMB COST EXPONENCIAL!' PRINT 9 29 1 '5 MAPES AMB COST EXPONENCIAL!'
ESPERAR 3000 ESPERAR 3000
FADEOUT FADEOUT
END

View File

@@ -14,3 +14,4 @@ ESPERAR 1000
PRINT 159 79 1 'SUPEREU ELS MEUS MAPES!' PRINT 159 79 1 'SUPEREU ELS MEUS MAPES!'
ESPERAR 2000 ESPERAR 2000
FADEOUT FADEOUT
END

View File

@@ -15,3 +15,4 @@ PRINT 29 29 1 'QUE NO ELS SUPERA'
PRINT 29 39 1 'QUASI QUASI NINGU' PRINT 29 39 1 'QUASI QUASI NINGU'
ESPERAR 3000 ESPERAR 3000
FADEOUT FADEOUT
END

View File

@@ -15,3 +15,4 @@ PRINT 29 29 1 'O ME COMPRAIS UNA PRECIOSA'
PRINT 29 39 1 'CHAQUETA DE CUERO O NADA DE NADA' PRINT 29 39 1 'CHAQUETA DE CUERO O NADA DE NADA'
ESPERAR 3000 ESPERAR 3000
FADEOUT FADEOUT
END

View File

@@ -3,3 +3,4 @@ PRINT 159 19 0 'HI HA ALGU MES A QUI'
PRINT 159 29 0 'ET TENS QUE ENFRONTAR!' PRINT 159 29 0 'ET TENS QUE ENFRONTAR!'
ESPERAR 3000 ESPERAR 3000
FADEOUT FADEOUT
END

View File

@@ -59,3 +59,4 @@ SHOW 'SEQ74.GIF'
PRINT 169 129 0 'FINS LA PROXIMA.' PRINT 169 129 0 'FINS LA PROXIMA.'
ESPERAR 5000 ESPERAR 5000
FADEOUT FADEOUT
END

View File

@@ -46,3 +46,4 @@ PRINT 109 9 1 '"LA CAGAMOL!!!'
PRINT 109 16 1 'AHORAL QUE HAGOL!"' PRINT 109 16 1 'AHORAL QUE HAGOL!"'
ESPERAR 5000 ESPERAR 5000
FADEOUT FADEOUT
END

BIN
icon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 200 KiB

BIN
icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

1
icon.rc Normal file
View File

@@ -0,0 +1 @@
id ICON "icon.ico"

BIN
icon.res Normal file

Binary file not shown.

View File

@@ -1,7 +1,6 @@
#include "gamestates.h" #include "gamestates.h"
#include "jgame.h" #include "jgame.h"
#include "aux_font.h" #include "aux_font.h"
#include "versio.h"
namespace gamestate namespace gamestate
{ {
@@ -55,7 +54,9 @@ namespace gamestate
draw::draw(fondo); draw::draw(fondo);
font::print(277,192, versio); #ifdef VERSION
font::print(277,192, VERSION);
#endif
draw::setSource(cursor); draw::setSource(cursor);
draw::draw(x, y); draw::draw(x, y);

View File

@@ -31,6 +31,9 @@ namespace gamestate
void init() void init()
{ {
exit = password::eixir::no; exit = password::eixir::no;
for (int i=0; i<10; ++i) password[i] = 32;
password[10] = 0;
indice = 0;
// Carrega el gif del fondo // Carrega el gif del fondo
fondo = draw::loadSurface("prefase.gif", true); fondo = draw::loadSurface("prefase.gif", true);
@@ -115,6 +118,7 @@ namespace gamestate
const int getFaseFromPassword() const int getFaseFromPassword()
{ {
password[10] = 0;
int filesize = 0; int filesize = 0;
const char *buffer = file::getFileBuffer("offsets.bal", &filesize); const char *buffer = file::getFileBuffer("offsets.bal", &filesize);
@@ -126,10 +130,8 @@ namespace gamestate
while ( numPassword < 30 && !salir ) { while ( numPassword < 30 && !salir ) {
for (int i=0;i<10;i++) { for (int i=0;i<10;i++) {
punter++; passFile[i] = buffer[punter++] - (101+i);
passFile[i] = buffer[punter] - (101+i);
} }
punter++;
salir = true; salir = true;
for (int i=0;i<10;i++) { for (int i=0;i<10;i++) {

View File

@@ -106,9 +106,10 @@ namespace gamestate
{ {
char *buffer = file::getFileBuffer("offsets.bal"); char *buffer = file::getFileBuffer("offsets.bal");
int punter = (game::getConfig("fase")-1)*11; int punter = (game::getConfig("fase")-1)*10;
char passFile[11]; char passFile[11];
for (int i=0;i<10;i++) passFile[i] = uint8_t(buffer[++punter]) - (101+i); for (int i=0;i<10;i++) passFile[i] = uint8_t(buffer[punter++]) - (101+i);
passFile[10] = 0;
free(buffer); free(buffer);
return passFile; return passFile;

View File

@@ -79,7 +79,6 @@ namespace gamestate
if (command=="ESPERAR") { if (command=="ESPERAR") {
fscanf(sequence_file, "%i", &val); fscanf(sequence_file, "%i", &val);
printf("ESPERAR %i\n", val);
wait_until = SDL_GetTicks() + val; wait_until = SDL_GetTicks() + val;
} else if (command=="FADEIN") { } else if (command=="FADEIN") {
@@ -108,6 +107,16 @@ namespace gamestate
} else if (command=="FADEOUTMUSIC") { } else if (command=="FADEOUTMUSIC") {
draw::fadeout(); draw::fadeout();
audio::fadeoutMusic(); audio::fadeoutMusic();
} else if (command=="END") {
fclose(sequence_file);
const int fase = game::getConfig("fase");
if ( fase == -1 || fase == 30) {
gamestate::menu::init();
} else {
gamestate::prefase::init();
}
return true;
} }
} }
} }

View File

@@ -104,8 +104,8 @@ namespace file
// Variables // Variables
// =============================================================================================================================== // ===============================================================================================================================
static std::string resource_filename = ""; // Nom de l'arxiu de recursos static std::string resource_filename = DEFAULT_FILENAME; // Nom de l'arxiu de recursos
static std::string resource_folder = ""; // Nom de la carpeta de recursos static std::string resource_folder = DEFAULT_FOLDER; // Nom de la carpeta de recursos
static int file_source = SOURCE_FILE; // D'on anem a pillar els recursos, arxiu o carpeta static int file_source = SOURCE_FILE; // D'on anem a pillar els recursos, arxiu o carpeta
static std::string config_folder; // Nom de la carpeta on guardar la configuració static std::string config_folder; // Nom de la carpeta on guardar la configuració
std::vector<keyvalue_t> config; // Vector amb els valors guardats a l'arxiu de configuració std::vector<keyvalue_t> config; // Vector amb els valors guardats a l'arxiu de configuració
@@ -131,7 +131,7 @@ namespace file
file_source = src % 2; // mod 2 de forma que sempre es un valor vàlid, 0 (arxiu) o 1 (carpeta) file_source = src % 2; // mod 2 de forma que sempre es un valor vàlid, 0 (arxiu) o 1 (carpeta)
// Si volem que busque en carpeta i encara no haviem especificat una carpeta, usem la per defecte // Si volem que busque en carpeta i encara no haviem especificat una carpeta, usem la per defecte
if (src == SOURCE_FOLDER && resource_folder == "") if (/*src == SOURCE_FOLDER && */resource_folder == "")
{ {
setResourceFolder(DEFAULT_FOLDER); setResourceFolder(DEFAULT_FOLDER);
} }
@@ -165,7 +165,7 @@ namespace file
// Per a cada arxiu inclos en l'arxiu de recursos... // Per a cada arxiu inclos en l'arxiu de recursos...
for (unsigned int i = 0; i < num_files; ++i) for (unsigned int i = 0; i < num_files; ++i)
{ {
// Llegim en quina posició està i quant copua // Llegim en quina posició està i quant ocupa
uint32_t file_offset, file_size; uint32_t file_offset, file_size;
fi.read((char *)&file_offset, 4); fi.read((char *)&file_offset, 4);
fi.read((char *)&file_size, 4); fi.read((char *)&file_size, 4);
@@ -215,7 +215,7 @@ namespace file
uint32_t count = 0; uint32_t count = 0;
while (!found && count < toc.size()) while (!found && count < toc.size())
{ {
found = (resourcename == toc[count].path); found = (resource_folder + resourcename == toc[count].path);
if (!found) if (!found)
{ {
count++; count++;
@@ -286,7 +286,7 @@ namespace file
uint32_t count = 0; uint32_t count = 0;
while (!found && count < toc.size()) while (!found && count < toc.size())
{ {
found = (resourcename == toc[count].path); found = (resource_folder + resourcename == toc[count].path);
if (!found) if (!found)
{ {
count++; count++;

View File

@@ -1,3 +0,0 @@
#pragma once
const char *versio = "v1.2.0";