# bap-room-packager This program will take a collection of [Bapalon](https://akuma-kira.itch.io/bap) rooms and automatically package them into BAP's directory format. For a well developed example, see [SOUP ROOMS](https://kiteline.itch.io/soup-rooms). ## Room Folder Setup Each room folder must contain at minimum the following images. Every other file is optional. - ART - CREDIT - FLOOR - ROOF - WALL If the following optional images are not included, they will be automatically filled in with a transparent png file. - MINI - INTERACT - LAYER If the following optional audios are not included, they will be automatically filled in with a silent wav file. - FOOT - MUSIC Per BAP's readme file, here's a list of accepted file formats. Read BAP's readme file for engine limitations. - image - PNG - JPG - BMP - audio - WAV - MP3 - OGG - MIDI ### Room Settings Each room's settings should be placed in a `ROOM.ini` (or `ROOM.txt`) file. Read BAP's readme file for more details of each setting. The settings from each `ROOM.ini` file will be used to generate the final `CF.ini` file. The following is an example `ROOM.ini` file. This is also the file's default settings, so any room with no `ROOM.ini`, or with missing settings from their `ROOM.ini` file, will use these values. The section title does not matter, in this case it's `example`. ```ini [example] size=1 speed=1 FOV=55 Texture_Repeat=3 Room_Height=350 Layer_Frames=1 Fog_Color=0 Fog_End=-1 Mini_speed=1 ``` ## Usage You can view the help screen with `bappackage -h`: ```txt Usage of bappackage: -basePath string path to your rooms collection (default "./rooms") -outPath string output path (default "./rooms_out") -roomPerNight int rooms per night (default 4) -splash1 int number of seconds splashscreen 1 will take (default 2) -splash2 int number of seconds splashscreen 2 will take (default 2) ``` The folder given by `basePath` will contain all of the room folders. For example the following folder structure: ```txt rooms ├───room_one │ ├───ART.png │ ├───... │ └───ROOM.ini ├───my_second_room │ ├───ART.png │ ├───... │ └───ROOM.ini └───third_room ├───ART.png ├───... └───ROOM.ini ``` The folder given by `outPath` can safely be the folder with BAP. This program will only touch the `DATA/NIGHT_*` folders and the `CF.ini` file in this folder. `roomPerNight` is used for rooms that do not have an assigned night and room number. ### Assigning Night and Room Numbers The `ROOM.ini` file accpets 2 extra properties: `night` and `room`. This allows you to organize your room order manually. Any rooms without these properties will only be placed in nights after all manually assigned rooms. Here is an example of the example `ROOM.ini` above but directly assigned to night 1 room 1. ```ini night=1 room=1 [example] size=1 speed=1 FOV=55 Texture_Repeat=3 Room_Height=350 Layer_Frames=1 Fog_Color=0 Fog_End=-1 Mini_speed=1 ```