post suggestions here

Windows and Linux editor of PoP1 (for DOS and SNES) and PoP2 (for DOS).
User avatar
Norbert
The Prince of Persia
The Prince of Persia
Posts: 5743
Joined: April 9th, 2009, 10:58 pm

Re: post suggestions here

Post by Norbert »

VelCheran wrote: December 12th, 2020, 12:40 pmCould you please add compatibility with Prince 1.4?
Editor apoplexy is already fully compatible with 1.4 (and 1.3).
As for the cheat code, you can start apoplexy with "-i" or "--improved" to use "improved".
Example: apoplexy.exe -i
See "-h", "-?" or "--help" for other command-line options.
I'll put auto-detection on my todo-list.
VelCheran wrote: December 12th, 2020, 1:26 pm[...] change the skeleton [special event] details?
Not currently possible.
But as a work-around you can start with a CusPop-generated PRINCE.EXE.
User avatar
VelCheran
Vizier
Vizier
Posts: 127
Joined: May 28th, 2020, 7:26 pm

Re: post suggestions here

Post by VelCheran »

Ok, thanks :)
David
The Prince of Persia
The Prince of Persia
Posts: 2846
Joined: December 11th, 2008, 9:48 pm
Location: Hungary

Re: post suggestions here

Post by David »

Norbert wrote: December 12th, 2020, 6:39 pm As for the cheat code, you can start apoplexy with "-i" or "--improved" to use "improved".
[...]
I'll put auto-detection on my todo-list.
Or as a quick and dirty solution, you could make Apoplexy pass both "megahit" and "improved" on the command line.
User avatar
atrueprincefanfrom18
Site Shah
Site Shah
Posts: 1782
Joined: January 21st, 2020, 2:53 pm
Contact:

Re: post suggestions here

Post by atrueprincefanfrom18 »

David wrote: December 13th, 2020, 10:53 am
Norbert wrote: December 12th, 2020, 6:39 pm As for the cheat code, you can start apoplexy with "-i" or "--improved" to use "improved".
[...]
I'll put auto-detection on my todo-list.
Or as a quick and dirty solution, you could make Apoplexy pass both "megahit" and "improved" on the command line.
And Norbert, once you edit this, please also add the "debug" in it.
Love to create new MODS :)

My complete list of mods until now!

My channel. Do consider subscribing it! :)
User avatar
Norbert
The Prince of Persia
The Prince of Persia
Posts: 5743
Joined: April 9th, 2009, 10:58 pm

Re: post suggestions here

Post by Norbert »

atrueprincefanfrom18 wrote: December 13th, 2020, 10:59 amAnd Norbert, once you edit this, please also add the "debug" in it.
If you start apoplexy with "-d" or "--debug", then SDLPoP also runs with "debug".
User avatar
atrueprincefanfrom18
Site Shah
Site Shah
Posts: 1782
Joined: January 21st, 2020, 2:53 pm
Contact:

Re: post suggestions here

Post by atrueprincefanfrom18 »

If it's easy to implement, a key combination that would somehow copy the current room and the tile (row and column) and another key to paste it into the events screen.

So, if I'm on Room 1 and my cursor (the light green shadow) is being shown on Row 2, Column 5 and if I press the copy room and tile (let's say c for now) and if I go to the events tab, after I select the event number I want to paste that to I can press another key (let's say v for now) and the room and tile key combination would be selected into the screen.

It might save some time for me. I don't know about others, but I continously forget the room number and I have to press Esc, check the room and then see which tile it was for which I'm trying to set the event.

If this is implemented, I can just hover on the tile, press the key (c, in this example) and then press E (for events screen), paste the combination (v, in this example) and hit S (Save).
Love to create new MODS :)

My complete list of mods until now!

My channel. Do consider subscribing it! :)
User avatar
Norbert
The Prince of Persia
The Prince of Persia
Posts: 5743
Joined: April 9th, 2009, 10:58 pm

Re: post suggestions here

Post by Norbert »

atrueprincefanfrom18 wrote: February 1st, 2021, 3:00 pmcopy the current room and the tile (row and column) and another key to paste it into the events screen
I should indeed look into making it easier to point buttons to tiles.
Preferably, I should make it possible to do so without having to visit the events screen.
Maybe similar to (or better than) how it works in NESPrincEd.
User avatar
dmitrys
Developer
Developer
Posts: 195
Joined: October 1st, 2020, 6:05 am

Re: post suggestions here

Post by dmitrys »

I am wondering if it could be possible to edit rooms inside SDLPoP quicksave files. It would make testing specific rooms with different tile combinations when designing levels much easier.
User avatar
Norbert
The Prince of Persia
The Prince of Persia
Posts: 5743
Joined: April 9th, 2009, 10:58 pm

Re: post suggestions here

Post by Norbert »

dmitrys wrote: March 8th, 2021, 2:23 am I am wondering if it could be possible to edit rooms inside SDLPoP quicksave files. It would make testing specific rooms with different tile combinations when designing levels much easier.
Can you give one or two examples; that'll likely make it easier for me to understand what you mean.
User avatar
dmitrys
Developer
Developer
Posts: 195
Joined: October 1st, 2020, 6:05 am

Re: post suggestions here

Post by dmitrys »

Room layouts are saved inside quicksave files. So if you were to edit LEVELS.DAT and then reload the quick save, it would still retain the old room layout. It would be nice to edit quicksaves directly.
User avatar
Norbert
The Prince of Persia
The Prince of Persia
Posts: 5743
Joined: April 9th, 2009, 10:58 pm

Re: post suggestions here

Post by Norbert »

dmitrys wrote: March 8th, 2021, 2:51 am
Norbert wrote: March 8th, 2021, 2:48 am
dmitrys wrote: March 8th, 2021, 2:23 am I am wondering if it could be possible to edit rooms inside SDLPoP quicksave files. It would make testing specific rooms with different tile combinations when designing levels much easier.
Can you give one or two examples; that'll likely make it easier for me to understand what you mean.
Room layouts are saved inside quicksave files. So if you were to edit LEVELS.DAT and then reload the quick save, it would still retain the old room layout. It would be nice to edit quicksaves directly.
Perhaps I was unclear, but I was looking for a use case example. I understand that you want to edit quick save files and how this would work technically, but not what exact value this would add over existing functionality. I'm essentially trying to find out what workflow you are looking for, to assess whether or not my technical solution mirrors yours. My guess is that, once you're happy with a work-in-progress level, but you're not sure how to continue, you would like to be able to quick save (and, if necessary, later quick load) the level. This would allow you to experiment more freely; without the risk of messing up your earlier work. If that's what you mean, I think technically there may be better solutions, such as .plv export/import functionality, also for compatibility with level editor RoomShaker. Or, to simplify implementation on my part, the PoP1 XML format, that apoplexy can already export/import. Or an in-memory only - i.e. non-disk - operation, where the program merely remembers old level states until the program is closed, such as (multi-level) undo. Or file copies of LEVELS.DAT, similar to how the program already saves LEVELS.BAK into the prince/ directory before modifying LEVELS.DAT. I've not yet looked at the quick save format, so I don't know how complex and usable it is, nor how elegant - I can imagine a theoretical situation where its contents is so ugly that I'd be reluctant to invest the time to support it. I currently don't have sufficient free time to work on the software, but I'll add a link to this post on my to-do list.
User avatar
dmitrys
Developer
Developer
Posts: 195
Joined: October 1st, 2020, 6:05 am

Re: post suggestions here

Post by dmitrys »

When modifying guard's logic (falling across multiple rooms on tiles, having the second guard in the room starting to fight in the correct position when the first guard gets killed) it is helpful to restart the level with kid and guards in a specific position of some room. Quicksave does the work here.

But in some scenarios you realize that you need to replace a tile because a guard does not land where you expect him to or ends up too close to kid to react. So the workflow ends up modifying "levels.dat" then recreating the scenario (kid's positions, guard's positions, etc) which can take a while and is repetitive.

This not something that is needed often but would have been very convenient when it does. But there are ways to do this programmatically in SDL PoP.
User avatar
Norbert
The Prince of Persia
The Prince of Persia
Posts: 5743
Joined: April 9th, 2009, 10:58 pm

Re: post suggestions here

Post by Norbert »

dmitrys wrote: March 8th, 2021, 4:34 pm When modifying guard's logic (falling across multiple rooms on tiles, having the second guard in the room starting to fight in the correct position when the first guard gets killed) it is helpful to restart the level with kid and guards in a specific position of some room. Quicksave does the work here.

But in some scenarios you realize that you need to replace a tile because a guard does not land where you expect him to or ends up too close to kid to react. So the workflow ends up modifying "levels.dat" then recreating the scenario (kid's positions, guard's positions, etc) which can take a while and is repetitive.

This not something that is needed often but would have been very convenient when it does. But there are ways to do this programmatically in SDL PoP.
Ah.
Falcury, any chance you could document the QUICKSAVE.SAV format?
David
The Prince of Persia
The Prince of Persia
Posts: 2846
Joined: December 11th, 2008, 9:48 pm
Location: Hungary

Re: post suggestions here

Post by David »

Here is a quick hack to change quickload not to load the level data from QUICKSAVE.SAV when you hold a certain key.

In seg000.c, change this:

Code: Select all

	process(level);
to this:

Code: Select all

	if (key_states[SDL_SCANCODE_RSHIFT]) {
		fseek(quick_fp, sizeof(level), SEEK_CUR);
	} else {
		process(level);
	}
This will make quickload skip over the level data instead of loading it, if the right Shift key is held down.
You can change it to some other key if you'd like.

(Quicksave will also skip the level data instead of saving it, if the right Shift key is held down. I don't know if that is good for anything.)

So, every time you change LEVELS.DAT, press Ctrl+A to load the new level, then press right Shift+F9 to load the saved state onto that new level.
User avatar
dmitrys
Developer
Developer
Posts: 195
Joined: October 1st, 2020, 6:05 am

Re: post suggestions here

Post by dmitrys »

This is great.

The feature should probably be enabled if debug cheats are enabled.
Post Reply