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
arounders
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
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:
@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"
windows_debug:
@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:
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:
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:
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)"
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
![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...
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...
REQUERIMENTS TÈCNICS
====================
## REQUERIMENTS TÈCNICS
[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
Teòricament, deuria funcionar amb comps molt més xungos, pero no tinc temps ara de provar-ho.
* Targeta de só.
* Targeta de video.
* Ratolí.
* Teclat.
* Disc Dur.
* Monitor.
* Impresora (¿¿??)
- Targeta de só.
- Targeta de video.
- Ratolí.
- Teclat.
- Disc Dur.
- Monitor.
- Impresora (¿¿??)
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.
Teclat:
ESC: Mostra el menú intern del joc, desde el qual pots:
CONTINUAR: Continues jugant per on anaves
REINICIAR: Reinicia el nivell actual
TORNAR AL MENU: Pos aixó
EIXIR: Eix del programa
P: Pausa (tornar a apretar per a eixir de la Pausa)
**Teclat**:
- **ESC**: Mostra el menú intern del joc, desde el qual pots:
- **CONTINUAR**: Continues jugant per on anaves
- **REINICIAR**: Reinicia el nivell actual
- **TORNAR AL MENU**: Pos aixó
- **EIXIR**: Eix del programa
- **P**: Pausa (tornar a apretar per a eixir de la Pausa)
Ratolí:
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.
Boto del mig: Pausa
**Ratolí**:
- 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.
- 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
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
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
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
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ó.
* Escalera:
- **Escalera**:
Construeix una escalera fins que no puga seguir o s'acaven els escalons. Es dú a terme
nomes pulsar el botó.
* Pasarela:
- **Pasarela**:
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
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.
* Suicidi:
- **Suicidi**:
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
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...
RECOMANACIONS
=============
## RECOMANACIONS
- El secret de la majoria dels nivells és començar bé. Deuràs tindre reflexos d'acer per a
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.
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
* 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.
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!!'
ESPERAR 2000
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!'
ESPERAR 3000
FADEOUT
END

View File

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

View File

@@ -15,3 +15,4 @@ PRINT 29 29 1 'QUE NO ELS SUPERA'
PRINT 29 39 1 'QUASI QUASI NINGU'
ESPERAR 3000
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'
ESPERAR 3000
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!'
ESPERAR 3000
FADEOUT
END

View File

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

View File

@@ -46,3 +46,4 @@ PRINT 109 9 1 '"LA CAGAMOL!!!'
PRINT 109 16 1 'AHORAL QUE HAGOL!"'
ESPERAR 5000
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 "jgame.h"
#include "aux_font.h"
#include "versio.h"
namespace gamestate
{
@@ -55,7 +54,9 @@ namespace gamestate
draw::draw(fondo);
font::print(277,192, versio);
#ifdef VERSION
font::print(277,192, VERSION);
#endif
draw::setSource(cursor);
draw::draw(x, y);

View File

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

View File

@@ -106,9 +106,10 @@ namespace gamestate
{
char *buffer = file::getFileBuffer("offsets.bal");
int punter = (game::getConfig("fase")-1)*11;
int punter = (game::getConfig("fase")-1)*10;
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);
return passFile;

View File

@@ -79,7 +79,6 @@ namespace gamestate
if (command=="ESPERAR") {
fscanf(sequence_file, "%i", &val);
printf("ESPERAR %i\n", val);
wait_until = SDL_GetTicks() + val;
} else if (command=="FADEIN") {
@@ -108,6 +107,16 @@ namespace gamestate
} else if (command=="FADEOUTMUSIC") {
draw::fadeout();
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
// ===============================================================================================================================
static std::string resource_filename = ""; // Nom de l'arxiu de recursos
static std::string resource_folder = ""; // Nom de la carpeta de recursos
static std::string resource_filename = DEFAULT_FILENAME; // Nom de l'arxiu 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 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ó
@@ -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)
// 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);
}
@@ -165,7 +165,7 @@ namespace file
// Per a cada arxiu inclos en l'arxiu de recursos...
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;
fi.read((char *)&file_offset, 4);
fi.read((char *)&file_size, 4);
@@ -215,7 +215,7 @@ namespace file
uint32_t count = 0;
while (!found && count < toc.size())
{
found = (resourcename == toc[count].path);
found = (resource_folder + resourcename == toc[count].path);
if (!found)
{
count++;
@@ -286,7 +286,7 @@ namespace file
uint32_t count = 0;
while (!found && count < toc.size())
{
found = (resourcename == toc[count].path);
found = (resource_folder + resourcename == toc[count].path);
if (!found)
{
count++;

View File

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