diff --git a/.direnv/flake-inputs/kvz5368wsc21943p8038p3n90vzb1mbh-source b/.direnv/flake-inputs/kvz5368wsc21943p8038p3n90vzb1mbh-source deleted file mode 120000 index 5b4aaf6b..00000000 --- a/.direnv/flake-inputs/kvz5368wsc21943p8038p3n90vzb1mbh-source +++ /dev/null @@ -1 +0,0 @@ -/nix/store/kvz5368wsc21943p8038p3n90vzb1mbh-source \ No newline at end of file diff --git a/.direnv/flake-inputs/p58d2j0ac7zvja5jl14xzbc19fakjxh2-source b/.direnv/flake-inputs/p58d2j0ac7zvja5jl14xzbc19fakjxh2-source deleted file mode 120000 index 5529c3b0..00000000 --- a/.direnv/flake-inputs/p58d2j0ac7zvja5jl14xzbc19fakjxh2-source +++ /dev/null @@ -1 +0,0 @@ -/nix/store/p58d2j0ac7zvja5jl14xzbc19fakjxh2-source \ No newline at end of file diff --git a/.direnv/flake-inputs/yj1wxm9hh8610iyzqnz75kvs6xl8j3my-source b/.direnv/flake-inputs/yj1wxm9hh8610iyzqnz75kvs6xl8j3my-source deleted file mode 120000 index f17959fc..00000000 --- a/.direnv/flake-inputs/yj1wxm9hh8610iyzqnz75kvs6xl8j3my-source +++ /dev/null @@ -1 +0,0 @@ -/nix/store/yj1wxm9hh8610iyzqnz75kvs6xl8j3my-source \ No newline at end of file diff --git a/.direnv/flake-profile-a5d5b61aa8a61b7d9d765e1daf971a9a578f1cfa b/.direnv/flake-profile-a5d5b61aa8a61b7d9d765e1daf971a9a578f1cfa deleted file mode 120000 index a7b3621b..00000000 --- a/.direnv/flake-profile-a5d5b61aa8a61b7d9d765e1daf971a9a578f1cfa +++ /dev/null @@ -1 +0,0 @@ -/nix/store/ayfhlk9k47y780zqh1yidwm3ikkbf6p3-nix-shell-env \ No newline at end of file diff --git a/.direnv/flake-profile-a5d5b61aa8a61b7d9d765e1daf971a9a578f1cfa.rc b/.direnv/flake-profile-a5d5b61aa8a61b7d9d765e1daf971a9a578f1cfa.rc deleted file mode 100644 index 0e9915ee..00000000 --- a/.direnv/flake-profile-a5d5b61aa8a61b7d9d765e1daf971a9a578f1cfa.rc +++ /dev/null @@ -1,1879 +0,0 @@ -unset shellHook -PATH=${PATH:-} -nix_saved_PATH="$PATH" -XDG_DATA_DIRS=${XDG_DATA_DIRS:-} -nix_saved_XDG_DATA_DIRS="$XDG_DATA_DIRS" -AR='ar' -export AR -AR_FOR_TARGET='ar' -export AR_FOR_TARGET -AS='as' -export AS -AS_FOR_TARGET='as' -export AS_FOR_TARGET -BASH='/nix/store/0rwyq0j954a7143p0wzd4rhycny8i967-bash-5.2-p15/bin/bash' -CC='gcc' -export CC -CC_FOR_TARGET='gcc' -export CC_FOR_TARGET -CONFIG_SHELL='/nix/store/0rwyq0j954a7143p0wzd4rhycny8i967-bash-5.2-p15/bin/bash' -export CONFIG_SHELL -CXX='g++' -export CXX -CXX_FOR_TARGET='g++' -export CXX_FOR_TARGET -HOSTTYPE='x86_64' -HOST_PATH='/nix/store/rdazrpjihdikwm84f3p7mmdjjj6a0mj3-rgbds-0.6.1/bin:/nix/store/3hbxw05vfs6m1155xa6pvribs3bv777n-gcc-wrapper-12.2.0/bin:/nix/store/syp0507hrby53pprfi7n4wppms3b7ba2-binutils-wrapper-2.40/bin:/nix/store/lqwlz76ns9c46qj9lcihb6vzxp3gmy0q-gnumake-4.4.1/bin:/nix/store/4wpa7msnh75ggzm2abynwrfwqlwnjiyd-sameboy-0.15.8/bin:/nix/store/zavxmfi6i8n0b92mina6w05gr5wj5sdr-imagemagick-7.1.1-19-dev/bin:/nix/store/fmp9z2fr8di8jgnhvklwbnm4hbr0l2cr-curl-8.1.1-dev/bin:/nix/store/pfcnhh1sd35qnf44983xk1l0sfma9i47-brotli-1.0.9/bin:/nix/store/y30i2c84p2zfz1f4p2gcmnbcf067kv15-libkrb5-1.20.2-dev/bin:/nix/store/a9mpsvnl4s99vlgmcyx5g5aqinrkm479-libkrb5-1.20.2/bin:/nix/store/jbwl6nx9py1dpn0w1yza3c3psd6y4fqk-nghttp2-1.51.0-bin/bin:/nix/store/70y6kl0jkqydlz01c6s998bvp9wkx98j-libidn2-2.3.4-bin/bin:/nix/store/43n3rih15qhaykl2cal74rj2ziygyqns-openssl-3.0.11-bin/bin:/nix/store/j41ms763gpyya3hylqmaq1p108bhvkcm-zstd-1.5.5-bin/bin:/nix/store/81d38brw9cnw2qk2kynrf5dr6hhkcq66-zstd-1.5.5/bin:/nix/store/bhzm4gqpg3sn7h4a7sgnlh11mb7p9dlx-curl-8.1.1-bin/bin:/nix/store/6d9vlwwy7kvxjqmqg4cldgg9mr8nflff-bzip2-1.0.8-bin/bin:/nix/store/xxfh7wqjkwr3mgl2a8ym9y7hvxywa32m-freetype-2.13.0-dev/bin:/nix/store/86cvg8vkqkjls6cic26nb5rjjdjcjga3-libpng-apng-1.6.39-dev/bin:/nix/store/d8qi89d2qiy8xvhfqmrxwl7lhxaz70yn-libjpeg-turbo-2.1.5.1-bin/bin:/nix/store/alm0d2cqhqz89gb1gyr3i2yw81lwkq7m-libdeflate-1.18/bin:/nix/store/agry2lhy6ilgyacx75w2ycqsdfwr513f-xz-5.4.3-bin/bin:/nix/store/7cfdk7sdx7sz5pwbh2qmcxxn9gwza5zp-libtiff-4.5.1-bin/bin:/nix/store/zhrjzzrai8xz5rh2vnq4zys9ivb9gihy-lcms2-2.15-bin/bin:/nix/store/vh1hz1fvqgfmcsvjc7x8mv77l4sq091l-libwebp-1.3.2/bin:/nix/store/mqlqh4r9bwjksbv22nx0ws6jmaz51dk9-imagemagick-7.1.1-19/bin:/nix/store/w8vm09hri2zz7yacryzzzxvsapik4ps4-coreutils-9.1/bin:/nix/store/4cxs4cigh2zdxvma52ygm3mh2igq70iw-findutils-4.9.0/bin:/nix/store/vikpb6rhmi8zzgsx8syjng9dic8dplm7-diffutils-3.9/bin:/nix/store/4mca20b13q88s6llkr8mc468rh9l9bmr-gnused-4.9/bin:/nix/store/b4in4hmq54h6l34a0v6ha40z97c0lzw2-gnugrep-3.7/bin:/nix/store/p7v8rc82yi4zngjw2z7isgqvfi32l1aj-gawk-5.2.1/bin:/nix/store/2gcfy5f68y7gkryp3wrjmvlci42qb61a-gnutar-1.35/bin:/nix/store/5xzh0z66hpcd3k578my76lx4qgra334q-gzip-1.12/bin:/nix/store/6d9vlwwy7kvxjqmqg4cldgg9mr8nflff-bzip2-1.0.8-bin/bin:/nix/store/qlcm8dzsaa6wyycmx7in8rz6x3pzf6zf-gnumake-4.4.1/bin:/nix/store/0rwyq0j954a7143p0wzd4rhycny8i967-bash-5.2-p15/bin:/nix/store/0g52i0ih3h0d9s40m84gksi2jjm4k3bf-patch-2.7.6/bin:/nix/store/agry2lhy6ilgyacx75w2ycqsdfwr513f-xz-5.4.3-bin/bin:/nix/store/rgg874xkzlfmkzkm7911dwnihswkf54g-file-5.44/bin' -export HOST_PATH -IFS=' -' -IN_NIX_SHELL='impure' -export IN_NIX_SHELL -LD='ld' -export LD -LD_FOR_TARGET='ld' -export LD_FOR_TARGET -LINENO='76' -MACHTYPE='x86_64-pc-linux-gnu' -NIX_BINTOOLS='/nix/store/syp0507hrby53pprfi7n4wppms3b7ba2-binutils-wrapper-2.40' -export NIX_BINTOOLS -NIX_BINTOOLS_FOR_TARGET='/nix/store/syp0507hrby53pprfi7n4wppms3b7ba2-binutils-wrapper-2.40' -export NIX_BINTOOLS_FOR_TARGET -NIX_BINTOOLS_WRAPPER_TARGET_HOST_x86_64_unknown_linux_gnu='1' -export NIX_BINTOOLS_WRAPPER_TARGET_HOST_x86_64_unknown_linux_gnu -NIX_BINTOOLS_WRAPPER_TARGET_TARGET_x86_64_unknown_linux_gnu='1' -export NIX_BINTOOLS_WRAPPER_TARGET_TARGET_x86_64_unknown_linux_gnu -NIX_BUILD_CORES='16' -export NIX_BUILD_CORES -NIX_CC='/nix/store/3hbxw05vfs6m1155xa6pvribs3bv777n-gcc-wrapper-12.2.0' -export NIX_CC -NIX_CC_FOR_TARGET='/nix/store/3hbxw05vfs6m1155xa6pvribs3bv777n-gcc-wrapper-12.2.0' -export NIX_CC_FOR_TARGET -NIX_CC_WRAPPER_TARGET_HOST_x86_64_unknown_linux_gnu='1' -export NIX_CC_WRAPPER_TARGET_HOST_x86_64_unknown_linux_gnu -NIX_CC_WRAPPER_TARGET_TARGET_x86_64_unknown_linux_gnu='1' -export NIX_CC_WRAPPER_TARGET_TARGET_x86_64_unknown_linux_gnu -NIX_CFLAGS_COMPILE=' -frandom-seed=ayfhlk9k47 -isystem /nix/store/lqwlz76ns9c46qj9lcihb6vzxp3gmy0q-gnumake-4.4.1/include -isystem /nix/store/zavxmfi6i8n0b92mina6w05gr5wj5sdr-imagemagick-7.1.1-19-dev/include -isystem /nix/store/fmp9z2fr8di8jgnhvklwbnm4hbr0l2cr-curl-8.1.1-dev/include -isystem /nix/store/pndmab9dmyjy2l39hyvhk90zrbhnm100-brotli-1.0.9-dev/include -isystem /nix/store/y30i2c84p2zfz1f4p2gcmnbcf067kv15-libkrb5-1.20.2-dev/include -isystem /nix/store/r1ymwnsbicl6g7nsgmmk5jz2jdrv4mbd-nghttp2-1.51.0-dev/include -isystem /nix/store/5qk6i18813rs74f2rsh77wchpyivbn8y-libidn2-2.3.4-dev/include -isystem /nix/store/7nbh3b6hhjqjs3nfy529g38l85iv46i9-openssl-3.0.11-dev/include -isystem /nix/store/20ivhr7fzqi8nirspwgvsvhfwrqj83ga-libssh2-1.11.0-dev/include -isystem /nix/store/j0zwp9zygvadcly9dxpm0f4ga7h0n8c9-zlib-1.2.13-dev/include -isystem /nix/store/4pifi04nz9l2i0l692ny148q94klml0r-zstd-1.5.5-dev/include -isystem /nix/store/32lspl6qhmsm53l5n4wpgcdfzcjn6br4-bzip2-1.0.8-dev/include -isystem /nix/store/xxfh7wqjkwr3mgl2a8ym9y7hvxywa32m-freetype-2.13.0-dev/include -isystem /nix/store/86cvg8vkqkjls6cic26nb5rjjdjcjga3-libpng-apng-1.6.39-dev/include -isystem /nix/store/2pkk6jcar40i32zhjicnqhhmly8q65hj-libjpeg-turbo-2.1.5.1-dev/include -isystem /nix/store/6d5xl0n42fqz5y4kzzwp2qyl4jn3yhxs-lcms2-2.15-dev/include -isystem /nix/store/3gzq3f5kg927z7jhbmymj5hca33a9b7l-libtiff-4.5.1-dev/include -isystem /nix/store/alm0d2cqhqz89gb1gyr3i2yw81lwkq7m-libdeflate-1.18/include -isystem /nix/store/xwr8c5nzw4ld2ldz800sz3z2yy80r1dx-xz-5.4.3-dev/include -isystem /nix/store/ar0khp6fp6ibn35rskgmaayf5gh8by6q-libX11-1.8.7-dev/include -isystem /nix/store/kfg625m59v56cq6m4dq9fs7fgw8sakv6-xorgproto-2021.5/include -isystem /nix/store/iz3kaqxhp11cgxhy1gmb54gq7ym4my8f-libxcb-1.14-dev/include -isystem /nix/store/r2jzxqlg82d57cxcdkclnbc1sqvzkmyr-libXt-1.2.1-dev/include -isystem /nix/store/d1cx6s2vxrq1qs47cw88n13r5az2n047-libSM-1.2.3-dev/include -isystem /nix/store/6nca0jp43p4fv00jnzlj1aan0q14qgs1-libICE-1.0.10-dev/include -isystem /nix/store/vh1hz1fvqgfmcsvjc7x8mv77l4sq091l-libwebp-1.3.2/include -isystem /nix/store/lqwlz76ns9c46qj9lcihb6vzxp3gmy0q-gnumake-4.4.1/include -isystem /nix/store/zavxmfi6i8n0b92mina6w05gr5wj5sdr-imagemagick-7.1.1-19-dev/include -isystem /nix/store/fmp9z2fr8di8jgnhvklwbnm4hbr0l2cr-curl-8.1.1-dev/include -isystem /nix/store/pndmab9dmyjy2l39hyvhk90zrbhnm100-brotli-1.0.9-dev/include -isystem /nix/store/y30i2c84p2zfz1f4p2gcmnbcf067kv15-libkrb5-1.20.2-dev/include -isystem /nix/store/r1ymwnsbicl6g7nsgmmk5jz2jdrv4mbd-nghttp2-1.51.0-dev/include -isystem /nix/store/5qk6i18813rs74f2rsh77wchpyivbn8y-libidn2-2.3.4-dev/include -isystem /nix/store/7nbh3b6hhjqjs3nfy529g38l85iv46i9-openssl-3.0.11-dev/include -isystem /nix/store/20ivhr7fzqi8nirspwgvsvhfwrqj83ga-libssh2-1.11.0-dev/include -isystem /nix/store/j0zwp9zygvadcly9dxpm0f4ga7h0n8c9-zlib-1.2.13-dev/include -isystem /nix/store/4pifi04nz9l2i0l692ny148q94klml0r-zstd-1.5.5-dev/include -isystem /nix/store/32lspl6qhmsm53l5n4wpgcdfzcjn6br4-bzip2-1.0.8-dev/include -isystem /nix/store/xxfh7wqjkwr3mgl2a8ym9y7hvxywa32m-freetype-2.13.0-dev/include -isystem /nix/store/86cvg8vkqkjls6cic26nb5rjjdjcjga3-libpng-apng-1.6.39-dev/include -isystem /nix/store/2pkk6jcar40i32zhjicnqhhmly8q65hj-libjpeg-turbo-2.1.5.1-dev/include -isystem /nix/store/6d5xl0n42fqz5y4kzzwp2qyl4jn3yhxs-lcms2-2.15-dev/include -isystem /nix/store/3gzq3f5kg927z7jhbmymj5hca33a9b7l-libtiff-4.5.1-dev/include -isystem /nix/store/alm0d2cqhqz89gb1gyr3i2yw81lwkq7m-libdeflate-1.18/include -isystem /nix/store/xwr8c5nzw4ld2ldz800sz3z2yy80r1dx-xz-5.4.3-dev/include -isystem /nix/store/ar0khp6fp6ibn35rskgmaayf5gh8by6q-libX11-1.8.7-dev/include -isystem /nix/store/kfg625m59v56cq6m4dq9fs7fgw8sakv6-xorgproto-2021.5/include -isystem /nix/store/iz3kaqxhp11cgxhy1gmb54gq7ym4my8f-libxcb-1.14-dev/include -isystem /nix/store/r2jzxqlg82d57cxcdkclnbc1sqvzkmyr-libXt-1.2.1-dev/include -isystem /nix/store/d1cx6s2vxrq1qs47cw88n13r5az2n047-libSM-1.2.3-dev/include -isystem /nix/store/6nca0jp43p4fv00jnzlj1aan0q14qgs1-libICE-1.0.10-dev/include -isystem /nix/store/vh1hz1fvqgfmcsvjc7x8mv77l4sq091l-libwebp-1.3.2/include' -export NIX_CFLAGS_COMPILE -NIX_CFLAGS_COMPILE_FOR_TARGET=' -isystem /nix/store/lqwlz76ns9c46qj9lcihb6vzxp3gmy0q-gnumake-4.4.1/include -isystem /nix/store/zavxmfi6i8n0b92mina6w05gr5wj5sdr-imagemagick-7.1.1-19-dev/include -isystem /nix/store/fmp9z2fr8di8jgnhvklwbnm4hbr0l2cr-curl-8.1.1-dev/include -isystem /nix/store/pndmab9dmyjy2l39hyvhk90zrbhnm100-brotli-1.0.9-dev/include -isystem /nix/store/y30i2c84p2zfz1f4p2gcmnbcf067kv15-libkrb5-1.20.2-dev/include -isystem /nix/store/r1ymwnsbicl6g7nsgmmk5jz2jdrv4mbd-nghttp2-1.51.0-dev/include -isystem /nix/store/5qk6i18813rs74f2rsh77wchpyivbn8y-libidn2-2.3.4-dev/include -isystem /nix/store/7nbh3b6hhjqjs3nfy529g38l85iv46i9-openssl-3.0.11-dev/include -isystem /nix/store/20ivhr7fzqi8nirspwgvsvhfwrqj83ga-libssh2-1.11.0-dev/include -isystem /nix/store/j0zwp9zygvadcly9dxpm0f4ga7h0n8c9-zlib-1.2.13-dev/include -isystem /nix/store/4pifi04nz9l2i0l692ny148q94klml0r-zstd-1.5.5-dev/include -isystem /nix/store/32lspl6qhmsm53l5n4wpgcdfzcjn6br4-bzip2-1.0.8-dev/include -isystem /nix/store/xxfh7wqjkwr3mgl2a8ym9y7hvxywa32m-freetype-2.13.0-dev/include -isystem /nix/store/86cvg8vkqkjls6cic26nb5rjjdjcjga3-libpng-apng-1.6.39-dev/include -isystem /nix/store/2pkk6jcar40i32zhjicnqhhmly8q65hj-libjpeg-turbo-2.1.5.1-dev/include -isystem /nix/store/6d5xl0n42fqz5y4kzzwp2qyl4jn3yhxs-lcms2-2.15-dev/include -isystem /nix/store/3gzq3f5kg927z7jhbmymj5hca33a9b7l-libtiff-4.5.1-dev/include -isystem /nix/store/alm0d2cqhqz89gb1gyr3i2yw81lwkq7m-libdeflate-1.18/include -isystem /nix/store/xwr8c5nzw4ld2ldz800sz3z2yy80r1dx-xz-5.4.3-dev/include -isystem /nix/store/ar0khp6fp6ibn35rskgmaayf5gh8by6q-libX11-1.8.7-dev/include -isystem /nix/store/kfg625m59v56cq6m4dq9fs7fgw8sakv6-xorgproto-2021.5/include -isystem /nix/store/iz3kaqxhp11cgxhy1gmb54gq7ym4my8f-libxcb-1.14-dev/include -isystem /nix/store/r2jzxqlg82d57cxcdkclnbc1sqvzkmyr-libXt-1.2.1-dev/include -isystem /nix/store/d1cx6s2vxrq1qs47cw88n13r5az2n047-libSM-1.2.3-dev/include -isystem /nix/store/6nca0jp43p4fv00jnzlj1aan0q14qgs1-libICE-1.0.10-dev/include -isystem /nix/store/vh1hz1fvqgfmcsvjc7x8mv77l4sq091l-libwebp-1.3.2/include' -export NIX_CFLAGS_COMPILE_FOR_TARGET -NIX_ENFORCE_NO_NATIVE='1' -export NIX_ENFORCE_NO_NATIVE -NIX_HARDENING_ENABLE='fortify stackprotector pic strictoverflow format relro bindnow' -export NIX_HARDENING_ENABLE -NIX_LDFLAGS='-rpath /home/thorn/code/kep-hack/outputs/out/lib64 -rpath /home/thorn/code/kep-hack/outputs/out/lib -L/nix/store/ly38mak2vr5x0pziypgvqvcr2f4yhlnw-brotli-1.0.9-lib/lib -L/nix/store/a9mpsvnl4s99vlgmcyx5g5aqinrkm479-libkrb5-1.20.2/lib -L/nix/store/71rwvvhg1s2g50b6as072q0bb90hi19b-nghttp2-1.51.0-lib/lib -L/nix/store/4563gldw8ibz76f1a3x69zq3a1vhdpz9-libidn2-2.3.4/lib -L/nix/store/i57qjfacl3hv7sc1s1lj4z6fssh69nd3-openssl-3.0.11/lib -L/nix/store/jlw0nbw3kfgsg4ln1v4mm52mck2j2vns-libssh2-1.11.0/lib -L/nix/store/8mw6ssjspf8k1ija88cfldmxlbarl1bb-zlib-1.2.13/lib -L/nix/store/81d38brw9cnw2qk2kynrf5dr6hhkcq66-zstd-1.5.5/lib -L/nix/store/m072pj8xfk9hvv9zj6z982xqa6rgybw3-curl-8.1.1/lib -L/nix/store/hcixpw8a2h65md8022w4bpwf2k0xf4qx-bzip2-1.0.8/lib -L/nix/store/21zz2qdxhx3lp079b2md41j8sanxpf5q-libpng-apng-1.6.39/lib -L/nix/store/1gn3mk64r8k2r6p56vyh9v2v67mbprmx-freetype-2.13.0/lib -L/nix/store/la1wxy1qhqzjn2aqmcrgbm2cy8129ngp-libjpeg-turbo-2.1.5.1/lib -L/nix/store/alm0d2cqhqz89gb1gyr3i2yw81lwkq7m-libdeflate-1.18/lib -L/nix/store/5x7q95liyfijgfyvvvk90j5nq44agnjv-xz-5.4.3/lib -L/nix/store/fzgaxijjxxm1s6nkxfb44lxyjdcgqkgd-libtiff-4.5.1/lib -L/nix/store/f0ixrvbhxnprhg6gfzgybiagy5flihic-lcms2-2.15/lib -L/nix/store/203nmkl927nfi4bxj4v6qc1vnn08iydl-libxcb-1.14/lib -L/nix/store/i7vz86vq34m1rdgc8fnbqzcqp97kj9kz-libX11-1.8.7/lib -L/nix/store/1xc1hx5279iayglywil4i0vqcsrlydls-libICE-1.0.10/lib -L/nix/store/a1k5cf19r8kgmda39j20l07s1a7hwsqz-libSM-1.2.3/lib -L/nix/store/1p6iahx3idnrgibrj8a73xa954qby9a0-libXt-1.2.1/lib -L/nix/store/vh1hz1fvqgfmcsvjc7x8mv77l4sq091l-libwebp-1.3.2/lib -L/nix/store/mqlqh4r9bwjksbv22nx0ws6jmaz51dk9-imagemagick-7.1.1-19/lib -L/nix/store/ly38mak2vr5x0pziypgvqvcr2f4yhlnw-brotli-1.0.9-lib/lib -L/nix/store/a9mpsvnl4s99vlgmcyx5g5aqinrkm479-libkrb5-1.20.2/lib -L/nix/store/71rwvvhg1s2g50b6as072q0bb90hi19b-nghttp2-1.51.0-lib/lib -L/nix/store/4563gldw8ibz76f1a3x69zq3a1vhdpz9-libidn2-2.3.4/lib -L/nix/store/i57qjfacl3hv7sc1s1lj4z6fssh69nd3-openssl-3.0.11/lib -L/nix/store/jlw0nbw3kfgsg4ln1v4mm52mck2j2vns-libssh2-1.11.0/lib -L/nix/store/8mw6ssjspf8k1ija88cfldmxlbarl1bb-zlib-1.2.13/lib -L/nix/store/81d38brw9cnw2qk2kynrf5dr6hhkcq66-zstd-1.5.5/lib -L/nix/store/m072pj8xfk9hvv9zj6z982xqa6rgybw3-curl-8.1.1/lib -L/nix/store/hcixpw8a2h65md8022w4bpwf2k0xf4qx-bzip2-1.0.8/lib -L/nix/store/21zz2qdxhx3lp079b2md41j8sanxpf5q-libpng-apng-1.6.39/lib -L/nix/store/1gn3mk64r8k2r6p56vyh9v2v67mbprmx-freetype-2.13.0/lib -L/nix/store/la1wxy1qhqzjn2aqmcrgbm2cy8129ngp-libjpeg-turbo-2.1.5.1/lib -L/nix/store/alm0d2cqhqz89gb1gyr3i2yw81lwkq7m-libdeflate-1.18/lib -L/nix/store/5x7q95liyfijgfyvvvk90j5nq44agnjv-xz-5.4.3/lib -L/nix/store/fzgaxijjxxm1s6nkxfb44lxyjdcgqkgd-libtiff-4.5.1/lib -L/nix/store/f0ixrvbhxnprhg6gfzgybiagy5flihic-lcms2-2.15/lib -L/nix/store/203nmkl927nfi4bxj4v6qc1vnn08iydl-libxcb-1.14/lib -L/nix/store/i7vz86vq34m1rdgc8fnbqzcqp97kj9kz-libX11-1.8.7/lib -L/nix/store/1xc1hx5279iayglywil4i0vqcsrlydls-libICE-1.0.10/lib -L/nix/store/a1k5cf19r8kgmda39j20l07s1a7hwsqz-libSM-1.2.3/lib -L/nix/store/1p6iahx3idnrgibrj8a73xa954qby9a0-libXt-1.2.1/lib -L/nix/store/vh1hz1fvqgfmcsvjc7x8mv77l4sq091l-libwebp-1.3.2/lib -L/nix/store/mqlqh4r9bwjksbv22nx0ws6jmaz51dk9-imagemagick-7.1.1-19/lib' -export NIX_LDFLAGS -NIX_LDFLAGS_FOR_TARGET=' -L/nix/store/ly38mak2vr5x0pziypgvqvcr2f4yhlnw-brotli-1.0.9-lib/lib -L/nix/store/a9mpsvnl4s99vlgmcyx5g5aqinrkm479-libkrb5-1.20.2/lib -L/nix/store/71rwvvhg1s2g50b6as072q0bb90hi19b-nghttp2-1.51.0-lib/lib -L/nix/store/4563gldw8ibz76f1a3x69zq3a1vhdpz9-libidn2-2.3.4/lib -L/nix/store/i57qjfacl3hv7sc1s1lj4z6fssh69nd3-openssl-3.0.11/lib -L/nix/store/jlw0nbw3kfgsg4ln1v4mm52mck2j2vns-libssh2-1.11.0/lib -L/nix/store/8mw6ssjspf8k1ija88cfldmxlbarl1bb-zlib-1.2.13/lib -L/nix/store/81d38brw9cnw2qk2kynrf5dr6hhkcq66-zstd-1.5.5/lib -L/nix/store/m072pj8xfk9hvv9zj6z982xqa6rgybw3-curl-8.1.1/lib -L/nix/store/hcixpw8a2h65md8022w4bpwf2k0xf4qx-bzip2-1.0.8/lib -L/nix/store/21zz2qdxhx3lp079b2md41j8sanxpf5q-libpng-apng-1.6.39/lib -L/nix/store/1gn3mk64r8k2r6p56vyh9v2v67mbprmx-freetype-2.13.0/lib -L/nix/store/la1wxy1qhqzjn2aqmcrgbm2cy8129ngp-libjpeg-turbo-2.1.5.1/lib -L/nix/store/alm0d2cqhqz89gb1gyr3i2yw81lwkq7m-libdeflate-1.18/lib -L/nix/store/5x7q95liyfijgfyvvvk90j5nq44agnjv-xz-5.4.3/lib -L/nix/store/fzgaxijjxxm1s6nkxfb44lxyjdcgqkgd-libtiff-4.5.1/lib -L/nix/store/f0ixrvbhxnprhg6gfzgybiagy5flihic-lcms2-2.15/lib -L/nix/store/203nmkl927nfi4bxj4v6qc1vnn08iydl-libxcb-1.14/lib -L/nix/store/i7vz86vq34m1rdgc8fnbqzcqp97kj9kz-libX11-1.8.7/lib -L/nix/store/1xc1hx5279iayglywil4i0vqcsrlydls-libICE-1.0.10/lib -L/nix/store/a1k5cf19r8kgmda39j20l07s1a7hwsqz-libSM-1.2.3/lib -L/nix/store/1p6iahx3idnrgibrj8a73xa954qby9a0-libXt-1.2.1/lib -L/nix/store/vh1hz1fvqgfmcsvjc7x8mv77l4sq091l-libwebp-1.3.2/lib -L/nix/store/mqlqh4r9bwjksbv22nx0ws6jmaz51dk9-imagemagick-7.1.1-19/lib' -export NIX_LDFLAGS_FOR_TARGET -NIX_LIB64_IN_SELF_RPATH='1' -NIX_NO_SELF_RPATH='1' -NIX_STORE='/nix/store' -export NIX_STORE -NM='nm' -export NM -NM_FOR_TARGET='nm' -export NM_FOR_TARGET -OBJCOPY='objcopy' -export OBJCOPY -OBJCOPY_FOR_TARGET='objcopy' -export OBJCOPY_FOR_TARGET -OBJDUMP='objdump' -export OBJDUMP -OBJDUMP_FOR_TARGET='objdump' -export OBJDUMP_FOR_TARGET -OLDPWD='' -export OLDPWD -OPTERR='1' -OSTYPE='linux-gnu' -PATH='/nix/store/gwf21xyl0x0bhgapi66avzf6qmddr44s-patchelf-0.15.0/bin:/nix/store/3hbxw05vfs6m1155xa6pvribs3bv777n-gcc-wrapper-12.2.0/bin:/nix/store/jgdz5wfqc6q6qhy17lsqnfpbkfi1fcar-gcc-12.2.0/bin:/nix/store/sb5sf8pnbb5dxgr5p8qm344ky8k7f62r-glibc-2.37-45-bin/bin:/nix/store/w8vm09hri2zz7yacryzzzxvsapik4ps4-coreutils-9.1/bin:/nix/store/syp0507hrby53pprfi7n4wppms3b7ba2-binutils-wrapper-2.40/bin:/nix/store/3r87a2wq1w4l66wnsm7rqvy608mx23h6-binutils-2.40/bin:/nix/store/rdazrpjihdikwm84f3p7mmdjjj6a0mj3-rgbds-0.6.1/bin:/nix/store/lqwlz76ns9c46qj9lcihb6vzxp3gmy0q-gnumake-4.4.1/bin:/nix/store/4wpa7msnh75ggzm2abynwrfwqlwnjiyd-sameboy-0.15.8/bin:/nix/store/zavxmfi6i8n0b92mina6w05gr5wj5sdr-imagemagick-7.1.1-19-dev/bin:/nix/store/fmp9z2fr8di8jgnhvklwbnm4hbr0l2cr-curl-8.1.1-dev/bin:/nix/store/pfcnhh1sd35qnf44983xk1l0sfma9i47-brotli-1.0.9/bin:/nix/store/y30i2c84p2zfz1f4p2gcmnbcf067kv15-libkrb5-1.20.2-dev/bin:/nix/store/a9mpsvnl4s99vlgmcyx5g5aqinrkm479-libkrb5-1.20.2/bin:/nix/store/jbwl6nx9py1dpn0w1yza3c3psd6y4fqk-nghttp2-1.51.0-bin/bin:/nix/store/70y6kl0jkqydlz01c6s998bvp9wkx98j-libidn2-2.3.4-bin/bin:/nix/store/43n3rih15qhaykl2cal74rj2ziygyqns-openssl-3.0.11-bin/bin:/nix/store/j41ms763gpyya3hylqmaq1p108bhvkcm-zstd-1.5.5-bin/bin:/nix/store/81d38brw9cnw2qk2kynrf5dr6hhkcq66-zstd-1.5.5/bin:/nix/store/bhzm4gqpg3sn7h4a7sgnlh11mb7p9dlx-curl-8.1.1-bin/bin:/nix/store/6d9vlwwy7kvxjqmqg4cldgg9mr8nflff-bzip2-1.0.8-bin/bin:/nix/store/xxfh7wqjkwr3mgl2a8ym9y7hvxywa32m-freetype-2.13.0-dev/bin:/nix/store/86cvg8vkqkjls6cic26nb5rjjdjcjga3-libpng-apng-1.6.39-dev/bin:/nix/store/d8qi89d2qiy8xvhfqmrxwl7lhxaz70yn-libjpeg-turbo-2.1.5.1-bin/bin:/nix/store/alm0d2cqhqz89gb1gyr3i2yw81lwkq7m-libdeflate-1.18/bin:/nix/store/agry2lhy6ilgyacx75w2ycqsdfwr513f-xz-5.4.3-bin/bin:/nix/store/7cfdk7sdx7sz5pwbh2qmcxxn9gwza5zp-libtiff-4.5.1-bin/bin:/nix/store/zhrjzzrai8xz5rh2vnq4zys9ivb9gihy-lcms2-2.15-bin/bin:/nix/store/vh1hz1fvqgfmcsvjc7x8mv77l4sq091l-libwebp-1.3.2/bin:/nix/store/mqlqh4r9bwjksbv22nx0ws6jmaz51dk9-imagemagick-7.1.1-19/bin:/nix/store/w8vm09hri2zz7yacryzzzxvsapik4ps4-coreutils-9.1/bin:/nix/store/4cxs4cigh2zdxvma52ygm3mh2igq70iw-findutils-4.9.0/bin:/nix/store/vikpb6rhmi8zzgsx8syjng9dic8dplm7-diffutils-3.9/bin:/nix/store/4mca20b13q88s6llkr8mc468rh9l9bmr-gnused-4.9/bin:/nix/store/b4in4hmq54h6l34a0v6ha40z97c0lzw2-gnugrep-3.7/bin:/nix/store/p7v8rc82yi4zngjw2z7isgqvfi32l1aj-gawk-5.2.1/bin:/nix/store/2gcfy5f68y7gkryp3wrjmvlci42qb61a-gnutar-1.35/bin:/nix/store/5xzh0z66hpcd3k578my76lx4qgra334q-gzip-1.12/bin:/nix/store/6d9vlwwy7kvxjqmqg4cldgg9mr8nflff-bzip2-1.0.8-bin/bin:/nix/store/qlcm8dzsaa6wyycmx7in8rz6x3pzf6zf-gnumake-4.4.1/bin:/nix/store/0rwyq0j954a7143p0wzd4rhycny8i967-bash-5.2-p15/bin:/nix/store/0g52i0ih3h0d9s40m84gksi2jjm4k3bf-patch-2.7.6/bin:/nix/store/agry2lhy6ilgyacx75w2ycqsdfwr513f-xz-5.4.3-bin/bin:/nix/store/rgg874xkzlfmkzkm7911dwnihswkf54g-file-5.44/bin' -export PATH -PS4='+ ' -RANLIB='ranlib' -export RANLIB -RANLIB_FOR_TARGET='ranlib' -export RANLIB_FOR_TARGET -READELF='readelf' -export READELF -READELF_FOR_TARGET='readelf' -export READELF_FOR_TARGET -SIZE='size' -export SIZE -SIZE_FOR_TARGET='size' -export SIZE_FOR_TARGET -SOURCE_DATE_EPOCH='315532800' -export SOURCE_DATE_EPOCH -STRINGS='strings' -export STRINGS -STRINGS_FOR_TARGET='strings' -export STRINGS_FOR_TARGET -STRIP='strip' -export STRIP -STRIP_FOR_TARGET='strip' -export STRIP_FOR_TARGET -XDG_DATA_DIRS='/nix/store/gwf21xyl0x0bhgapi66avzf6qmddr44s-patchelf-0.15.0/share' -export XDG_DATA_DIRS -__structuredAttrs='' -export __structuredAttrs -buildInputs='/nix/store/rdazrpjihdikwm84f3p7mmdjjj6a0mj3-rgbds-0.6.1 /nix/store/3hbxw05vfs6m1155xa6pvribs3bv777n-gcc-wrapper-12.2.0 /nix/store/lqwlz76ns9c46qj9lcihb6vzxp3gmy0q-gnumake-4.4.1 /nix/store/4wpa7msnh75ggzm2abynwrfwqlwnjiyd-sameboy-0.15.8 /nix/store/zavxmfi6i8n0b92mina6w05gr5wj5sdr-imagemagick-7.1.1-19-dev' -export buildInputs -buildPhase='{ echo "------------------------------------------------------------"; - echo " WARNING: the existence of this path is not guaranteed."; - echo " It is an internal implementation detail for pkgs.mkShell."; - echo "------------------------------------------------------------"; - echo; - # Record all build inputs as runtime dependencies - export; -} >> "$out" -' -export buildPhase -builder='/nix/store/0rwyq0j954a7143p0wzd4rhycny8i967-bash-5.2-p15/bin/bash' -export builder -cmakeFlags='' -export cmakeFlags -configureFlags='' -export configureFlags -defaultBuildInputs='' -defaultNativeBuildInputs='/nix/store/gwf21xyl0x0bhgapi66avzf6qmddr44s-patchelf-0.15.0 /nix/store/h9lc1dpi14z7is86ffhl3ld569138595-audit-tmpdir.sh /nix/store/m54bmrhj6fqz8nds5zcj97w9s9bckc9v-compress-man-pages.sh /nix/store/wgrbkkaldkrlrni33ccvm3b6vbxzb656-make-symlinks-relative.sh /nix/store/5yzw0vhkyszf2d179m0qfkgxmp5wjjx4-move-docs.sh /nix/store/fyaryjvghbkpfnsyw97hb3lyb37s1pd6-move-lib64.sh /nix/store/kd4xwxjpjxi71jkm6ka0np72if9rm3y0-move-sbin.sh /nix/store/pag6l61paj1dc9sv15l7bm5c17xn5kyk-move-systemd-user-units.sh /nix/store/bxsly8a56yb8kyrq03s82a3vyc8fqrb3-multiple-outputs.sh /nix/store/nf1lkdrhapsx5lr6diyxyjr7pb7r20gr-patch-shebangs.sh /nix/store/cickvswrvann041nqxb0rxilc46svw1n-prune-libtool-files.sh /nix/store/xyff06pkhki3qy1ls77w10s0v79c9il0-reproducible-builds.sh /nix/store/ngg1cv31c8c7bcm2n8ww4g06nq7s4zhm-set-source-date-epoch-to-latest.sh /nix/store/a9ndjg0b1ivi0av9m93vfkrndp7fqbw1-strip.sh /nix/store/3hbxw05vfs6m1155xa6pvribs3bv777n-gcc-wrapper-12.2.0' -depsBuildBuild='' -export depsBuildBuild -depsBuildBuildPropagated='' -export depsBuildBuildPropagated -depsBuildTarget='' -export depsBuildTarget -depsBuildTargetPropagated='' -export depsBuildTargetPropagated -depsHostHost='' -export depsHostHost -depsHostHostPropagated='' -export depsHostHostPropagated -depsTargetTarget='' -export depsTargetTarget -depsTargetTargetPropagated='' -export depsTargetTargetPropagated -doCheck='' -export doCheck -doInstallCheck='' -export doInstallCheck -dontAddDisableDepTrack='1' -export dontAddDisableDepTrack -declare -a envBuildBuildHooks=() -declare -a envBuildHostHooks=() -declare -a envBuildTargetHooks=() -declare -a envHostHostHooks=('ccWrapper_addCVars' 'bintoolsWrapper_addLDVars' ) -declare -a envHostTargetHooks=('ccWrapper_addCVars' 'bintoolsWrapper_addLDVars' ) -declare -a envTargetTargetHooks=('ccWrapper_addCVars' 'bintoolsWrapper_addLDVars' ) -declare -a fixupOutputHooks=('if [ -z "${dontPatchELF-}" ]; then patchELF "$prefix"; fi' 'if [[ -z "${noAuditTmpdir-}" && -e "$prefix" ]]; then auditTmpdir "$prefix"; fi' 'if [ -z "${dontGzipMan-}" ]; then compressManPages "$prefix"; fi' '_moveLib64' '_moveSbin' '_moveSystemdUserUnits' 'patchShebangsAuto' '_pruneLibtoolFiles' '_doStrip' ) -guess='16' -initialPath='/nix/store/w8vm09hri2zz7yacryzzzxvsapik4ps4-coreutils-9.1 /nix/store/4cxs4cigh2zdxvma52ygm3mh2igq70iw-findutils-4.9.0 /nix/store/vikpb6rhmi8zzgsx8syjng9dic8dplm7-diffutils-3.9 /nix/store/4mca20b13q88s6llkr8mc468rh9l9bmr-gnused-4.9 /nix/store/b4in4hmq54h6l34a0v6ha40z97c0lzw2-gnugrep-3.7 /nix/store/p7v8rc82yi4zngjw2z7isgqvfi32l1aj-gawk-5.2.1 /nix/store/2gcfy5f68y7gkryp3wrjmvlci42qb61a-gnutar-1.35 /nix/store/5xzh0z66hpcd3k578my76lx4qgra334q-gzip-1.12 /nix/store/6d9vlwwy7kvxjqmqg4cldgg9mr8nflff-bzip2-1.0.8-bin /nix/store/qlcm8dzsaa6wyycmx7in8rz6x3pzf6zf-gnumake-4.4.1 /nix/store/0rwyq0j954a7143p0wzd4rhycny8i967-bash-5.2-p15 /nix/store/0g52i0ih3h0d9s40m84gksi2jjm4k3bf-patch-2.7.6 /nix/store/agry2lhy6ilgyacx75w2ycqsdfwr513f-xz-5.4.3-bin /nix/store/rgg874xkzlfmkzkm7911dwnihswkf54g-file-5.44' -mesonFlags='' -export mesonFlags -name='nix-shell-env' -export name -nativeBuildInputs='' -export nativeBuildInputs -out='/home/thorn/code/kep-hack/outputs/out' -export out -outputBin='out' -outputDev='out' -outputDevdoc='REMOVE' -outputDevman='out' -outputDoc='out' -outputInclude='out' -outputInfo='out' -outputLib='out' -outputMan='out' -outputs='out' -export outputs -patches='' -export patches -phases='buildPhase' -export phases -pkg='/nix/store/3hbxw05vfs6m1155xa6pvribs3bv777n-gcc-wrapper-12.2.0' -declare -a pkgsBuildBuild=() -declare -a pkgsBuildHost=('/nix/store/gwf21xyl0x0bhgapi66avzf6qmddr44s-patchelf-0.15.0' '/nix/store/h9lc1dpi14z7is86ffhl3ld569138595-audit-tmpdir.sh' '/nix/store/m54bmrhj6fqz8nds5zcj97w9s9bckc9v-compress-man-pages.sh' '/nix/store/wgrbkkaldkrlrni33ccvm3b6vbxzb656-make-symlinks-relative.sh' '/nix/store/5yzw0vhkyszf2d179m0qfkgxmp5wjjx4-move-docs.sh' '/nix/store/fyaryjvghbkpfnsyw97hb3lyb37s1pd6-move-lib64.sh' '/nix/store/kd4xwxjpjxi71jkm6ka0np72if9rm3y0-move-sbin.sh' '/nix/store/pag6l61paj1dc9sv15l7bm5c17xn5kyk-move-systemd-user-units.sh' '/nix/store/bxsly8a56yb8kyrq03s82a3vyc8fqrb3-multiple-outputs.sh' '/nix/store/nf1lkdrhapsx5lr6diyxyjr7pb7r20gr-patch-shebangs.sh' '/nix/store/cickvswrvann041nqxb0rxilc46svw1n-prune-libtool-files.sh' '/nix/store/xyff06pkhki3qy1ls77w10s0v79c9il0-reproducible-builds.sh' '/nix/store/ngg1cv31c8c7bcm2n8ww4g06nq7s4zhm-set-source-date-epoch-to-latest.sh' '/nix/store/a9ndjg0b1ivi0av9m93vfkrndp7fqbw1-strip.sh' '/nix/store/3hbxw05vfs6m1155xa6pvribs3bv777n-gcc-wrapper-12.2.0' '/nix/store/syp0507hrby53pprfi7n4wppms3b7ba2-binutils-wrapper-2.40' ) -declare -a pkgsBuildTarget=() -declare -a pkgsHostHost=() -declare -a pkgsHostTarget=('/nix/store/rdazrpjihdikwm84f3p7mmdjjj6a0mj3-rgbds-0.6.1' '/nix/store/3hbxw05vfs6m1155xa6pvribs3bv777n-gcc-wrapper-12.2.0' '/nix/store/syp0507hrby53pprfi7n4wppms3b7ba2-binutils-wrapper-2.40' '/nix/store/lqwlz76ns9c46qj9lcihb6vzxp3gmy0q-gnumake-4.4.1' '/nix/store/4wpa7msnh75ggzm2abynwrfwqlwnjiyd-sameboy-0.15.8' '/nix/store/zavxmfi6i8n0b92mina6w05gr5wj5sdr-imagemagick-7.1.1-19-dev' '/nix/store/fmp9z2fr8di8jgnhvklwbnm4hbr0l2cr-curl-8.1.1-dev' '/nix/store/pndmab9dmyjy2l39hyvhk90zrbhnm100-brotli-1.0.9-dev' '/nix/store/ly38mak2vr5x0pziypgvqvcr2f4yhlnw-brotli-1.0.9-lib' '/nix/store/pfcnhh1sd35qnf44983xk1l0sfma9i47-brotli-1.0.9' '/nix/store/y30i2c84p2zfz1f4p2gcmnbcf067kv15-libkrb5-1.20.2-dev' '/nix/store/a9mpsvnl4s99vlgmcyx5g5aqinrkm479-libkrb5-1.20.2' '/nix/store/r1ymwnsbicl6g7nsgmmk5jz2jdrv4mbd-nghttp2-1.51.0-dev' '/nix/store/jbwl6nx9py1dpn0w1yza3c3psd6y4fqk-nghttp2-1.51.0-bin' '/nix/store/71rwvvhg1s2g50b6as072q0bb90hi19b-nghttp2-1.51.0-lib' '/nix/store/5qk6i18813rs74f2rsh77wchpyivbn8y-libidn2-2.3.4-dev' '/nix/store/70y6kl0jkqydlz01c6s998bvp9wkx98j-libidn2-2.3.4-bin' '/nix/store/4563gldw8ibz76f1a3x69zq3a1vhdpz9-libidn2-2.3.4' '/nix/store/7nbh3b6hhjqjs3nfy529g38l85iv46i9-openssl-3.0.11-dev' '/nix/store/43n3rih15qhaykl2cal74rj2ziygyqns-openssl-3.0.11-bin' '/nix/store/i57qjfacl3hv7sc1s1lj4z6fssh69nd3-openssl-3.0.11' '/nix/store/20ivhr7fzqi8nirspwgvsvhfwrqj83ga-libssh2-1.11.0-dev' '/nix/store/jlw0nbw3kfgsg4ln1v4mm52mck2j2vns-libssh2-1.11.0' '/nix/store/j0zwp9zygvadcly9dxpm0f4ga7h0n8c9-zlib-1.2.13-dev' '/nix/store/8mw6ssjspf8k1ija88cfldmxlbarl1bb-zlib-1.2.13' '/nix/store/4pifi04nz9l2i0l692ny148q94klml0r-zstd-1.5.5-dev' '/nix/store/j41ms763gpyya3hylqmaq1p108bhvkcm-zstd-1.5.5-bin' '/nix/store/81d38brw9cnw2qk2kynrf5dr6hhkcq66-zstd-1.5.5' '/nix/store/bhzm4gqpg3sn7h4a7sgnlh11mb7p9dlx-curl-8.1.1-bin' '/nix/store/m072pj8xfk9hvv9zj6z982xqa6rgybw3-curl-8.1.1' '/nix/store/32lspl6qhmsm53l5n4wpgcdfzcjn6br4-bzip2-1.0.8-dev' '/nix/store/6d9vlwwy7kvxjqmqg4cldgg9mr8nflff-bzip2-1.0.8-bin' '/nix/store/hcixpw8a2h65md8022w4bpwf2k0xf4qx-bzip2-1.0.8' '/nix/store/xxfh7wqjkwr3mgl2a8ym9y7hvxywa32m-freetype-2.13.0-dev' '/nix/store/86cvg8vkqkjls6cic26nb5rjjdjcjga3-libpng-apng-1.6.39-dev' '/nix/store/21zz2qdxhx3lp079b2md41j8sanxpf5q-libpng-apng-1.6.39' '/nix/store/1gn3mk64r8k2r6p56vyh9v2v67mbprmx-freetype-2.13.0' '/nix/store/2pkk6jcar40i32zhjicnqhhmly8q65hj-libjpeg-turbo-2.1.5.1-dev' '/nix/store/d8qi89d2qiy8xvhfqmrxwl7lhxaz70yn-libjpeg-turbo-2.1.5.1-bin' '/nix/store/la1wxy1qhqzjn2aqmcrgbm2cy8129ngp-libjpeg-turbo-2.1.5.1' '/nix/store/6d5xl0n42fqz5y4kzzwp2qyl4jn3yhxs-lcms2-2.15-dev' '/nix/store/3gzq3f5kg927z7jhbmymj5hca33a9b7l-libtiff-4.5.1-dev' '/nix/store/alm0d2cqhqz89gb1gyr3i2yw81lwkq7m-libdeflate-1.18' '/nix/store/xwr8c5nzw4ld2ldz800sz3z2yy80r1dx-xz-5.4.3-dev' '/nix/store/agry2lhy6ilgyacx75w2ycqsdfwr513f-xz-5.4.3-bin' '/nix/store/5x7q95liyfijgfyvvvk90j5nq44agnjv-xz-5.4.3' '/nix/store/7cfdk7sdx7sz5pwbh2qmcxxn9gwza5zp-libtiff-4.5.1-bin' '/nix/store/fzgaxijjxxm1s6nkxfb44lxyjdcgqkgd-libtiff-4.5.1' '/nix/store/zhrjzzrai8xz5rh2vnq4zys9ivb9gihy-lcms2-2.15-bin' '/nix/store/f0ixrvbhxnprhg6gfzgybiagy5flihic-lcms2-2.15' '/nix/store/ar0khp6fp6ibn35rskgmaayf5gh8by6q-libX11-1.8.7-dev' '/nix/store/kfg625m59v56cq6m4dq9fs7fgw8sakv6-xorgproto-2021.5' '/nix/store/iz3kaqxhp11cgxhy1gmb54gq7ym4my8f-libxcb-1.14-dev' '/nix/store/203nmkl927nfi4bxj4v6qc1vnn08iydl-libxcb-1.14' '/nix/store/i7vz86vq34m1rdgc8fnbqzcqp97kj9kz-libX11-1.8.7' '/nix/store/r2jzxqlg82d57cxcdkclnbc1sqvzkmyr-libXt-1.2.1-dev' '/nix/store/d1cx6s2vxrq1qs47cw88n13r5az2n047-libSM-1.2.3-dev' '/nix/store/6nca0jp43p4fv00jnzlj1aan0q14qgs1-libICE-1.0.10-dev' '/nix/store/1xc1hx5279iayglywil4i0vqcsrlydls-libICE-1.0.10' '/nix/store/a1k5cf19r8kgmda39j20l07s1a7hwsqz-libSM-1.2.3' '/nix/store/1p6iahx3idnrgibrj8a73xa954qby9a0-libXt-1.2.1' '/nix/store/vh1hz1fvqgfmcsvjc7x8mv77l4sq091l-libwebp-1.3.2' '/nix/store/mqlqh4r9bwjksbv22nx0ws6jmaz51dk9-imagemagick-7.1.1-19' ) -declare -a pkgsTargetTarget=() -declare -a postFixupHooks=('_makeSymlinksRelativeInAllOutputs' '_multioutPropagateDev' ) -declare -a postUnpackHooks=('_updateSourceDateEpochFromSourceRoot' ) -declare -a preConfigureHooks=('_multioutConfig' ) -declare -a preFixupHooks=('_moveToShare' '_multioutDocs' '_multioutDevs' ) -preferLocalBuild='1' -export preferLocalBuild -prefix='/home/thorn/code/kep-hack/outputs/out' -declare -a propagatedBuildDepFiles=('propagated-build-build-deps' 'propagated-native-build-inputs' 'propagated-build-target-deps' ) -propagatedBuildInputs='' -export propagatedBuildInputs -declare -a propagatedHostDepFiles=('propagated-host-host-deps' 'propagated-build-inputs' ) -propagatedNativeBuildInputs='' -export propagatedNativeBuildInputs -declare -a propagatedTargetDepFiles=('propagated-target-target-deps' ) -shell='/nix/store/0rwyq0j954a7143p0wzd4rhycny8i967-bash-5.2-p15/bin/bash' -export shell -shellHook='' -export shellHook -stdenv='/nix/store/gv2cl6qvvslz5h15vqd89f1rpvrdg5yc-stdenv-linux' -export stdenv -strictDeps='' -export strictDeps -system='x86_64-linux' -export system -declare -a unpackCmdHooks=('_defaultUnpack' ) -_accumFlagsArray () -{ - - local name; - if [ -n "$__structuredAttrs" ]; then - for name in "$@"; - do - local -n nameref="$name"; - flagsArray+=(${nameref+"${nameref[@]}"}); - done; - else - for name in "$@"; - do - local -n nameref="$name"; - case "$name" in - *Array) - flagsArray+=(${nameref+"${nameref[@]}"}) - ;; - *) - flagsArray+=(${nameref-}) - ;; - esac; - done; - fi -} -_activatePkgs () -{ - - local hostOffset targetOffset; - local pkg; - for hostOffset in "${allPlatOffsets[@]}"; - do - local pkgsVar="${pkgAccumVarVars[hostOffset + 1]}"; - for targetOffset in "${allPlatOffsets[@]}"; - do - (( hostOffset <= targetOffset )) || continue; - local pkgsRef="${pkgsVar}[$targetOffset - $hostOffset]"; - local pkgsSlice="${!pkgsRef}[@]"; - for pkg in ${!pkgsSlice+"${!pkgsSlice}"}; - do - activatePackage "$pkg" "$hostOffset" "$targetOffset"; - done; - done; - done -} -_addRpathPrefix () -{ - - if [ "${NIX_NO_SELF_RPATH:-0}" != 1 ]; then - export NIX_LDFLAGS="-rpath $1/lib ${NIX_LDFLAGS-}"; - if [ -n "${NIX_LIB64_IN_SELF_RPATH:-}" ]; then - export NIX_LDFLAGS="-rpath $1/lib64 ${NIX_LDFLAGS-}"; - fi; - if [ -n "${NIX_LIB32_IN_SELF_RPATH:-}" ]; then - export NIX_LDFLAGS="-rpath $1/lib32 ${NIX_LDFLAGS-}"; - fi; - fi -} -_addToEnv () -{ - - local depHostOffset depTargetOffset; - local pkg; - for depHostOffset in "${allPlatOffsets[@]}"; - do - local hookVar="${pkgHookVarVars[depHostOffset + 1]}"; - local pkgsVar="${pkgAccumVarVars[depHostOffset + 1]}"; - for depTargetOffset in "${allPlatOffsets[@]}"; - do - (( depHostOffset <= depTargetOffset )) || continue; - local hookRef="${hookVar}[$depTargetOffset - $depHostOffset]"; - if [[ -z "${strictDeps-}" ]]; then - local visitedPkgs=""; - for pkg in "${pkgsBuildBuild[@]}" "${pkgsBuildHost[@]}" "${pkgsBuildTarget[@]}" "${pkgsHostHost[@]}" "${pkgsHostTarget[@]}" "${pkgsTargetTarget[@]}"; - do - if [[ "$visitedPkgs" = *"$pkg"* ]]; then - continue; - fi; - runHook "${!hookRef}" "$pkg"; - visitedPkgs+=" $pkg"; - done; - else - local pkgsRef="${pkgsVar}[$depTargetOffset - $depHostOffset]"; - local pkgsSlice="${!pkgsRef}[@]"; - for pkg in ${!pkgsSlice+"${!pkgsSlice}"}; - do - runHook "${!hookRef}" "$pkg"; - done; - fi; - done; - done -} -_allFlags () -{ - - export system pname name version; - for varName in $(awk 'BEGIN { for (v in ENVIRON) if (v ~ /^[a-z][a-zA-Z0-9_]*$/) print v }'); - do - if (( "${NIX_DEBUG:-0}" >= 1 )); then - printf "@%s@ -> %q\n" "${varName}" "${!varName}"; - fi; - args+=("--subst-var" "$varName"); - done -} -_assignFirst () -{ - - local varName="$1"; - local _var; - local REMOVE=REMOVE; - shift; - for _var in "$@"; - do - if [ -n "${!_var-}" ]; then - eval "${varName}"="${_var}"; - return; - fi; - done; - echo; - echo "error: _assignFirst: could not find a non-empty variable whose name to assign to ${varName}."; - echo " The following variables were all unset or empty:"; - echo " $*"; - if [ -z "${out:-}" ]; then - echo ' If you do not want an "out" output in your derivation, make sure to define'; - echo ' the other specific required outputs. This can be achieved by picking one'; - echo " of the above as an output."; - echo ' You do not have to remove "out" if you want to have a different default'; - echo ' output, because the first output is taken as a default.'; - echo; - fi; - return 1 -} -_callImplicitHook () -{ - - local def="$1"; - local hookName="$2"; - if declare -F "$hookName" > /dev/null; then - "$hookName"; - else - if type -p "$hookName" > /dev/null; then - source "$hookName"; - else - if [ -n "${!hookName:-}" ]; then - eval "${!hookName}"; - else - return "$def"; - fi; - fi; - fi -} -_defaultUnpack () -{ - - local fn="$1"; - local destination; - if [ -d "$fn" ]; then - destination="$(stripHash "$fn")"; - if [ -e "$destination" ]; then - echo "Cannot copy $fn to $destination: destination already exists!"; - echo "Did you specify two \"srcs\" with the same \"name\"?"; - return 1; - fi; - cp -pr --reflink=auto -- "$fn" "$destination"; - else - case "$fn" in - *.tar.xz | *.tar.lzma | *.txz) - xz -d < "$fn" | tar xf - --warning=no-timestamp - ;; - *.tar | *.tar.* | *.tgz | *.tbz2 | *.tbz) - tar xf "$fn" --warning=no-timestamp - ;; - *) - return 1 - ;; - esac; - fi -} -_doStrip () -{ - - local -ra flags=(dontStripHost dontStripTarget); - local -ra debugDirs=(stripDebugList stripDebugListTarget); - local -ra allDirs=(stripAllList stripAllListTarget); - local -ra stripCmds=(STRIP STRIP_FOR_TARGET); - local -ra ranlibCmds=(RANLIB RANLIB_FOR_TARGET); - stripDebugList=${stripDebugList[*]:-lib lib32 lib64 libexec bin sbin}; - stripDebugListTarget=${stripDebugListTarget[*]:-}; - stripAllList=${stripAllList[*]:-}; - stripAllListTarget=${stripAllListTarget[*]:-}; - local i; - for i in ${!stripCmds[@]}; - do - local -n flag="${flags[$i]}"; - local -n debugDirList="${debugDirs[$i]}"; - local -n allDirList="${allDirs[$i]}"; - local -n stripCmd="${stripCmds[$i]}"; - local -n ranlibCmd="${ranlibCmds[$i]}"; - if [[ -n "${dontStrip-}" || -n "${flag-}" ]] || ! type -f "${stripCmd-}" 2> /dev/null 1>&2; then - continue; - fi; - stripDirs "$stripCmd" "$ranlibCmd" "$debugDirList" "${stripDebugFlags[*]:--S -p}"; - stripDirs "$stripCmd" "$ranlibCmd" "$allDirList" "${stripAllFlags[*]:--s -p}"; - done -} -_eval () -{ - - if declare -F "$1" > /dev/null 2>&1; then - "$@"; - else - eval "$1"; - fi -} -_makeSymlinksRelative () -{ - - local symlinkTarget; - if [ "${dontRewriteSymlinks-}" ] || [ ! -e "$prefix" ]; then - return; - fi; - while IFS= read -r -d '' f; do - symlinkTarget=$(readlink "$f"); - if [[ "$symlinkTarget"/ != "$prefix"/* ]]; then - continue; - fi; - if [ ! -e "$symlinkTarget" ]; then - echo "the symlink $f is broken, it points to $symlinkTarget (which is missing)"; - fi; - echo "rewriting symlink $f to be relative to $prefix"; - ln -snrf "$symlinkTarget" "$f"; - done < <(find $prefix -type l -print0) -} -_makeSymlinksRelativeInAllOutputs () -{ - - local output; - for output in $(getAllOutputNames); - do - prefix="${!output}" _makeSymlinksRelative; - done -} -_moveLib64 () -{ - - if [ "${dontMoveLib64-}" = 1 ]; then - return; - fi; - if [ ! -e "$prefix/lib64" -o -L "$prefix/lib64" ]; then - return; - fi; - echo "moving $prefix/lib64/* to $prefix/lib"; - mkdir -p $prefix/lib; - shopt -s dotglob; - for i in $prefix/lib64/*; - do - mv --no-clobber "$i" $prefix/lib; - done; - shopt -u dotglob; - rmdir $prefix/lib64; - ln -s lib $prefix/lib64 -} -_moveSbin () -{ - - if [ "${dontMoveSbin-}" = 1 ]; then - return; - fi; - if [ ! -e "$prefix/sbin" -o -L "$prefix/sbin" ]; then - return; - fi; - echo "moving $prefix/sbin/* to $prefix/bin"; - mkdir -p $prefix/bin; - shopt -s dotglob; - for i in $prefix/sbin/*; - do - mv "$i" $prefix/bin; - done; - shopt -u dotglob; - rmdir $prefix/sbin; - ln -s bin $prefix/sbin -} -_moveSystemdUserUnits () -{ - - if [ "${dontMoveSystemdUserUnits:-0}" = 1 ]; then - return; - fi; - if [ ! -e "${prefix:?}/lib/systemd/user" ]; then - return; - fi; - local source="$prefix/lib/systemd/user"; - local target="$prefix/share/systemd/user"; - echo "moving $source/* to $target"; - mkdir -p "$target"; - ( shopt -s dotglob; - for i in "$source"/*; - do - mv "$i" "$target"; - done ); - rmdir "$source"; - ln -s "$target" "$source" -} -_moveToShare () -{ - - if [ -n "$__structuredAttrs" ]; then - if [ -z "${forceShare-}" ]; then - forceShare=(man doc info); - fi; - else - forceShare=(${forceShare:-man doc info}); - fi; - if [[ -z "$out" ]]; then - return; - fi; - for d in "${forceShare[@]}"; - do - if [ -d "$out/$d" ]; then - if [ -d "$out/share/$d" ]; then - echo "both $d/ and share/$d/ exist!"; - else - echo "moving $out/$d to $out/share/$d"; - mkdir -p $out/share; - mv $out/$d $out/share/; - fi; - fi; - done -} -_multioutConfig () -{ - - if [ "$(getAllOutputNames)" = "out" ] || [ -z "${setOutputFlags-1}" ]; then - return; - fi; - if [ -z "$shareDocName" ]; then - local confScript="$configureScript"; - if [ -z "$confScript" ] && [ -x ./configure ]; then - confScript=./configure; - fi; - if [ -f "$confScript" ]; then - local shareDocName="$(sed -n "s/^PACKAGE_TARNAME='\(.*\)'$/\1/p" < "$confScript")"; - fi; - if [ -z "$shareDocName" ] || echo "$shareDocName" | grep -q '[^a-zA-Z0-9_-]'; then - shareDocName="$(echo "$name" | sed 's/-[^a-zA-Z].*//')"; - fi; - fi; - prependToVar configureFlags --bindir="${!outputBin}"/bin --sbindir="${!outputBin}"/sbin --includedir="${!outputInclude}"/include --oldincludedir="${!outputInclude}"/include --mandir="${!outputMan}"/share/man --infodir="${!outputInfo}"/share/info --docdir="${!outputDoc}"/share/doc/"${shareDocName}" --libdir="${!outputLib}"/lib --libexecdir="${!outputLib}"/libexec --localedir="${!outputLib}"/share/locale; - prependToVar installFlags pkgconfigdir="${!outputDev}"/lib/pkgconfig m4datadir="${!outputDev}"/share/aclocal aclocaldir="${!outputDev}"/share/aclocal -} -_multioutDevs () -{ - - if [ "$(getAllOutputNames)" = "out" ] || [ -z "${moveToDev-1}" ]; then - return; - fi; - moveToOutput include "${!outputInclude}"; - moveToOutput lib/pkgconfig "${!outputDev}"; - moveToOutput share/pkgconfig "${!outputDev}"; - moveToOutput lib/cmake "${!outputDev}"; - moveToOutput share/aclocal "${!outputDev}"; - for f in "${!outputDev}"/{lib,share}/pkgconfig/*.pc; - do - echo "Patching '$f' includedir to output ${!outputInclude}"; - sed -i "/^includedir=/s,=\${prefix},=${!outputInclude}," "$f"; - done -} -_multioutDocs () -{ - - local REMOVE=REMOVE; - moveToOutput share/info "${!outputInfo}"; - moveToOutput share/doc "${!outputDoc}"; - moveToOutput share/gtk-doc "${!outputDevdoc}"; - moveToOutput share/devhelp/books "${!outputDevdoc}"; - moveToOutput share/man "${!outputMan}"; - moveToOutput share/man/man3 "${!outputDevman}" -} -_multioutPropagateDev () -{ - - if [ "$(getAllOutputNames)" = "out" ]; then - return; - fi; - local outputFirst; - for outputFirst in $(getAllOutputNames); - do - break; - done; - local propagaterOutput="$outputDev"; - if [ -z "$propagaterOutput" ]; then - propagaterOutput="$outputFirst"; - fi; - if [ -z "${propagatedBuildOutputs+1}" ]; then - local po_dirty="$outputBin $outputInclude $outputLib"; - set +o pipefail; - propagatedBuildOutputs=`echo "$po_dirty" | tr -s ' ' '\n' | grep -v -F "$propagaterOutput" | sort -u | tr '\n' ' ' `; - set -o pipefail; - fi; - if [ -z "$propagatedBuildOutputs" ]; then - return; - fi; - mkdir -p "${!propagaterOutput}"/nix-support; - for output in $propagatedBuildOutputs; - do - echo -n " ${!output}" >> "${!propagaterOutput}"/nix-support/propagated-build-inputs; - done -} -_overrideFirst () -{ - - if [ -z "${!1-}" ]; then - _assignFirst "$@"; - fi -} -_pruneLibtoolFiles () -{ - - if [ "${dontPruneLibtoolFiles-}" ] || [ ! -e "$prefix" ]; then - return; - fi; - find "$prefix" -type f -name '*.la' -exec grep -q '^# Generated by .*libtool' {} \; -exec grep -q "^old_library=''" {} \; -exec sed -i {} -e "/^dependency_libs='[^']/ c dependency_libs='' #pruned" \; -} -_updateSourceDateEpochFromSourceRoot () -{ - - if [ -n "$sourceRoot" ]; then - updateSourceDateEpoch "$sourceRoot"; - fi -} -activatePackage () -{ - - local pkg="$1"; - local -r hostOffset="$2"; - local -r targetOffset="$3"; - (( hostOffset <= targetOffset )) || exit 1; - if [ -f "$pkg" ]; then - source "$pkg"; - fi; - if [[ -z "${strictDeps-}" || "$hostOffset" -le -1 ]]; then - addToSearchPath _PATH "$pkg/bin"; - fi; - if (( hostOffset <= -1 )); then - addToSearchPath _XDG_DATA_DIRS "$pkg/share"; - fi; - if [[ "$hostOffset" -eq 0 && -d "$pkg/bin" ]]; then - addToSearchPath _HOST_PATH "$pkg/bin"; - fi; - if [[ -f "$pkg/nix-support/setup-hook" ]]; then - source "$pkg/nix-support/setup-hook"; - fi -} -addEnvHooks () -{ - - local depHostOffset="$1"; - shift; - local pkgHookVarsSlice="${pkgHookVarVars[$depHostOffset + 1]}[@]"; - local pkgHookVar; - for pkgHookVar in "${!pkgHookVarsSlice}"; - do - eval "${pkgHookVar}s"'+=("$@")'; - done -} -addToSearchPath () -{ - - addToSearchPathWithCustomDelimiter ":" "$@" -} -addToSearchPathWithCustomDelimiter () -{ - - local delimiter="$1"; - local varName="$2"; - local dir="$3"; - if [[ -d "$dir" && "${!varName:+${delimiter}${!varName}${delimiter}}" != *"${delimiter}${dir}${delimiter}"* ]]; then - export "${varName}=${!varName:+${!varName}${delimiter}}${dir}"; - fi -} -appendToVar () -{ - - local -n nameref="$1"; - local useArray type; - if [ -n "$__structuredAttrs" ]; then - useArray=true; - else - useArray=false; - fi; - if declare -p "$1" 2> /dev/null | grep -q '^'; then - type="$(declare -p "$1")"; - if [[ "$type" =~ "declare -A" ]]; then - echo "appendToVar(): ERROR: trying to use appendToVar on an associative array, use variable+=([\"X\"]=\"Y\") instead." 1>&2; - return 1; - else - if [[ "$type" =~ "declare -a" ]]; then - useArray=true; - else - useArray=false; - fi; - fi; - fi; - shift; - if $useArray; then - nameref=(${nameref+"${nameref[@]}"} "$@"); - else - nameref="${nameref-} $*"; - fi -} -auditTmpdir () -{ - - local dir="$1"; - [ -e "$dir" ] || return 0; - echo "checking for references to $TMPDIR/ in $dir..."; - local i; - find "$dir" -type f -print0 | while IFS= read -r -d '' i; do - if [[ "$i" =~ .build-id ]]; then - continue; - fi; - if isELF "$i"; then - if { - printf :; - patchelf --print-rpath "$i" - } | grep -q -F ":$TMPDIR/"; then - echo "RPATH of binary $i contains a forbidden reference to $TMPDIR/"; - exit 1; - fi; - fi; - if isScript "$i"; then - if [ -e "$(dirname "$i")/.$(basename "$i")-wrapped" ]; then - if grep -q -F "$TMPDIR/" "$i"; then - echo "wrapper script $i contains a forbidden reference to $TMPDIR/"; - exit 1; - fi; - fi; - fi; - done -} -bintoolsWrapper_addLDVars () -{ - - local role_post; - getHostRoleEnvHook; - if [[ -d "$1/lib64" && ! -L "$1/lib64" ]]; then - export NIX_LDFLAGS${role_post}+=" -L$1/lib64"; - fi; - if [[ -d "$1/lib" ]]; then - local -a glob=($1/lib/lib*); - if [ "${#glob[*]}" -gt 0 ]; then - export NIX_LDFLAGS${role_post}+=" -L$1/lib"; - fi; - fi -} -buildPhase () -{ - - runHook preBuild; - if [[ -z "${makeFlags-}" && -z "${makefile:-}" && ! ( -e Makefile || -e makefile || -e GNUmakefile ) ]]; then - echo "no Makefile or custom buildPhase, doing nothing"; - else - foundMakefile=1; - local flagsArray=(${enableParallelBuilding:+-j${NIX_BUILD_CORES}} SHELL=$SHELL); - _accumFlagsArray makeFlags makeFlagsArray buildFlags buildFlagsArray; - echoCmd 'build flags' "${flagsArray[@]}"; - make ${makefile:+-f $makefile} "${flagsArray[@]}"; - unset flagsArray; - fi; - runHook postBuild -} -ccWrapper_addCVars () -{ - - local role_post; - getHostRoleEnvHook; - if [ -d "$1/include" ]; then - export NIX_CFLAGS_COMPILE${role_post}+=" -isystem $1/include"; - fi; - if [ -d "$1/Library/Frameworks" ]; then - export NIX_CFLAGS_COMPILE${role_post}+=" -iframework $1/Library/Frameworks"; - fi -} -checkPhase () -{ - - runHook preCheck; - if [[ -z "${foundMakefile:-}" ]]; then - echo "no Makefile or custom checkPhase, doing nothing"; - runHook postCheck; - return; - fi; - if [[ -z "${checkTarget:-}" ]]; then - if make -n ${makefile:+-f $makefile} check > /dev/null 2>&1; then - checkTarget=check; - else - if make -n ${makefile:+-f $makefile} test > /dev/null 2>&1; then - checkTarget=test; - fi; - fi; - fi; - if [[ -z "${checkTarget:-}" ]]; then - echo "no check/test target in ${makefile:-Makefile}, doing nothing"; - else - local flagsArray=(${enableParallelChecking:+-j${NIX_BUILD_CORES}} SHELL=$SHELL); - _accumFlagsArray makeFlags makeFlagsArray; - if [ -n "$__structuredAttrs" ]; then - flagsArray+=("${checkFlags[@]:-VERBOSE=y}"); - else - flagsArray+=(${checkFlags:-VERBOSE=y}); - fi; - _accumFlagsArray checkFlagsArray; - flagsArray+=(${checkTarget}); - echoCmd 'check flags' "${flagsArray[@]}"; - make ${makefile:+-f $makefile} "${flagsArray[@]}"; - unset flagsArray; - fi; - runHook postCheck -} -compressManPages () -{ - - local dir="$1"; - if [ -L "$dir"/share ] || [ -L "$dir"/share/man ] || [ ! -d "$dir/share/man" ]; then - return; - fi; - echo "gzipping man pages under $dir/share/man/"; - find "$dir"/share/man/ -type f -a '!' -regex '.*\.\(bz2\|gz\|xz\)$' -print0 | while IFS= read -r -d '' f; do - if gzip -c -n "$f" > "$f".gz; then - rm "$f"; - else - rm "$f".gz; - fi; - done; - find "$dir"/share/man/ -type l -a '!' -regex '.*\.\(bz2\|gz\|xz\)$' -print0 | sort -z | while IFS= read -r -d '' f; do - local target; - target="$(readlink -f "$f")"; - if [ -f "$target".gz ]; then - ln -sf "$target".gz "$f".gz && rm "$f"; - fi; - done -} -configurePhase () -{ - - runHook preConfigure; - : "${configureScript=}"; - if [[ -z "$configureScript" && -x ./configure ]]; then - configureScript=./configure; - fi; - if [ -z "${dontFixLibtool:-}" ]; then - export lt_cv_deplibs_check_method="${lt_cv_deplibs_check_method-pass_all}"; - local i; - find . -iname "ltmain.sh" -print0 | while IFS='' read -r -d '' i; do - echo "fixing libtool script $i"; - fixLibtool "$i"; - done; - CONFIGURE_MTIME_REFERENCE=$(mktemp configure.mtime.reference.XXXXXX); - find . -executable -type f -name configure -exec grep -l 'GNU Libtool is free software; you can redistribute it and/or modify' {} \; -exec touch -r {} "$CONFIGURE_MTIME_REFERENCE" \; -exec sed -i s_/usr/bin/file_file_g {} \; -exec touch -r "$CONFIGURE_MTIME_REFERENCE" {} \;; - rm -f "$CONFIGURE_MTIME_REFERENCE"; - fi; - if [[ -z "${dontAddPrefix:-}" && -n "$prefix" ]]; then - prependToVar configureFlags "${prefixKey:---prefix=}$prefix"; - fi; - if [[ -f "$configureScript" ]]; then - if [ -z "${dontAddDisableDepTrack:-}" ]; then - if grep -q dependency-tracking "$configureScript"; then - prependToVar configureFlags --disable-dependency-tracking; - fi; - fi; - if [ -z "${dontDisableStatic:-}" ]; then - if grep -q enable-static "$configureScript"; then - prependToVar configureFlags --disable-static; - fi; - fi; - fi; - if [ -n "$configureScript" ]; then - local -a flagsArray; - _accumFlagsArray configureFlags configureFlagsArray; - echoCmd 'configure flags' "${flagsArray[@]}"; - $configureScript "${flagsArray[@]}"; - unset flagsArray; - else - echo "no configure script, doing nothing"; - fi; - runHook postConfigure -} -consumeEntire () -{ - - if IFS='' read -r -d '' "$1"; then - echo "consumeEntire(): ERROR: Input null bytes, won't process" 1>&2; - return 1; - fi -} -distPhase () -{ - - runHook preDist; - local flagsArray=(); - _accumFlagsArray distFlags distFlagsArray; - flagsArray+=(${distTarget:-dist}); - echo 'dist flags: %q' "${flagsArray[@]}"; - make ${makefile:+-f $makefile} "${flagsArray[@]}"; - if [ "${dontCopyDist:-0}" != 1 ]; then - mkdir -p "$out/tarballs"; - cp -pvd ${tarballs[*]:-*.tar.gz} "$out/tarballs"; - fi; - runHook postDist -} -dumpVars () -{ - - if [ "${noDumpEnvVars:-0}" != 1 ]; then - export 2> /dev/null >| "$NIX_BUILD_TOP/env-vars" || true; - fi -} -echoCmd () -{ - - printf "%s:" "$1"; - shift; - printf ' %q' "$@"; - echo -} -exitHandler () -{ - - exitCode="$?"; - set +e; - if [ -n "${showBuildStats:-}" ]; then - read -r -d '' -a buildTimes < <(times); - echo "build times:"; - echo "user time for the shell ${buildTimes[0]}"; - echo "system time for the shell ${buildTimes[1]}"; - echo "user time for all child processes ${buildTimes[2]}"; - echo "system time for all child processes ${buildTimes[3]}"; - fi; - if (( "$exitCode" != 0 )); then - runHook failureHook; - if [ -n "${succeedOnFailure:-}" ]; then - echo "build failed with exit code $exitCode (ignored)"; - mkdir -p "$out/nix-support"; - printf "%s" "$exitCode" > "$out/nix-support/failed"; - exit 0; - fi; - else - runHook exitHook; - fi; - return "$exitCode" -} -findInputs () -{ - - local -r pkg="$1"; - local -r hostOffset="$2"; - local -r targetOffset="$3"; - (( hostOffset <= targetOffset )) || exit 1; - local varVar="${pkgAccumVarVars[hostOffset + 1]}"; - local varRef="$varVar[$((targetOffset - hostOffset))]"; - local var="${!varRef}"; - unset -v varVar varRef; - local varSlice="$var[*]"; - case "${!varSlice-}" in - *" $pkg "*) - return 0 - ;; - esac; - unset -v varSlice; - eval "$var"'+=("$pkg")'; - if ! [ -e "$pkg" ]; then - echo "build input $pkg does not exist" 1>&2; - exit 1; - fi; - function mapOffset () - { - local -r inputOffset="$1"; - local -n outputOffset="$2"; - if (( inputOffset <= 0 )); then - outputOffset=$((inputOffset + hostOffset)); - else - outputOffset=$((inputOffset - 1 + targetOffset)); - fi - }; - local relHostOffset; - for relHostOffset in "${allPlatOffsets[@]}"; - do - local files="${propagatedDepFilesVars[relHostOffset + 1]}"; - local hostOffsetNext; - mapOffset "$relHostOffset" hostOffsetNext; - (( -1 <= hostOffsetNext && hostOffsetNext <= 1 )) || continue; - local relTargetOffset; - for relTargetOffset in "${allPlatOffsets[@]}"; - do - (( "$relHostOffset" <= "$relTargetOffset" )) || continue; - local fileRef="${files}[$relTargetOffset - $relHostOffset]"; - local file="${!fileRef}"; - unset -v fileRef; - local targetOffsetNext; - mapOffset "$relTargetOffset" targetOffsetNext; - (( -1 <= hostOffsetNext && hostOffsetNext <= 1 )) || continue; - [[ -f "$pkg/nix-support/$file" ]] || continue; - local pkgNext; - read -r -d '' pkgNext < "$pkg/nix-support/$file" || true; - for pkgNext in $pkgNext; - do - findInputs "$pkgNext" "$hostOffsetNext" "$targetOffsetNext"; - done; - done; - done -} -fixLibtool () -{ - - local search_path; - for flag in $NIX_LDFLAGS; - do - case $flag in - -L*) - search_path+=" ${flag#-L}" - ;; - esac; - done; - sed -i "$1" -e "s^eval \(sys_lib_search_path=\).*^\1'$search_path'^" -e 's^eval sys_lib_.+search_path=.*^^' -} -fixupPhase () -{ - - local output; - for output in $(getAllOutputNames); - do - if [ -e "${!output}" ]; then - chmod -R u+w "${!output}"; - fi; - done; - runHook preFixup; - local output; - for output in $(getAllOutputNames); - do - prefix="${!output}" runHook fixupOutput; - done; - recordPropagatedDependencies; - if [ -n "${setupHook:-}" ]; then - mkdir -p "${!outputDev}/nix-support"; - substituteAll "$setupHook" "${!outputDev}/nix-support/setup-hook"; - fi; - if [ -n "${setupHooks:-}" ]; then - mkdir -p "${!outputDev}/nix-support"; - local hook; - for hook in ${setupHooks[@]}; - do - local content; - consumeEntire content < "$hook"; - substituteAllStream content "file '$hook'" >> "${!outputDev}/nix-support/setup-hook"; - unset -v content; - done; - unset -v hook; - fi; - if [ -n "${propagatedUserEnvPkgs:-}" ]; then - mkdir -p "${!outputBin}/nix-support"; - printWords $propagatedUserEnvPkgs > "${!outputBin}/nix-support/propagated-user-env-packages"; - fi; - runHook postFixup -} -genericBuild () -{ - - export GZIP_NO_TIMESTAMPS=1; - if [ -f "${buildCommandPath:-}" ]; then - source "$buildCommandPath"; - return; - fi; - if [ -n "${buildCommand:-}" ]; then - eval "$buildCommand"; - return; - fi; - if [ -z "${phases[*]:-}" ]; then - phases="${prePhases[*]:-} unpackPhase patchPhase ${preConfigurePhases[*]:-} configurePhase ${preBuildPhases[*]:-} buildPhase checkPhase ${preInstallPhases[*]:-} installPhase ${preFixupPhases[*]:-} fixupPhase installCheckPhase ${preDistPhases[*]:-} distPhase ${postPhases[*]:-}"; - fi; - for curPhase in ${phases[*]}; - do - if [[ "$curPhase" = unpackPhase && -n "${dontUnpack:-}" ]]; then - continue; - fi; - if [[ "$curPhase" = patchPhase && -n "${dontPatch:-}" ]]; then - continue; - fi; - if [[ "$curPhase" = configurePhase && -n "${dontConfigure:-}" ]]; then - continue; - fi; - if [[ "$curPhase" = buildPhase && -n "${dontBuild:-}" ]]; then - continue; - fi; - if [[ "$curPhase" = checkPhase && -z "${doCheck:-}" ]]; then - continue; - fi; - if [[ "$curPhase" = installPhase && -n "${dontInstall:-}" ]]; then - continue; - fi; - if [[ "$curPhase" = fixupPhase && -n "${dontFixup:-}" ]]; then - continue; - fi; - if [[ "$curPhase" = installCheckPhase && -z "${doInstallCheck:-}" ]]; then - continue; - fi; - if [[ "$curPhase" = distPhase && -z "${doDist:-}" ]]; then - continue; - fi; - if [[ -n $NIX_LOG_FD ]]; then - echo "@nix { \"action\": \"setPhase\", \"phase\": \"$curPhase\" }" >&"$NIX_LOG_FD"; - fi; - showPhaseHeader "$curPhase"; - dumpVars; - local startTime=$(date +"%s"); - eval "${!curPhase:-$curPhase}"; - local endTime=$(date +"%s"); - showPhaseFooter "$curPhase" "$startTime" "$endTime"; - if [ "$curPhase" = unpackPhase ]; then - [ -z "${sourceRoot}" ] || chmod +x "${sourceRoot}"; - cd "${sourceRoot:-.}"; - fi; - done -} -getAllOutputNames () -{ - - if [ -n "$__structuredAttrs" ]; then - echo "${!outputs[*]}"; - else - echo "$outputs"; - fi -} -getHostRole () -{ - - getRole "$hostOffset" -} -getHostRoleEnvHook () -{ - - getRole "$depHostOffset" -} -getRole () -{ - - case $1 in - -1) - role_post='_FOR_BUILD' - ;; - 0) - role_post='' - ;; - 1) - role_post='_FOR_TARGET' - ;; - *) - echo "binutils-wrapper-2.40: used as improper sort of dependency" 1>&2; - return 1 - ;; - esac -} -getTargetRole () -{ - - getRole "$targetOffset" -} -getTargetRoleEnvHook () -{ - - getRole "$depTargetOffset" -} -getTargetRoleWrapper () -{ - - case $targetOffset in - -1) - export NIX_BINTOOLS_WRAPPER_TARGET_BUILD_x86_64_unknown_linux_gnu=1 - ;; - 0) - export NIX_BINTOOLS_WRAPPER_TARGET_HOST_x86_64_unknown_linux_gnu=1 - ;; - 1) - export NIX_BINTOOLS_WRAPPER_TARGET_TARGET_x86_64_unknown_linux_gnu=1 - ;; - *) - echo "binutils-wrapper-2.40: used as improper sort of dependency" 1>&2; - return 1 - ;; - esac -} -installCheckPhase () -{ - - runHook preInstallCheck; - if [[ -z "${foundMakefile:-}" ]]; then - echo "no Makefile or custom installCheckPhase, doing nothing"; - else - if [[ -z "${installCheckTarget:-}" ]] && ! make -n ${makefile:+-f $makefile} "${installCheckTarget:-installcheck}" > /dev/null 2>&1; then - echo "no installcheck target in ${makefile:-Makefile}, doing nothing"; - else - local flagsArray=(${enableParallelChecking:+-j${NIX_BUILD_CORES}} SHELL=$SHELL); - _accumFlagsArray makeFlags makeFlagsArray installCheckFlags installCheckFlagsArray; - flagsArray+=(${installCheckTarget:-installcheck}); - echoCmd 'installcheck flags' "${flagsArray[@]}"; - make ${makefile:+-f $makefile} "${flagsArray[@]}"; - unset flagsArray; - fi; - fi; - runHook postInstallCheck -} -installPhase () -{ - - runHook preInstall; - if [[ -z "${makeFlags-}" && -z "${makefile:-}" && ! ( -e Makefile || -e makefile || -e GNUmakefile ) ]]; then - echo "no Makefile or custom installPhase, doing nothing"; - runHook postInstall; - return; - else - foundMakefile=1; - fi; - if [ -n "$prefix" ]; then - mkdir -p "$prefix"; - fi; - local flagsArray=(${enableParallelInstalling:+-j${NIX_BUILD_CORES}} SHELL=$SHELL); - _accumFlagsArray makeFlags makeFlagsArray installFlags installFlagsArray; - if [ -n "$__structuredAttrs" ]; then - flagsArray+=("${installTargets[@]:-install}"); - else - flagsArray+=(${installTargets:-install}); - fi; - echoCmd 'install flags' "${flagsArray[@]}"; - make ${makefile:+-f $makefile} "${flagsArray[@]}"; - unset flagsArray; - runHook postInstall -} -isELF () -{ - - local fn="$1"; - local fd; - local magic; - exec {fd}< "$fn"; - read -r -n 4 -u "$fd" magic; - exec {fd}>&-; - if [ "$magic" = 'ELF' ]; then - return 0; - else - return 1; - fi -} -isMachO () -{ - - local fn="$1"; - local fd; - local magic; - exec {fd}< "$fn"; - read -r -n 4 -u "$fd" magic; - exec {fd}>&-; - if [[ "$magic" = $(echo -ne "\xfe\xed\xfa\xcf") || "$magic" = $(echo -ne "\xcf\xfa\xed\xfe") ]]; then - return 0; - else - if [[ "$magic" = $(echo -ne "\xfe\xed\xfa\xce") || "$magic" = $(echo -ne "\xce\xfa\xed\xfe") ]]; then - return 0; - else - if [[ "$magic" = $(echo -ne "\xca\xfe\xba\xbe") || "$magic" = $(echo -ne "\xbe\xba\xfe\xca") ]]; then - return 0; - else - return 1; - fi; - fi; - fi -} -isScript () -{ - - local fn="$1"; - local fd; - local magic; - exec {fd}< "$fn"; - read -r -n 2 -u "$fd" magic; - exec {fd}>&-; - if [[ "$magic" =~ \#! ]]; then - return 0; - else - return 1; - fi -} -mapOffset () -{ - - local -r inputOffset="$1"; - local -n outputOffset="$2"; - if (( inputOffset <= 0 )); then - outputOffset=$((inputOffset + hostOffset)); - else - outputOffset=$((inputOffset - 1 + targetOffset)); - fi -} -moveToOutput () -{ - - local patt="$1"; - local dstOut="$2"; - local output; - for output in $(getAllOutputNames); - do - if [ "${!output}" = "$dstOut" ]; then - continue; - fi; - local srcPath; - for srcPath in "${!output}"/$patt; - do - if [ ! -e "$srcPath" ] && [ ! -L "$srcPath" ]; then - continue; - fi; - if [ "$dstOut" = REMOVE ]; then - echo "Removing $srcPath"; - rm -r "$srcPath"; - else - local dstPath="$dstOut${srcPath#${!output}}"; - echo "Moving $srcPath to $dstPath"; - if [ -d "$dstPath" ] && [ -d "$srcPath" ]; then - rmdir "$srcPath" --ignore-fail-on-non-empty; - if [ -d "$srcPath" ]; then - mv -t "$dstPath" "$srcPath"/*; - rmdir "$srcPath"; - fi; - else - mkdir -p "$(readlink -m "$dstPath/..")"; - mv "$srcPath" "$dstPath"; - fi; - fi; - local srcParent="$(readlink -m "$srcPath/..")"; - if [ -n "$(find "$srcParent" -maxdepth 0 -type d -empty 2> /dev/null)" ]; then - echo "Removing empty $srcParent/ and (possibly) its parents"; - rmdir -p --ignore-fail-on-non-empty "$srcParent" 2> /dev/null || true; - fi; - done; - done -} -patchELF () -{ - - local dir="$1"; - [ -e "$dir" ] || return 0; - echo "shrinking RPATHs of ELF executables and libraries in $dir"; - local i; - while IFS= read -r -d '' i; do - if [[ "$i" =~ .build-id ]]; then - continue; - fi; - if ! isELF "$i"; then - continue; - fi; - echo "shrinking $i"; - patchelf --shrink-rpath "$i" || true; - done < <(find "$dir" -type f -print0) -} -patchPhase () -{ - - runHook prePatch; - local -a patchesArray; - if [ -n "$__structuredAttrs" ]; then - patchesArray=(${patches:+"${patches[@]}"}); - else - patchesArray=(${patches:-}); - fi; - for i in "${patchesArray[@]}"; - do - echo "applying patch $i"; - local uncompress=cat; - case "$i" in - *.gz) - uncompress="gzip -d" - ;; - *.bz2) - uncompress="bzip2 -d" - ;; - *.xz) - uncompress="xz -d" - ;; - *.lzma) - uncompress="lzma -d" - ;; - esac; - local -a flagsArray; - if [ -n "$__structuredAttrs" ]; then - flagsArray=("${patchFlags[@]:--p1}"); - else - flagsArray=(${patchFlags:--p1}); - fi; - $uncompress < "$i" 2>&1 | patch "${flagsArray[@]}"; - done; - runHook postPatch -} -patchShebangs () -{ - - local pathName; - if [[ "$1" == "--host" ]]; then - pathName=HOST_PATH; - shift; - else - if [[ "$1" == "--build" ]]; then - pathName=PATH; - shift; - fi; - fi; - echo "patching script interpreter paths in $@"; - local f; - local oldPath; - local newPath; - local arg0; - local args; - local oldInterpreterLine; - local newInterpreterLine; - if [[ $# -eq 0 ]]; then - echo "No arguments supplied to patchShebangs" 1>&2; - return 0; - fi; - local f; - while IFS= read -r -d '' f; do - isScript "$f" || continue; - read -r oldInterpreterLine < "$f"; - read -r oldPath arg0 args <<< "${oldInterpreterLine:2}"; - if [[ -z "$pathName" ]]; then - if [[ -n $strictDeps && $f == "$NIX_STORE"* ]]; then - pathName=HOST_PATH; - else - pathName=PATH; - fi; - fi; - if [[ "$oldPath" == *"/bin/env" ]]; then - if [[ $arg0 == "-S" ]]; then - arg0=${args%% *}; - args=${args#* }; - newPath="$(PATH="${!pathName}" command -v "env" || true)"; - args="-S $(PATH="${!pathName}" command -v "$arg0" || true) $args"; - else - if [[ $arg0 == "-"* || $arg0 == *"="* ]]; then - echo "$f: unsupported interpreter directive \"$oldInterpreterLine\" (set dontPatchShebangs=1 and handle shebang patching yourself)" 1>&2; - exit 1; - else - newPath="$(PATH="${!pathName}" command -v "$arg0" || true)"; - fi; - fi; - else - if [[ -z $oldPath ]]; then - oldPath="/bin/sh"; - fi; - newPath="$(PATH="${!pathName}" command -v "$(basename "$oldPath")" || true)"; - args="$arg0 $args"; - fi; - newInterpreterLine="$newPath $args"; - newInterpreterLine=${newInterpreterLine%${newInterpreterLine##*[![:space:]]}}; - if [[ -n "$oldPath" && "${oldPath:0:${#NIX_STORE}}" != "$NIX_STORE" ]]; then - if [[ -n "$newPath" && "$newPath" != "$oldPath" ]]; then - echo "$f: interpreter directive changed from \"$oldInterpreterLine\" to \"$newInterpreterLine\""; - escapedInterpreterLine=${newInterpreterLine//\\/\\\\}; - timestamp=$(stat --printf "%y" "$f"); - sed -i -e "1 s|.*|#\!$escapedInterpreterLine|" "$f"; - touch --date "$timestamp" "$f"; - fi; - fi; - done < <(find "$@" -type f -perm -0100 -print0) -} -patchShebangsAuto () -{ - - if [[ -z "${dontPatchShebangs-}" && -e "$prefix" ]]; then - if [[ "$output" != out && "$output" = "$outputDev" ]]; then - patchShebangs --build "$prefix"; - else - patchShebangs --host "$prefix"; - fi; - fi -} -prependToVar () -{ - - local -n nameref="$1"; - local useArray type; - if [ -n "$__structuredAttrs" ]; then - useArray=true; - else - useArray=false; - fi; - if declare -p "$1" 2> /dev/null | grep -q '^'; then - type="$(declare -p "$1")"; - if [[ "$type" =~ "declare -A" ]]; then - echo "prependToVar(): ERROR: trying to use prependToVar on an associative array." 1>&2; - return 1; - else - if [[ "$type" =~ "declare -a" ]]; then - useArray=true; - else - useArray=false; - fi; - fi; - fi; - shift; - if $useArray; then - nameref=("$@" ${nameref+"${nameref[@]}"}); - else - nameref="$* ${nameref-}"; - fi -} -printLines () -{ - - (( "$#" > 0 )) || return 0; - printf '%s\n' "$@" -} -printWords () -{ - - (( "$#" > 0 )) || return 0; - printf '%s ' "$@" -} -recordPropagatedDependencies () -{ - - declare -ra flatVars=(depsBuildBuildPropagated propagatedNativeBuildInputs depsBuildTargetPropagated depsHostHostPropagated propagatedBuildInputs depsTargetTargetPropagated); - declare -ra flatFiles=("${propagatedBuildDepFiles[@]}" "${propagatedHostDepFiles[@]}" "${propagatedTargetDepFiles[@]}"); - local propagatedInputsIndex; - for propagatedInputsIndex in "${!flatVars[@]}"; - do - local propagatedInputsSlice="${flatVars[$propagatedInputsIndex]}[@]"; - local propagatedInputsFile="${flatFiles[$propagatedInputsIndex]}"; - [[ -n "${!propagatedInputsSlice}" ]] || continue; - mkdir -p "${!outputDev}/nix-support"; - printWords ${!propagatedInputsSlice} > "${!outputDev}/nix-support/$propagatedInputsFile"; - done -} -runHook () -{ - - local hookName="$1"; - shift; - local hooksSlice="${hookName%Hook}Hooks[@]"; - local hook; - for hook in "_callImplicitHook 0 $hookName" ${!hooksSlice+"${!hooksSlice}"}; - do - _eval "$hook" "$@"; - done; - return 0 -} -runOneHook () -{ - - local hookName="$1"; - shift; - local hooksSlice="${hookName%Hook}Hooks[@]"; - local hook ret=1; - for hook in "_callImplicitHook 1 $hookName" ${!hooksSlice+"${!hooksSlice}"}; - do - if _eval "$hook" "$@"; then - ret=0; - break; - fi; - done; - return "$ret" -} -showPhaseFooter () -{ - - local phase="$1"; - local startTime="$2"; - local endTime="$3"; - local delta=$(( endTime - startTime )); - (( delta < 30 )) && return; - local H=$((delta/3600)); - local M=$((delta%3600/60)); - local S=$((delta%60)); - echo -n "$phase completed in "; - (( H > 0 )) && echo -n "$H hours "; - (( M > 0 )) && echo -n "$M minutes "; - echo "$S seconds" -} -showPhaseHeader () -{ - - local phase="$1"; - case "$phase" in - unpackPhase) - echo "unpacking sources" - ;; - patchPhase) - echo "patching sources" - ;; - configurePhase) - echo "configuring" - ;; - buildPhase) - echo "building" - ;; - checkPhase) - echo "running tests" - ;; - installPhase) - echo "installing" - ;; - fixupPhase) - echo "post-installation fixup" - ;; - installCheckPhase) - echo "running install tests" - ;; - *) - echo "$phase" - ;; - esac -} -stripDirs () -{ - - local cmd="$1"; - local ranlibCmd="$2"; - local paths="$3"; - local stripFlags="$4"; - local pathsNew=; - local p; - for p in ${paths}; - do - if [ -e "$prefix/$p" ]; then - pathsNew="${pathsNew} $prefix/$p"; - fi; - done; - paths=${pathsNew}; - if [ -n "${paths}" ]; then - echo "stripping (with command $cmd and flags $stripFlags) in $paths"; - find $paths -type f -a '!' -wholename "$prefix/lib/debug/*" -exec $cmd $stripFlags '{}' \; 2> /dev/null; - find $paths -name '*.a' -type f -exec $ranlibCmd '{}' \; 2> /dev/null; - fi -} -stripHash () -{ - - local strippedName casematchOpt=0; - strippedName="$(basename -- "$1")"; - shopt -q nocasematch && casematchOpt=1; - shopt -u nocasematch; - if [[ "$strippedName" =~ ^[a-z0-9]{32}- ]]; then - echo "${strippedName:33}"; - else - echo "$strippedName"; - fi; - if (( casematchOpt )); then - shopt -s nocasematch; - fi -} -substitute () -{ - - local input="$1"; - local output="$2"; - shift 2; - if [ ! -f "$input" ]; then - echo "substitute(): ERROR: file '$input' does not exist" 1>&2; - return 1; - fi; - local content; - consumeEntire content < "$input"; - if [ -e "$output" ]; then - chmod +w "$output"; - fi; - substituteStream content "file '$input'" "$@" > "$output" -} -substituteAll () -{ - - local input="$1"; - local output="$2"; - local -a args=(); - _allFlags; - substitute "$input" "$output" "${args[@]}" -} -substituteAllInPlace () -{ - - local fileName="$1"; - shift; - substituteAll "$fileName" "$fileName" "$@" -} -substituteAllStream () -{ - - local -a args=(); - _allFlags; - substituteStream "$1" "$2" "${args[@]}" -} -substituteInPlace () -{ - - local -a fileNames=(); - for arg in "$@"; - do - if [[ "$arg" = "--"* ]]; then - break; - fi; - fileNames+=("$arg"); - shift; - done; - for file in "${fileNames[@]}"; - do - substitute "$file" "$file" "$@"; - done -} -substituteStream () -{ - - local var=$1; - local description=$2; - shift 2; - while (( "$#" )); do - case "$1" in - --replace) - pattern="$2"; - replacement="$3"; - shift 3; - local savedvar; - savedvar="${!var}"; - eval "$var"'=${'"$var"'//"$pattern"/"$replacement"}'; - if [ "$pattern" != "$replacement" ]; then - if [ "${!var}" == "$savedvar" ]; then - echo "substituteStream(): WARNING: pattern '$pattern' doesn't match anything in $description" 1>&2; - fi; - fi - ;; - --subst-var) - local varName="$2"; - shift 2; - if ! [[ "$varName" =~ ^[a-zA-Z_][a-zA-Z0-9_]*$ ]]; then - echo "substituteStream(): ERROR: substitution variables must be valid Bash names, \"$varName\" isn't." 1>&2; - return 1; - fi; - if [ -z ${!varName+x} ]; then - echo "substituteStream(): ERROR: variable \$$varName is unset" 1>&2; - return 1; - fi; - pattern="@$varName@"; - replacement="${!varName}"; - eval "$var"'=${'"$var"'//"$pattern"/"$replacement"}' - ;; - --subst-var-by) - pattern="@$2@"; - replacement="$3"; - eval "$var"'=${'"$var"'//"$pattern"/"$replacement"}'; - shift 3 - ;; - *) - echo "substituteStream(): ERROR: Invalid command line argument: $1" 1>&2; - return 1 - ;; - esac; - done; - printf "%s" "${!var}" -} -unpackFile () -{ - - curSrc="$1"; - echo "unpacking source archive $curSrc"; - if ! runOneHook unpackCmd "$curSrc"; then - echo "do not know how to unpack source archive $curSrc"; - exit 1; - fi -} -unpackPhase () -{ - - runHook preUnpack; - if [ -z "${srcs:-}" ]; then - if [ -z "${src:-}" ]; then - echo 'variable $src or $srcs should point to the source'; - exit 1; - fi; - srcs="$src"; - fi; - local -a srcsArray; - if [ -n "$__structuredAttrs" ]; then - srcsArray=("${srcs[@]}"); - else - srcsArray=($srcs); - fi; - local dirsBefore=""; - for i in *; - do - if [ -d "$i" ]; then - dirsBefore="$dirsBefore $i "; - fi; - done; - for i in "${srcsArray[@]}"; - do - unpackFile "$i"; - done; - : "${sourceRoot=}"; - if [ -n "${setSourceRoot:-}" ]; then - runOneHook setSourceRoot; - else - if [ -z "$sourceRoot" ]; then - for i in *; - do - if [ -d "$i" ]; then - case $dirsBefore in - *\ $i\ *) - - ;; - *) - if [ -n "$sourceRoot" ]; then - echo "unpacker produced multiple directories"; - exit 1; - fi; - sourceRoot="$i" - ;; - esac; - fi; - done; - fi; - fi; - if [ -z "$sourceRoot" ]; then - echo "unpacker appears to have produced no directories"; - exit 1; - fi; - echo "source root is $sourceRoot"; - if [ "${dontMakeSourcesWritable:-0}" != 1 ]; then - chmod -R u+w -- "$sourceRoot"; - fi; - runHook postUnpack -} -updateSourceDateEpoch () -{ - - local path="$1"; - local -a res=($(find "$path" -type f -not -newer "$NIX_BUILD_TOP/.." -printf '%T@ %p\0' | sort -n --zero-terminated | tail -n1 --zero-terminated | head -c -1)); - local time="${res[0]//\.[0-9]*/}"; - local newestFile="${res[1]}"; - if [ "${time:-0}" -gt "$SOURCE_DATE_EPOCH" ]; then - echo "setting SOURCE_DATE_EPOCH to timestamp $time of file $newestFile"; - export SOURCE_DATE_EPOCH="$time"; - local now="$(date +%s)"; - if [ "$time" -gt $((now - 60)) ]; then - echo "warning: file $newestFile may be generated; SOURCE_DATE_EPOCH may be non-deterministic"; - fi; - fi -} -PATH="$PATH${nix_saved_PATH:+:$nix_saved_PATH}" -XDG_DATA_DIRS="$XDG_DATA_DIRS${nix_saved_XDG_DATA_DIRS:+:$nix_saved_XDG_DATA_DIRS}" -export NIX_BUILD_TOP="$(mktemp -d -t nix-shell.XXXXXX)" -export TMP="$NIX_BUILD_TOP" -export TMPDIR="$NIX_BUILD_TOP" -export TEMP="$NIX_BUILD_TOP" -export TEMPDIR="$NIX_BUILD_TOP" -eval "$shellHook" diff --git a/.gitignore b/.gitignore index 05fc82a8..19420b0a 100644 --- a/.gitignore +++ b/.gitignore @@ -33,6 +33,6 @@ .vscode/* # nix stuff -.direnv +.direnv/ .envrc result diff --git a/README.md b/README.md index a3182608..37b76817 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,8 @@ This is a ROM Hack of Pokémon Red and Blue, aiming to expand the Kanto region w If playing on an emulator, BGB is strongly recommended for its accuracy and features. Inaccurate emulators, such as VBA and TGB Dual, can experience unintended glitches. This hack is fully playable on official hardware as well. +# For all Pokemon info go [here](https://docs.google.com/spreadsheets/d/1cP8tvoj19__bx08hSG7dOtefVcdaNwZXohVu1RKzjPI/edit?usp=sharing) + New Pokemon ==== The Kanto Expansion Pak's ethos is to add every "Kanto-related" Pokemon to RBY without fundamentally changing the grander metagame. What's defined as "Kanto-related" is a Pokemon that evolves from an existing Kanto Pokemon, made an appearance in a Kanto-based game (LGPE), is a regional variant, or was a Kanto-related Pokemon cut during the development of an official game. @@ -173,7 +175,7 @@ Improved Areas QoL Enhancements ==== -- A feminine character option is now available, featuring the sprite from Pokemon Anniversary Red, which is based on Green's manga appearance. +- Feminine and Androgynous character options are now available, featuring Green's sprite from Pokemon Anniversary Red, which is based on her manga appearance, as well as a custom Nonbinary character named Pink. - To accomodate this, Celadon Gym's trainers use their more neutral text from Crystal. - The protagonist is also referred to in a gender neutral manner. This changes like, 2-3 lines in the whole game. - All 151 original Pokemon, plus an additional 100, can be obtained without the use of trading or glitches, including Mew! @@ -198,6 +200,7 @@ QoL Enhancements - Traded Pokemon ("Outsiders") can now be nicknamed at the Name Rater's House. - HP bar has been doubled in speed, having a 1 frame delay per pixel rather than 2. - The blinking animation when hit by moves like Tackle now repeats 4 instead of 6 times, speeding up battles by a bit while not sacrificing impact. +- The Safari Zone Rest Houses now have PCs in them, so if the box is full, you can still change boxes to continue catching Pokemon. - The Rock in the Safari Zone now only raises the flee chance by 1.5x, rather than 2x, opening up new strategies. - PP symbol is displayed in the battle menu. PP displayed before, it just looks nicer now. Done by changing a straggler Japanese character. - Lorelei, Bruno, and Agatha now play the Gym Leader Battle theme. @@ -397,6 +400,7 @@ If you use our implementations of anything at all, it is encouraged to submit Pu * wrulfy - Reused a bit of code from their Carmine Red hack to improve a handful of move animations, most notably Drill Peck and Horn Drill. Technical advice. * TheSmithPlays - Reused a bit of code from their Yellow Legacy hack. * Pigu-A, RevoSucks, walle303 - Contributors to Pokemon Anniversary Red's repository, where we reused the Green/FemC sprites and the Battle Tent. +* Madame Frog / Hatun - [FemC Green sprite used in Pokemon Anniversary Red](https://www.deviantart.com/ghost-missingno/art/Blue-Sprites-for-R-G-B-Y-339796166). * Rangi - Reused a bit of code from their Red* / Blue* hack to make HMs usable in the overworld, and generally being an amazing individual. * BGVC - Composed the original 4-channel version of the unused Koukan (trading) music. * Rainbow Metal Pigeon - Bug fix relating to Gym Leader rematches. @@ -420,7 +424,7 @@ RacieBeep sprites: Balumba, Blastyke, Blottle, Buu, Cactormus, Cheep, Coinpur, C Orchid: Luxwan (back), Buu (back) -Zeta_Null: Porygon (front) +Zeta_Null: Porygon (front), All sprites for Pink (Nonbinary player option) Official sprites: Crobat (front, edited by Martha’s Against Humanity), Disturban, Espeon (front, edited by Martha’s Against Humanity), Slowking (front), Steelix (front), Tricules, Umbreon (front, edited by Martha’s Against Humanity) diff --git a/constants/menu_constants.asm b/constants/menu_constants.asm index 569bc05f..78d8ca70 100644 --- a/constants/menu_constants.asm +++ b/constants/menu_constants.asm @@ -20,7 +20,7 @@ DEF PC_ITEM_CAPACITY EQU 50 const MONEY_BOX_TEMPLATE ; $0f const MENU_TEMPLATE_10 ; $10 unused const MON_SPRITE_POPUP ; $11 - const JP_AH_MENU_TEMPLATE ; $12 + const BOY_GIRL_NO ; $12 new for gender non-binary selection const MONEY_BOX ; $13 const TWO_OPTION_MENU ; $14 const BUY_SELL_QUIT_MENU ; $15 diff --git a/data/events/hidden_objects.asm b/data/events/hidden_objects.asm index 865d85dc..31091174 100644 --- a/data/events/hidden_objects.asm +++ b/data/events/hidden_objects.asm @@ -58,6 +58,7 @@ HiddenObjectMaps: db VICTORY_ROAD_2F db BILLS_HOUSE db VIRIDIAN_CITY + db SAFARI_ZONE_CENTER_REST_HOUSE db SAFARI_ZONE_WEST_REST_HOUSE db SAFARI_ZONE_EAST_REST_HOUSE db SAFARI_ZONE_NORTH_REST_HOUSE @@ -153,6 +154,7 @@ HiddenObjectPointers: dw VictoryRoad2HiddenObjects dw BillsHouseHiddenObjects dw ViridianCityHiddenObjects + dw SafariZoneRestHouse1HiddenObjects dw SafariZoneRestHouse2HiddenObjects dw SafariZoneRestHouse3HiddenObjects dw SafariZoneRestHouse4HiddenObjects @@ -535,19 +537,13 @@ ViridianCityHiddenObjects: hidden_object 14, 4, POTION, HiddenItems db -1 ; end +; Moved these to the same slot to save bytes. +SafariZoneRestHouse1HiddenObjects: SafariZoneRestHouse2HiddenObjects: - hidden_object 0, 4, SPRITE_FACING_LEFT, PrintBenchGuyText - hidden_object 13, 3, SPRITE_FACING_UP, OpenPokemonCenterPC - db -1 ; end - SafariZoneRestHouse3HiddenObjects: - hidden_object 0, 4, SPRITE_FACING_LEFT, PrintBenchGuyText - hidden_object 13, 3, SPRITE_FACING_UP, OpenPokemonCenterPC - db -1 ; end - SafariZoneRestHouse4HiddenObjects: - hidden_object 0, 4, SPRITE_FACING_LEFT, PrintBenchGuyText - hidden_object 13, 3, SPRITE_FACING_UP, OpenPokemonCenterPC + hidden_object 0, 4, SPRITE_FACING_LEFT, PrintBenchGuyText ; still unused + hidden_object 4, 1, SPRITE_FACING_UP, OpenPokemonCenterPC db -1 ; end Route15GateUpstairsHiddenObjects: diff --git a/data/maps/headers/SafariZoneCenterRestHouse.asm b/data/maps/headers/SafariZoneCenterRestHouse.asm index c80abea0..e8880a49 100644 --- a/data/maps/headers/SafariZoneCenterRestHouse.asm +++ b/data/maps/headers/SafariZoneCenterRestHouse.asm @@ -1,2 +1,2 @@ - map_header SafariZoneCenterRestHouse, SAFARI_ZONE_CENTER_REST_HOUSE, GATE, 0 + map_header SafariZoneCenterRestHouse, SAFARI_ZONE_CENTER_REST_HOUSE, HOUSE, 0 end_map_header diff --git a/data/maps/headers/SafariZoneEastRestHouse.asm b/data/maps/headers/SafariZoneEastRestHouse.asm index 94964754..5227a3aa 100644 --- a/data/maps/headers/SafariZoneEastRestHouse.asm +++ b/data/maps/headers/SafariZoneEastRestHouse.asm @@ -1,2 +1,2 @@ - map_header SafariZoneEastRestHouse, SAFARI_ZONE_EAST_REST_HOUSE, GATE, 0 + map_header SafariZoneEastRestHouse, SAFARI_ZONE_EAST_REST_HOUSE, HOUSE, 0 end_map_header diff --git a/data/maps/headers/SafariZoneNorthRestHouse.asm b/data/maps/headers/SafariZoneNorthRestHouse.asm index 7f9d5dbc..f324dd72 100644 --- a/data/maps/headers/SafariZoneNorthRestHouse.asm +++ b/data/maps/headers/SafariZoneNorthRestHouse.asm @@ -1,2 +1,2 @@ - map_header SafariZoneNorthRestHouse, SAFARI_ZONE_NORTH_REST_HOUSE, GATE, 0 + map_header SafariZoneNorthRestHouse, SAFARI_ZONE_NORTH_REST_HOUSE, HOUSE, 0 end_map_header diff --git a/data/maps/headers/SafariZoneWestRestHouse.asm b/data/maps/headers/SafariZoneWestRestHouse.asm index 3d3bef71..4d572b1c 100644 --- a/data/maps/headers/SafariZoneWestRestHouse.asm +++ b/data/maps/headers/SafariZoneWestRestHouse.asm @@ -1,2 +1,2 @@ - map_header SafariZoneWestRestHouse, SAFARI_ZONE_WEST_REST_HOUSE, GATE, 0 + map_header SafariZoneWestRestHouse, SAFARI_ZONE_WEST_REST_HOUSE, HOUSE, 0 end_map_header diff --git a/data/maps/objects/SafariZoneCenterRestHouse.asm b/data/maps/objects/SafariZoneCenterRestHouse.asm index ff48d19c..557b3bbc 100644 --- a/data/maps/objects/SafariZoneCenterRestHouse.asm +++ b/data/maps/objects/SafariZoneCenterRestHouse.asm @@ -8,7 +8,7 @@ SafariZoneCenterRestHouse_Object: def_bg_events def_object_events - object_event 3, 2, SPRITE_GIRL, STAY, DOWN, 1 ; person - object_event 1, 4, SPRITE_SCIENTIST, WALK, UP_DOWN, 2 ; person + object_event 3, 3, SPRITE_GIRL, STAY, LEFT, 1 ; person + object_event 5, 6, SPRITE_SCIENTIST, WALK, UP_DOWN, 2 ; person def_warps_to SAFARI_ZONE_CENTER_REST_HOUSE diff --git a/data/maps/objects/SafariZoneEastRestHouse.asm b/data/maps/objects/SafariZoneEastRestHouse.asm index f79a5cfc..62742229 100644 --- a/data/maps/objects/SafariZoneEastRestHouse.asm +++ b/data/maps/objects/SafariZoneEastRestHouse.asm @@ -8,9 +8,9 @@ SafariZoneEastRestHouse_Object: def_bg_events def_object_events - object_event 2, 3, SPRITE_SCIENTIST, WALK, UP_DOWN, 1 ; person - object_event 0, 2, SPRITE_ROCKER, STAY, NONE, 2 ; person - object_event 5, 2, SPRITE_SILPH_WORKER, STAY, NONE, 3 ; person - object_event 6, 2, SPRITE_SILPH_WORKER, STAY, NONE, 4 ; person + object_event 5, 5, SPRITE_SCIENTIST, WALK, UP_DOWN, 1 ; person + object_event 0, 4, SPRITE_ROCKER, STAY, RIGHT, 2 ; person + object_event 3, 3, SPRITE_SILPH_WORKER, STAY, LEFT, 3 ; person + object_event 3, 4, SPRITE_SILPH_WORKER, STAY, LEFT, 4 ; person def_warps_to SAFARI_ZONE_EAST_REST_HOUSE diff --git a/data/maps/objects/SafariZoneNorthRestHouse.asm b/data/maps/objects/SafariZoneNorthRestHouse.asm index 8fbacd81..7aeaf327 100644 --- a/data/maps/objects/SafariZoneNorthRestHouse.asm +++ b/data/maps/objects/SafariZoneNorthRestHouse.asm @@ -9,7 +9,7 @@ SafariZoneNorthRestHouse_Object: def_object_events object_event 6, 3, SPRITE_SCIENTIST, WALK, LEFT_RIGHT, 1 ; person - object_event 3, 4, SPRITE_SAFARI_ZONE_WORKER, STAY, NONE, 2 ; person + object_event 3, 4, SPRITE_SAFARI_ZONE_WORKER, LEFT, NONE, 2 ; person object_event 1, 5, SPRITE_GENTLEMAN, WALK, UP_DOWN, 3 ; person def_warps_to SAFARI_ZONE_NORTH_REST_HOUSE diff --git a/data/maps/objects/SafariZoneWestRestHouse.asm b/data/maps/objects/SafariZoneWestRestHouse.asm index c63886b7..a5f6bbaf 100644 --- a/data/maps/objects/SafariZoneWestRestHouse.asm +++ b/data/maps/objects/SafariZoneWestRestHouse.asm @@ -8,8 +8,8 @@ SafariZoneWestRestHouse_Object: def_bg_events def_object_events - object_event 4, 4, SPRITE_SCIENTIST, WALK, ANY_DIR, 1 ; person - object_event 0, 2, SPRITE_COOLTRAINER_M, STAY, RIGHT, 2 ; person - object_event 6, 2, SPRITE_ERIKA, STAY, DOWN, 3 ; person + object_event 5, 3, SPRITE_SCIENTIST, WALK, ANY_DIR, 1 ; person + object_event 0, 3, SPRITE_COOLTRAINER_M, STAY, RIGHT, 2 ; person + object_event 3, 4, SPRITE_ERIKA, STAY, LEFT, 3 ; person def_warps_to SAFARI_ZONE_WEST_REST_HOUSE diff --git a/data/player_names.asm b/data/player_names.asm index 6aec50fb..87249c7d 100644 --- a/data/player_names.asm +++ b/data/player_names.asm @@ -11,6 +11,13 @@ DefaultNamesGirl: next "LEAF" next "ELAINE" db "@" + +DefaultNamesEnby: + db "NEW NAME" + next "PINK" + next "QUARTZ" + next "JAY" + db "@" DefaultNamesRival: db "NEW NAME" diff --git a/data/player_names_list.asm b/data/player_names_list.asm index f5c06f6a..d08b1518 100644 --- a/data/player_names_list.asm +++ b/data/player_names_list.asm @@ -9,6 +9,12 @@ DefaultNamesGirlList: db "GREEN@" db "LEAF@" db "ELAINE@" + +DefaultNamesEnbyList: + db "NEW NAME@" + db "PINK@" + db "QUARTZ@" + db "JAY@" DefaultNamesRivalList: db "NEW NAME@" diff --git a/data/text/unused_names.asm b/data/text/unused_names.asm index 349a31cf..7311d001 100644 --- a/data/text/unused_names.asm +++ b/data/text/unused_names.asm @@ -1,22 +1,22 @@ UnusedBadgeNames:: - db "かみなりバッヂ@" ; THUNDER BADGE - db "かいがらバッヂ@" ; SHELL BADGE - db "おじぞうバッヂ@" ; JIZOU BADGE - db "はやぶさバッヂ@" ; FALCON BADGE - db "ひんやりバッヂ@" ; CHILL BADGE - db "なかよしバッヂ@" ; FRIENDSHIP BADGE - db "バラバッヂ@" ; ROSE BADGE - db "ひのたまバッヂ@" ; FIREBALL BADGE - db "ゴールドバッヂ@" ; GOLD BADGE +; db "かみなりバッヂ@" ; THUNDER BADGE +; db "かいがらバッヂ@" ; SHELL BADGE +; db "おじぞうバッヂ@" ; JIZOU BADGE +; db "はやぶさバッヂ@" ; FALCON BADGE +; db "ひんやりバッヂ@" ; CHILL BADGE +; db "なかよしバッヂ@" ; FRIENDSHIP BADGE +; db "バラバッヂ@" ; ROSE BADGE +; db "ひのたまバッヂ@" ; FIREBALL BADGE +; db "ゴールドバッヂ@" ; GOLD BADGE UnusedRankingNames: - db "たまご@" ; EGG - db "ひよこ@" ; CHICK - db "ブロンズ@" ; BRONZE - db "シルバー@" ; SILVER - db "ゴールド@" ; GOLD - db "プチキャプテン@" ; PETIT CAPTAIN - db "キャプテン@" ; CAPTAIN - db "プチマスター@" ; PETIT MASTER - db "マスター@" ; MASTER - db "エクセレント" ; EXCELLENT +; db "たまご@" ; EGG +; db "ひよこ@" ; CHICK +; db "ブロンズ@" ; BRONZE +; db "シルバー@" ; SILVER +; db "ゴールド@" ; GOLD +; db "プチキャプテン@" ; PETIT CAPTAIN +; db "キャプテン@" ; CAPTAIN +; db "プチマスター@" ; PETIT MASTER +; db "マスター@" ; MASTER +; db "エクセレント" ; EXCELLENT diff --git a/data/text_boxes.asm b/data/text_boxes.asm index a5013d1b..35c6eec7 100644 --- a/data/text_boxes.asm +++ b/data/text_boxes.asm @@ -33,7 +33,7 @@ TextBoxTextAndCoordTable: text_box_text SWITCH_STATS_CANCEL_MENU_TEMPLATE, 11, 11, 19, 17, SwitchStatsCancelText, 13, 12 text_box_text BUY_SELL_QUIT_MENU_TEMPLATE, 0, 0, 10, 6, BuySellQuitText, 2, 1 text_box_text MONEY_BOX_TEMPLATE, 11, 0, 19, 2, MoneyText, 13, 0 - text_box_text JP_AH_MENU_TEMPLATE, 7, 6, 11, 10, JapaneseAhText, 8, 8 + text_box_text BOY_GIRL_NO, 12, 6, 19, 12, BoyGirlNoText, 14, 7 text_box_text JP_POKEDEX_MENU_TEMPLATE, 11, 8, 19, 17, JapanesePokedexMenu, 12, 10 BuySellQuitText: @@ -80,8 +80,10 @@ SwitchStatsCancelText: next "STATS" next "CANCEL@" -JapaneseAhText: - db "アッ!@" +BoyGirlNoText: + db "RED" + next "GREEN" + next "PINK@" JapanesePokedexMenu: db "データをみる" diff --git a/engine/battle/core.asm b/engine/battle/core.asm index 24afd5be..b76e0f52 100644 --- a/engine/battle/core.asm +++ b/engine/battle/core.asm @@ -6543,12 +6543,18 @@ LoadPlayerBackPic: ld a, [wPlayerSex] ; do you think a republican will get off to this commit and a jr z, .RedBack + cp a, 2 + jr z, .EnbyBack ld de, GreenPicBack ld a, BANK(GreenPicBack) ; Load female back sprite jr .next .RedBack ld de, RedPicBack ; Load default Red back sprite ld a, BANK(RedPicBack) + jr .next +.EnbyBack + ld de, TealPicBack ; Load teal back sprite + ld a, BANK(TealPicBack) .next ASSERT BANK(GreenPicBack) == BANK(OldManPicBack) ; These two ASSERTs make sure to cover ASSERT BANK(RedPicBack) == BANK(OldManPicBack) ; both sprite cases diff --git a/engine/events/diploma.asm b/engine/events/diploma.asm index be211b16..5ca0075d 100644 --- a/engine/events/diploma.asm +++ b/engine/events/diploma.asm @@ -42,10 +42,16 @@ DisplayDiploma:: ld a, [wPlayerSex] and a ; are you playing as Red jr z, .red ; if yes, Red appears on the diploma + ld a, [wPlayerSex] + cp a, 2 + jr z, .pink ; if yes, Pink appears on the diploma jr nz, .green ; if no, Green replaces him .green farcall DrawFPlayerCharacter jr .skip +.pink + farcall DrawNBPlayerCharacter + jr .skip .red farcall DrawPlayerCharacter .skip diff --git a/engine/menus/start_sub_menus.asm b/engine/menus/start_sub_menus.asm index 14be1871..ccc25c48 100644 --- a/engine/menus/start_sub_menus.asm +++ b/engine/menus/start_sub_menus.asm @@ -519,6 +519,10 @@ DrawTrainerInfo: ld a, [wPlayerSex] ; guess what it's genital inspection time and a jr z, .AreBoy + ld de, EnbyPicFront + lb bc, BANK(EnbyPicFront), $01 + cp a, 2 + jr z, .AreBoy ; I'm not updating these names. I'm lazy. Also did you know this was changed to wPlayerGender in one of the other tutorials? ld de, GreenPicFront lb bc, BANK(GreenPicFront), $01 .AreBoy diff --git a/engine/movie/hall_of_fame.asm b/engine/movie/hall_of_fame.asm index 556b777f..b20798a3 100644 --- a/engine/movie/hall_of_fame.asm +++ b/engine/movie/hall_of_fame.asm @@ -188,10 +188,16 @@ HoFLoadPlayerPics: jr nz, .GirlStuff1 ld de, RedPicFront ld a, BANK(RedPicFront) - jr .Routine ; skip the girl stuff and go to main routine + jr .Routine ; skip the girl stuff and go to main routine .GirlStuff1 + cp a, 2 + jr z, .TealStuff1 ld de, GreenPicFront ld a, BANK(GreenPicFront) + jr .Routine ; skip the girl stuff and go to main routine +.TealStuff1 + ld de, EnbyPicFront + ld a, BANK(EnbyPicFront) .Routine ; resume original routine call UncompressSpriteFromDE ld hl, sSpriteBuffer1 @@ -207,8 +213,14 @@ HoFLoadPlayerPics: ld a, BANK(RedPicBack) jr .routine2 ; skip the girl stuff and continue original routine if guy .GirlStuff2 + cp a, 2 + jr z, .TealStuff2 ld de, GreenPicBack ld a, BANK(GreenPicBack) + jr .routine2 +.TealStuff2 + ld de, TealPicBack + ld a, BANK(TealPicBack) .routine2 ; original routine call UncompressSpriteFromDE predef ScaleSpriteByTwo diff --git a/engine/movie/intro.asm b/engine/movie/intro.asm index 5aa10808..e5912ed9 100644 --- a/engine/movie/intro.asm +++ b/engine/movie/intro.asm @@ -277,9 +277,9 @@ CopyTileIDsFromList_ZeroBaseTileID: PlayMoveSoundB: ; unused - predef GetMoveSoundB - ld a, b - jp PlaySound +; predef GetMoveSoundB +; ld a, b +; jp PlaySound LoadIntroGraphics: ld hl, FightIntroBackMon diff --git a/engine/movie/oak_speech/oak_speech.asm b/engine/movie/oak_speech/oak_speech.asm index f5b4d226..2156dbf2 100644 --- a/engine/movie/oak_speech/oak_speech.asm +++ b/engine/movie/oak_speech/oak_speech.asm @@ -71,7 +71,7 @@ OakSpeech: call PrintText ; show this text call BoyGirlChoice ; added routine at the end of this file ld a, [wCurrentMenuItem] - ld [wPlayerSex], a ; store player's gender. 00 for boy, 01 for girl + ld [wPlayerSex], a ; store player's gender. 00 for boy, 01 for girl, 02 for enby call GBFadeOutToWhite call ClearScreen @@ -80,6 +80,10 @@ OakSpeech: ld a, [wPlayerSex] ; check sex and a ; check sex jr z, .NotGreen0 + ld de, EnbyPicFront + lb bc, BANK(EnbyPicFront), $00 + cp a, 2 + jr z, .NotGreen0 ld de, GreenPicFront lb bc, BANK(GreenPicFront), $00 .NotGreen0 @@ -97,7 +101,9 @@ OakSpeech: ld a, [wPlayerSex] ; Let's change the Nidorins based on the choice. It's really cute and makes use of an unused command sound. and a jr z, .Nidorino - jr nz, .Nidorina + cp a, 2 + jr z, .Nidoreign +; jr nz, .Nidorina .Nidorina ld a, NIDORINA ld [wd0b5], a @@ -117,6 +123,16 @@ OakSpeech: call LoadFlippedFrontSpriteByMonIndex call MovePicLeft ld hl, OakSpeechText2Red + jr .cont +.Nidoreign + ld a, NIDOREIGN + ld [wd0b5], a + ld [wcf91], a + call GetMonHeader + hlcoord 6, 4 + call LoadFlippedFrontSpriteByMonIndex + call MovePicLeft + ld hl, OakSpeechText2Enby .cont call PrintText @@ -124,12 +140,19 @@ OakSpeech: call ClearScreen ld de, RedPicFront lb bc, BANK(RedPicFront), $00 - ld a, [wPlayerSex] ; check sex - and a ; check sex - jr z, .NotGreen1 + ld a, [wPlayerSex] ; load gender + and a ; check gender - and a is equivalent to `cp a, 0` (but faster) + ; if a=0->gender=male, ergo jump to the vanilla part of the code + jr z, .ContinueWithOakIntro1 + cp a, 2 ; check gender: if a=2->gender=enby, jump to the yellow subroutine, otherwise continue below + jp z, .LoadEnbyPicFront1 ld de, GreenPicFront lb bc, BANK(GreenPicFront), $00 -.NotGreen1: + jr .ContinueWithOakIntro1 +.LoadEnbyPicFront1 + ld de, EnbyPicFront + lb bc, BANK(EnbyPicFront), $00 +.ContinueWithOakIntro1: call IntroDisplayPicCenteredOrUpperRight call MovePicLeft ld hl, IntroducePlayerText @@ -152,6 +175,10 @@ OakSpeech: ld a, [wPlayerSex] ; check sex and a ; check sex jr z, .NotGreen2 + ld de, EnbyPicFront + lb bc, BANK(EnbyPicFront), $00 + cp a, 2 + jr z, .NotGreen2 ld de, GreenPicFront lb bc, Bank(GreenPicFront), $00 .NotGreen2: @@ -178,6 +205,10 @@ OakSpeech: ld a, [wPlayerSex] ; check sex and a ; check sex jr z, .NotGreen3 + ld de, TealSprite + lb bc, BANK(TealSprite), $0C + cp a, 2 + jr z, .NotGreen3 ld de,GreenSprite lb bc, BANK(GreenSprite), $0C .NotGreen3: @@ -232,6 +263,11 @@ OakSpeechText2Green: sound_cry_nidorina text_far _OakSpeechText2B text_end +OakSpeechText2Enby: + text_far _OakSpeechText2A + sound_cry_nidoreign + text_far _OakSpeechText2B + text_end IntroducePlayerText: text_far _IntroducePlayerText text_end @@ -305,23 +341,40 @@ IntroDisplayPicCenteredOrUpperRight: predef_jump CopyUncompressedPicToTilemap ; displays boy/girl choice - BoyGirlChoice:: - call SaveScreenTilesToBuffer1 - call InitBoyGirlTextBoxParameters - jr DisplayBoyGirlChoice - - InitBoyGirlTextBoxParameters:: - ld a, $1 ; loads the value for the unused North/West choice, that was changed to say Boy/Girl - ld [wTwoOptionMenuID], a - coord hl, 12, 7 - ld bc, $80d - ret - - DisplayBoyGirlChoice:: - ld a, $14 - ld [wTextBoxID], a - call DisplayTextBoxID - jp LoadScreenTilesFromBuffer1 +BoyGirlChoice:: + call SaveScreenTilesToBuffer1 + jr DisplayBoyGirlNoChoice + +DisplayBoyGirlNoChoice:: + ld a, BOY_GIRL_NO + ld [wTextBoxID], a + call DisplayTextBoxID + ld hl, wTopMenuItemY + ld a, 7 + ld [hli], a ; top menu item Y + ld a, 13 + ld [hli], a ; top menu item X + xor a + ld [hli], a ; current menu item ID + inc hl + ld a, $2 + ld [hli], a ; wMaxMenuItem +; ld a, B_BUTTON | A_BUTTON + ld a, A_BUTTON + ld [hli], a ; wMenuWatchedKeys + xor a + ld [hl], a ; wLastMenuItem + call HandleMenuInput +; bit BIT_B_BUTTON, a +; jr nz, .defaultOption ; if B was pressed, assign enby +; A was pressed + call PlaceUnfilledArrowMenuCursor + ld a, [wCurrentMenuItem] + jp LoadScreenTilesFromBuffer1 +;.defaultOption +; ld a, $02 +; ld [wCurrentMenuItem], a +; jp LoadScreenTilesFromBuffer1 BoyGirlText: ; This is new so we had to add a reference to get it to compile text_far _BoyGirlText diff --git a/engine/movie/oak_speech/oak_speech2.asm b/engine/movie/oak_speech/oak_speech2.asm index 445ed567..7b11e226 100644 --- a/engine/movie/oak_speech/oak_speech2.asm +++ b/engine/movie/oak_speech/oak_speech2.asm @@ -1,6 +1,8 @@ ChoosePlayerName: call OakSpeechSlidePicRight ld a, [wPlayerSex] ; load sex + cp a, 2 + jr z, .AreEnby ; Skip to enby names if you are enby instead and a jr nz, .AreGirl ; Skip to girl names if you are a girl instead ld de, DefaultNamesPlayer @@ -24,6 +26,17 @@ ChoosePlayerName: ld de, wPlayerName call OakSpeechSlidePicLeft jr .done ; End of new Girl Names routine +.AreEnby ; Copy of the boy naming routine, just with enby's names + ld de, DefaultNamesEnby + call DisplayIntroNameTextBox + ld a, [wCurrentMenuItem] + and a + jr z, .customName + ld hl, DefaultNamesEnbyList + call GetDefaultName + ld de, wPlayerName + call OakSpeechSlidePicLeft + jr .done ; End of new Enby Names routine .customName ld hl, wPlayerName xor a ; NAME_PLAYER_SCREEN @@ -39,6 +52,10 @@ ChoosePlayerName: ld a, [wPlayerSex] ; sex check and a ; yknow it feels like republicans wanting to do penis checking jr z, .AreBoy3 + ld de, EnbyPicFront + ld b, BANK(EnbyPicFront) + cp a, 2 + jr z, .AreBoy3 ld de, GreenPicFront ld b, BANK(GreenPicFront) .AreBoy3 diff --git a/engine/movie/title.asm b/engine/movie/title.asm index 1767ca0a..6a97078e 100644 --- a/engine/movie/title.asm +++ b/engine/movie/title.asm @@ -93,10 +93,17 @@ DisplayTitleScreen: jr nz, .pokemonLogoLastTileRowLoop call Random ldh a, [hRandomAdd] - cp 129 + cp 86 jr c, .male + call Random + ldh a, [hRandomAdd] + cp 129 + jr c, .nb call DrawFPlayerCharacter jr .playerskip +.nb + call DrawNBPlayerCharacter + jr .playerskip .male call DrawPlayerCharacter .playerskip @@ -398,6 +405,43 @@ DrawFPlayerCharacter: dec b jr nz, .loop2 ret + +DrawNBPlayerCharacter: + ld hl, NBPlayerCharacterTitleGraphics + ld de, vSprites + ld bc, NBPlayerCharacterTitleGraphicsEnd - NBPlayerCharacterTitleGraphics + ld a, BANK(NBPlayerCharacterTitleGraphics) + call FarCopyData2 + call ClearSprites + xor a + ld [wNBPlayerCharacterOAMTile], a + ld hl, wShadowOAM + lb de, $60, $5a + ld b, 7 +.loop3 + push de + ld c, 5 +.innerLoop3 + ld a, d + ld [hli], a ; Y + ld a, e + ld [hli], a ; X + add 8 + ld e, a + ld a, [wNBPlayerCharacterOAMTile] + ld [hli], a ; tile + inc a + ld [wNBPlayerCharacterOAMTile], a + inc hl + dec c + jr nz, .innerLoop3 + pop de + ld a, 8 + add d + ld d, a + dec b + jr nz, .loop3 + ret ClearBothBGMaps: ld hl, vBGMap0 diff --git a/engine/overworld/player_animations.asm b/engine/overworld/player_animations.asm index 9f5f7a19..8ab83361 100644 --- a/engine/overworld/player_animations.asm +++ b/engine/overworld/player_animations.asm @@ -389,6 +389,8 @@ FishingAnim: ld a, [wPlayerSex] ; sex check and a ; sex check jr z, .BoySpriteLoad + cp a, 2 + jr z, .EnbySpriteLoad ld de, GreenSprite ld hl, vNPCSprites ld bc, (BANK(GreenSprite) << 8) + $0c @@ -397,17 +399,28 @@ FishingAnim: ld de, RedSprite ld hl, vNPCSprites lb bc, BANK(RedSprite), $c + jr .KeepLoadingSpriteStuff +.EnbySpriteLoad + ld de, TealSprite + ld hl, vNPCSprites + lb bc, BANK(TealSprite), $c .KeepLoadingSpriteStuff call CopyVideoData ld a, [wPlayerSex] ; ; sex check and a ; ; sex check seriously i feel like a republican here jr z, .BoyTiles ; skip loading Green's stuff if you're Red + cp a, 2 + jr z, .EnbyTiles ld a, $4 ld hl, GreenFishingTiles jr .ContinueRoutine ; go back to main routine after loading Green's stuff .BoyTiles ; alternately, load Red's stuff ld a, $4 ld hl, RedFishingTiles + jr .ContinueRoutine ; go back to main routine after loading Red's stuff +.EnbyTiles ; alternately, load Teal's stuff + ld a, $4 + ld hl, TealFishingTiles .ContinueRoutine call LoadAnimSpriteGfx ld a, [wSpritePlayerStateData1ImageIndex] @@ -516,6 +529,12 @@ GreenFishingTiles: fishing_gfx GreenFishingTilesBack, 2, $06 fishing_gfx GreenFishingTilesSide, 2, $0a fishing_gfx RedFishingRodTiles, 3, $fd + +TealFishingTiles: + fishing_gfx TealFishingTilesFront, 2, $02 + fishing_gfx TealFishingTilesBack, 2, $06 + fishing_gfx TealFishingTilesSide, 2, $0a + fishing_gfx RedFishingRodTiles, 3, $fd _HandleMidJump:: ld a, [wPlayerJumpingYScreenCoordsIndex] diff --git a/flake.nix b/flake.nix index f8a262c7..1bdd19b7 100644 --- a/flake.nix +++ b/flake.nix @@ -16,6 +16,9 @@ src = ./.; name = "kep-hack"; buildInputs = [ rgbds gcc make ]; + buildPhase = '' + make kep + ''; installPhase = '' shopt -s extglob mkdir $out diff --git a/gfx/blocksets/house.bst b/gfx/blocksets/house.bst index 7f462f80..0ed306da 100644 Binary files a/gfx/blocksets/house.bst and b/gfx/blocksets/house.bst differ diff --git a/gfx/blocksets/overworld.bst b/gfx/blocksets/overworld.bst index 18ceef97..bc92a0f6 100644 --- a/gfx/blocksets/overworld.bst +++ b/gfx/blocksets/overworld.bst @@ -7,7 +7,7 @@ ()O*+:;<<<<<<<<<<<<<<HI77XY77,,,,,,,,,,,,77779999999999FG99VW# -#,,,,,,,,,,,,,,,,RRRRRRRRRRRRRRRRSS88SSSSSS 88@A@APQPQ@A@APQPQ%& +#,,,,,,,,,,,,,,,,RRRRRRRRRRRRRRRRSS^^SSSSSS 88@A@APQPQ@A@APQPQ%& """ @@ -19,7 +19,7 @@ N"/?"""""  ()""" -O*+*+:;:;*+*+:;:;*+:;*+*+:;:;*+:;*+*+:;:;*+*+:;:;*+:;*+*+:;:;*+:;*+:;*+:;*+:;*+:;9999999999996777##UU####UU######9###@A@APQPQ33332223333TTT3333LSSSZZ\SSSMZZ]!########!## ######## '''''6776777$$$$774$7774##!########!########''''''''$$$$$$$$7'57$533,,,,,,,,,,,,74<<%& +O*+*+:;:;*+*+:;:;*+:;*+*+:;:;*+:;*+*+:;:;*+*+:;:;*+:;*+*+:;:;*+:;*+:;*+:;*+:;*+:;9999999999996777##UU####UU######9###@A@APQPQ33332223333TTT3333LSSSZZ\SSSM__]!########!## ######## '''''6776777$$$$774$7774##!########!########''''''''$$$$$$$$7'57$533,,,,,,,,,,,,74<<%& "N9999999999999999@A-.PQ=>@A,,PQ,,@A@APQPQ,,-.,,=>-.,,=>,,@A@APQPQ,,-.,,=>@A,,PQ,,@A@APQPQ,,@A,,PQ @@ -50,7 +50,7 @@ KKKK KKKBCKJJO -KKKDEKJJO,,,,,,,,,,,,88%&""88""()99999999UUUU11110000000000FG00VW,0,00,0,,0,00,0,0909909009099090 +KKKDEKJJO,,,,,,,,,,,,^^%&""88""()99999999UUUU11110000000000FG00VW,0,00,0,,0,00,0,0909909009099090 KKKK N diff --git a/gfx/fishing.asm b/gfx/fishing.asm index cfde973a..ad5bb5f8 100644 --- a/gfx/fishing.asm +++ b/gfx/fishing.asm @@ -5,3 +5,6 @@ RedFishingRodTiles: INCBIN "gfx/overworld/fishing_rod.2bpp" GreenFishingTilesFront: INCBIN "gfx/overworld/green_fish_front.2bpp" GreenFishingTilesBack: INCBIN "gfx/overworld/green_fish_back.2bpp" GreenFishingTilesSide: INCBIN "gfx/overworld/green_fish_side.2bpp" +TealFishingTilesFront: INCBIN "gfx/overworld/teal_fish_front.2bpp" +TealFishingTilesBack: INCBIN "gfx/overworld/teal_fish_back.2bpp" +TealFishingTilesSide: INCBIN "gfx/overworld/teal_fish_side.2bpp" diff --git a/gfx/overworld/teal_fish_back.png b/gfx/overworld/teal_fish_back.png new file mode 100644 index 00000000..137780c8 Binary files /dev/null and b/gfx/overworld/teal_fish_back.png differ diff --git a/gfx/overworld/teal_fish_front.png b/gfx/overworld/teal_fish_front.png new file mode 100644 index 00000000..200663f4 Binary files /dev/null and b/gfx/overworld/teal_fish_front.png differ diff --git a/gfx/overworld/teal_fish_side.png b/gfx/overworld/teal_fish_side.png new file mode 100644 index 00000000..e487eb8a Binary files /dev/null and b/gfx/overworld/teal_fish_side.png differ diff --git a/gfx/pics.asm b/gfx/pics.asm index db5e343c..f5caa74b 100644 --- a/gfx/pics.asm +++ b/gfx/pics.asm @@ -260,7 +260,8 @@ PidgeottoPicFront:: INCBIN "gfx/pokemon/front/pidgeotto.pic" PidgeottoPicBack:: INCBIN "gfx/pokemon/back/pidgeottob.pic" RedPicBack:: INCBIN "gfx/player/redb.pic" -GreenPicBack:: INCBIN "gfx/player/greenb.pic" +GreenPicBack:: INCBIN "gfx/player/greenb.pic" +TealPicBack:: INCBIN "gfx/player/thirdb.pic" OldManPicBack:: INCBIN "gfx/battle/oldmanb.pic" diff --git a/gfx/player.asm b/gfx/player.asm index f50eb71c..825f7161 100644 --- a/gfx/player.asm +++ b/gfx/player.asm @@ -1,4 +1,5 @@ RedPicFront:: INCBIN "gfx/player/red.pic" GreenPicFront:: INCBIN "gfx/player/green.pic" +EnbyPicFront:: INCBIN "gfx/player/third.pic" ShrinkPic1:: INCBIN "gfx/player/shrink1.pic" ShrinkPic2:: INCBIN "gfx/player/shrink2.pic" diff --git a/gfx/player/third.png b/gfx/player/third.png new file mode 100644 index 00000000..4adcad4d Binary files /dev/null and b/gfx/player/third.png differ diff --git a/gfx/player/thirdb.png b/gfx/player/thirdb.png new file mode 100644 index 00000000..a5dc010f Binary files /dev/null and b/gfx/player/thirdb.png differ diff --git a/gfx/sprites.asm b/gfx/sprites.asm index cc7ea54b..d245534e 100644 --- a/gfx/sprites.asm +++ b/gfx/sprites.asm @@ -37,6 +37,8 @@ RedBikeSprite:: INCBIN "gfx/sprites/red_bike.2bpp" RedSprite:: INCBIN "gfx/sprites/red.2bpp" GreenBikeSprite:: INCBIN "gfx/sprites/green_bike.2bpp" GreenSprite:: INCBIN "gfx/sprites/green.2bpp" +TealBikeSprite:: INCBIN "gfx/sprites/teal_bike.2bpp" +TealSprite:: INCBIN "gfx/sprites/teal.2bpp" BlueSprite:: INCBIN "gfx/sprites/blue.2bpp" OakSprite:: INCBIN "gfx/sprites/oak.2bpp" YoungsterSprite:: INCBIN "gfx/sprites/youngster.2bpp" @@ -66,12 +68,6 @@ ErikaSprite:: INCBIN "gfx/sprites/erika.2bpp" MiddleAgedWomanSprite:: INCBIN "gfx/sprites/middle_aged_woman.2bpp" BrunetteGirlSprite:: INCBIN "gfx/sprites/brunette_girl.2bpp" LanceSprite:: INCBIN "gfx/sprites/lance.2bpp" -MomSprite:: INCBIN "gfx/sprites/mom.2bpp" -BaldingGuySprite:: INCBIN "gfx/sprites/balding_guy.2bpp" -LittleBoySprite:: INCBIN "gfx/sprites/little_boy.2bpp" -GameboyKidSprite:: INCBIN "gfx/sprites/gameboy_kid.2bpp" -FairySprite:: INCBIN "gfx/sprites/fairy.2bpp" -AgathaSprite:: INCBIN "gfx/sprites/agatha.2bpp" SeelSprite:: INCBIN "gfx/sprites/seel.2bpp" ; what a SILLY thing to do. SECTION "NPC Sprites 3", ROMX @@ -98,3 +94,12 @@ MagikarpSprite:: INCBIN "gfx/sprites/magikarp.2bpp" PoliwagSprite:: INCBIN "gfx/sprites/poliwag.2bpp" LoreleiSprite:: INCBIN "gfx/sprites/lorelei.2bpp" BrunoSprite:: INCBIN "gfx/sprites/bruno.2bpp" + +SECTION "NPC Sprites 4", ROMX + +MomSprite:: INCBIN "gfx/sprites/mom.2bpp" +BaldingGuySprite:: INCBIN "gfx/sprites/balding_guy.2bpp" +LittleBoySprite:: INCBIN "gfx/sprites/little_boy.2bpp" +GameboyKidSprite:: INCBIN "gfx/sprites/gameboy_kid.2bpp" +FairySprite:: INCBIN "gfx/sprites/fairy.2bpp" +AgathaSprite:: INCBIN "gfx/sprites/agatha.2bpp" diff --git a/gfx/sprites/teal.png b/gfx/sprites/teal.png new file mode 100644 index 00000000..0bd53f9e Binary files /dev/null and b/gfx/sprites/teal.png differ diff --git a/gfx/sprites/teal_bike.png b/gfx/sprites/teal_bike.png new file mode 100644 index 00000000..d01d819a Binary files /dev/null and b/gfx/sprites/teal_bike.png differ diff --git a/gfx/tilesets/overworld.png b/gfx/tilesets/overworld.png index c7533e40..ee10109d 100644 Binary files a/gfx/tilesets/overworld.png and b/gfx/tilesets/overworld.png differ diff --git a/gfx/title/nbplayer.png b/gfx/title/nbplayer.png new file mode 100644 index 00000000..5e84e14c Binary files /dev/null and b/gfx/title/nbplayer.png differ diff --git a/gfx/trainer_card.asm b/gfx/trainer_card.asm index dc573e2d..9dec2bc0 100644 --- a/gfx/trainer_card.asm +++ b/gfx/trainer_card.asm @@ -9,3 +9,6 @@ BadgeNumbersTileGraphics: INCBIN "gfx/trainer_card/badge_numbers.2bpp" FPlayerCharacterTitleGraphics: INCBIN "gfx/title/fplayer.2bpp" FPlayerCharacterTitleGraphicsEnd: + +NBPlayerCharacterTitleGraphics: INCBIN "gfx/title/nbplayer.2bpp" +NBPlayerCharacterTitleGraphicsEnd: diff --git a/home/overworld.asm b/home/overworld.asm index 2216869b..06f40ec8 100644 --- a/home/overworld.asm +++ b/home/overworld.asm @@ -2038,6 +2038,9 @@ LoadWalkingPlayerSpriteGraphics:: ld a, [wPlayerSex] and a jr z, .AreGuy1 + ld de, TealSprite + cp a, 2 + jr z, .AreGuy1 ld de, GreenSprite .AreGuy1 ld hl,vNPCSprites @@ -2053,6 +2056,9 @@ LoadBikePlayerSpriteGraphics:: ld a, [wPlayerSex] and a jr z, .AreGuy2 + ld de, TealBikeSprite + cp a, 2 + jr z, .AreGuy2 ld de, GreenBikeSprite .AreGuy2 ld hl, vNPCSprites diff --git a/home/text.asm b/home/text.asm index bd73f49e..daf81ed6 100644 --- a/home/text.asm +++ b/home/text.asm @@ -522,6 +522,8 @@ TextCommand_SOUND:: jr z, .pokemonCry cp TX_SOUND_CRY_NIDORINA jr z, .pokemonCry + cp TX_SOUND_CRY_NIDOREIGN + jr z, .pokemonCry ld a, [hl] call PlaySound call WaitForSoundToFinish @@ -542,7 +544,7 @@ TextCommandSounds:: db TX_SOUND_GET_ITEM_1, SFX_GET_ITEM_1 ; actually plays SFX_LEVEL_UP when the battle music engine is loaded db TX_SOUND_CAUGHT_MON, SFX_CAUGHT_MON db TX_SOUND_POKEDEX_RATING, SFX_POKEDEX_RATING ; unused - db TX_SOUND_GET_ITEM_1_DUPLICATE, SFX_GET_ITEM_1 ; unused + db TX_SOUND_CRY_NIDOREIGN, NIDOREIGN ; Was SFX_GET_ITEM_1 duplicate db TX_SOUND_GET_ITEM_2, SFX_GET_ITEM_2 db TX_SOUND_GET_KEY_ITEM, SFX_GET_KEY_ITEM db TX_SOUND_DEX_PAGE_ADDED, SFX_DEX_PAGE_ADDED diff --git a/layout.link b/layout.link index 184bf5d5..e2865163 100644 --- a/layout.link +++ b/layout.link @@ -44,7 +44,7 @@ ROMX $2 ROMX $3 "bank3" ROMX $4 - "NPC Sprites 1" +; "NPC Sprites 1" "Font Graphics" "Battle Engine 1" ROMX $5 diff --git a/macros/scripts/text.asm b/macros/scripts/text.asm index bb9458ae..f999231d 100644 --- a/macros/scripts/text.asm +++ b/macros/scripts/text.asm @@ -102,9 +102,9 @@ MACRO sound_pokedex_rating db TX_SOUND_POKEDEX_RATING ENDM - const TX_SOUND_GET_ITEM_1_DUPLICATE ; $0f -MACRO sound_get_item_1_duplicate - db TX_SOUND_GET_ITEM_1_DUPLICATE + const TX_SOUND_CRY_NIDOREIGN ; $0f +MACRO sound_cry_nidoreign + db TX_SOUND_CRY_NIDOREIGN ENDM const TX_SOUND_GET_ITEM_2 ; $10 diff --git a/maps/SafariZoneCenterRestHouse.blk b/maps/SafariZoneCenterRestHouse.blk index 625b41b6..11643254 100644 Binary files a/maps/SafariZoneCenterRestHouse.blk and b/maps/SafariZoneCenterRestHouse.blk differ diff --git a/maps/SafariZoneEastRestHouse.blk b/maps/SafariZoneEastRestHouse.blk index 625b41b6..9f144c22 100644 Binary files a/maps/SafariZoneEastRestHouse.blk and b/maps/SafariZoneEastRestHouse.blk differ diff --git a/maps/SafariZoneNorthRestHouse.blk b/maps/SafariZoneNorthRestHouse.blk index 625b41b6..2683df7b 100644 Binary files a/maps/SafariZoneNorthRestHouse.blk and b/maps/SafariZoneNorthRestHouse.blk differ diff --git a/maps/SafariZoneSecretHouse.blk b/maps/SafariZoneSecretHouse.blk index d5dbe9e1..cd0dbdfb 100644 --- a/maps/SafariZoneSecretHouse.blk +++ b/maps/SafariZoneSecretHouse.blk @@ -1 +1 @@ -  \ No newline at end of file +  \ No newline at end of file diff --git a/maps/SafariZoneWestRestHouse.blk b/maps/SafariZoneWestRestHouse.blk index 625b41b6..11643254 100644 Binary files a/maps/SafariZoneWestRestHouse.blk and b/maps/SafariZoneWestRestHouse.blk differ diff --git a/ram/wram.asm b/ram/wram.asm index 321eb92d..449eb1ef 100644 --- a/ram/wram.asm +++ b/ram/wram.asm @@ -868,6 +868,7 @@ wWhichBadge:: wTitleMonSpecies:: wPlayerCharacterOAMTile:: wFPlayerCharacterOAMTile:: +wNBPlayerCharacterOAMTile:: ; the number of small stars OAM entries to move down wMoveDownSmallStarsOAMCount:: wChargeMoveNum:: @@ -1993,6 +1994,7 @@ wMissableObjectList:: ds 16 * 2 + 1 wPlayerSex:: ; $00 = male ; $01 = female + ; $02 = enby ds 1 wGameProgressFlags:: diff --git a/text/SafariZoneGate.asm b/text/SafariZoneGate.asm index 6cfeb17c..57afe554 100644 --- a/text/SafariZoneGate.asm +++ b/text/SafariZoneGate.asm @@ -84,11 +84,11 @@ _SafariZoneEntranceText_753eb:: cont "BALLs, it's game" cont "over for you!" - para "Before you go," - line "open an unused" - cont "#MON BOX so" - cont "there's room for" - cont "new #MON!" + para "It's ok if the" + line "#MON BOX is" + cont "full: Go to a" + cont "REST HOUSE and" + cont "switch!" done _SafariZoneEntranceText_753f0::