07th-mod / 07th-mod/umineko-question
Clothes switching functions cause old sprites to disappear
- Dominant language
- C#
- Stars
- 98
- Forks
- 10
- PR merge metrics
- No merged PRs in 30d
Description
In the question arcs, clothes switching is done by calling the clothes switch functions which rebind certain variables controling the sprites for each character:
example:
```
gosub *MAR_Isyou3
gosub *ROS_Isyou2
```
```
*ROS_Isyou2
mov $ROS_DefA1,"bmp\TATI\ROS\2\ROS_DefA1" ;楼座立ち絵デフォ
mov $ROS_WaraiA1,"bmp\TATI\ROS\2\ROS_WaraiA1" ;笑い
...
mov $ROS_IkariA4,"bmp\TATI\ROS\2\ROS_IkariA4"
mov $ROS_AseruA1,"bmp\TATI\ROS\2\ROS_AseruA1"
return
```
This works fine with the new sprites because there is a '2' folder inside the 'bmp\tati\ros' folder, but the old sprites do not have such a folder, causing the sprites to dissapear.
The easy solution is to add an if statement in each of the clothes switching functions which doesn't perform the switch if old sprites are enabled. Could also do a `fileexist` on the first sprite path.
I also tested what happens if you save after a clothes switch, and that appears to work correctly, so that means (probably) the sprite path variables are set as persistent (by being in the persistant variable range of numbers)
**EDIT:** I believe another way to fix this issue would be to generate upscaled ryukishi sprites and then just overwrite the normal sprites with them. Then we can deal with the missing sprites by just adding duplicate sprites for the alternate clothes.
Contributor guide
No contributing guide indexed for this repository
Research direction
Look for the clothes switching functions (like *ROS_Isyou2) in the script files. Check how sprite paths are set and where old vs. new sprite folders are referenced. Add a condition using fileexist or a flag for old sprites to skip the rebinding. Test by enabling old sprites and triggering a clothes switch to ensure sprites remain visible.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp
- Domain
- game-dev
- Issue type
- Bug
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Stale
- Clarity
- Clearly specified
- Newbie friendliness
- 65/100