@@ -1639,12 +1639,20 @@ init -4 python in mas_sprites:
16391639 cache_acs[day_key] = None
16401640 return
16411641
1642+ # structure modifiers
1643+ if acs.use_folders:
1644+ pfx = " "
1645+ dlm = " /"
1646+ else :
1647+ pfx = PREFIX_ACS
1648+ dlm = ART_DLM
1649+
16421650 # build img list minus file extensions
16431651 img_list = [
16441652 A_T_MAIN,
1645- PREFIX_ACS ,
1653+ pfx ,
16461654 acs.img_sit,
1647- ART_DLM ,
1655+ dlm ,
16481656 poseid,
16491657 arm_code,
16501658 FILE_EXT,
@@ -2308,47 +2316,69 @@ init -4 python in mas_sprites:
23082316 OUT:
23092317 rk_list - list to add render keys to
23102318 """
2311- # build img str
2312- if lean:
2313- img_list = (
2314- H_MAIN,
2315- PREFIX_HAIR_LEAN,
2316- lean,
2317- ART_DLM,
2318- hair.img_sit,
2319- ART_DLM,
2320- hair_key,
2321- FILE_EXT,
2322- )
2323-
2324- else :
2325- img_list = (
2326- H_MAIN,
2327- PREFIX_HAIR,
2328- hair.img_sit,
2329- ART_DLM,
2330- hair_key,
2331- FILE_EXT,
2332- )
2333-
2334- # genreate string for key check
2335- img_str = " " .join(img_list)
23362319
23372320 # key check
2338- img_key = (flt, img_str )
2321+ img_key = (flt, hair.img_sit, lean, hair_key )
23392322 cache_hair = _gc(CID_HAIR)
23402323 if img_key in cache_hair:
23412324 if cache_hair[img_key] is not None :
23422325 rk_list.append((img_key, CID_HAIR, None , None ))
23432326 return
23442327
23452328 # check if mid and no need to render
2346- if hair_key == MHAIR:
2329+ if hair_key in ( MHAIR, store.MASHair.LAYER_MID) :
23472330 if hair.mpm_mid is None or not hair.mpm_mid.get(leanpose, False ):
23482331 # mid not in this hair for this pose
23492332 cache_hair[img_key] = None
23502333 return
23512334
2335+ # build img str
2336+ if lean:
2337+
2338+ if hair.use_folders:
2339+ img_list = (
2340+ H_MAIN,
2341+ hair.img_sit,
2342+ " /" ,
2343+ lean,
2344+ ART_DLM,
2345+ hair_key,
2346+ FILE_EXT,
2347+ )
2348+
2349+ else :
2350+ img_list = (
2351+ H_MAIN,
2352+ PREFIX_HAIR_LEAN,
2353+ lean,
2354+ ART_DLM,
2355+ hair.img_sit,
2356+ ART_DLM,
2357+ hair_key,
2358+ FILE_EXT,
2359+ )
2360+
2361+ else :
2362+
2363+ if hair.use_folders:
2364+ pfx = " "
2365+ dlm = " /"
2366+ else :
2367+ pfx = PREFIX_HAIR
2368+ dlm = ART_DLM
2369+
2370+ img_list = (
2371+ H_MAIN,
2372+ pfx,
2373+ hair.img_sit,
2374+ dlm,
2375+ hair_key,
2376+ FILE_EXT,
2377+ )
2378+
2379+ # genreate string for key check
2380+ img_str = " " .join(img_list)
2381+
23522382 # otherwise need to build ImageBase
23532383 rk_list.append((
23542384 img_key,
@@ -2597,12 +2627,13 @@ init -4 python in mas_sprites:
25972627 # initial values
25982628 fpfx = face_lean_mode(lean)
25992629 rk_list = []
2630+ back_hk, mid_hk, front_hk = hair._get_hair_keys()
26002631
26012632 # 1. pre-acs
26022633 _rk_accessory_list(rk_list, acs_pre_list, flt, leanpose)
26032634
26042635 # 2. back hair
2605- _rk_hair(rk_list, hair, flt, BHAIR , lean, leanpose)
2636+ _rk_hair(rk_list, hair, flt, back_hk , lean, leanpose)
26062637
26072638 # 3. bbh-acs
26082639 _rk_accessory_list(rk_list, acs_bbh_list, flt, leanpose)
@@ -2645,7 +2676,7 @@ init -4 python in mas_sprites:
26452676 _rk_accessory_list(rk_list, acs_bmh_list, flt, leanpose)
26462677
26472678 # 13. mid-hair
2648- _rk_hair(rk_list, hair, flt, MHAIR , lean, leanpose)
2679+ _rk_hair(rk_list, hair, flt, mid_hk , lean, leanpose)
26492680
26502681 # 14. mmh-acs
26512682 _rk_accessory_list(rk_list, acs_mhh_list, flt, leanpose)
@@ -2700,7 +2731,7 @@ init -4 python in mas_sprites:
27002731 _rk_face_pre(rk_list, flt, fpfx, lean, blush)
27012732
27022733 # 28. front-hair
2703- _rk_hair(rk_list, hair, flt, FHAIR , lean, leanpose)
2734+ _rk_hair(rk_list, hair, flt, front_hk , lean, leanpose)
27042735
27052736 # 29. afh-acs
27062737 _rk_accessory_list(rk_list, acs_afh_list, flt, leanpose)
0 commit comments