RUN: /usr/share/launchpad-buildd/slavebin/slave-prep ['slave-prep'] Forking launchpad-buildd slave process... Kernel version: Linux lcy01-28 3.13.0-74-generic #118-Ubuntu SMP Thu Dec 17 22:52:10 UTC 2015 x86_64 Buildd toolchain package versions: launchpad-buildd_135 python-lpbuildd_135 sbuild_0.65.2-1ubuntu2~ubuntu14.04.1~ppa6 bzr-builder_0.7.3+bzr174~ppa13~ubuntu14.04.1 bzr_2.6.0+bzr6593-1ubuntu1.1 dpkg-dev_1.17.5ubuntu5.5 python-debian_0.1.27ubuntu1~ubuntu14.04.1~ppa1. Syncing the system clock with the buildd NTP service... 12 Jan 02:59:52 ntpdate[1639]: adjust time server 10.211.37.1 offset -0.000727 sec RUN: /usr/share/launchpad-buildd/slavebin/unpack-chroot ['unpack-chroot', 'PACKAGEBUILD-8648154', '/home/buildd/filecache-default/8204889cda79fca0b488b979ea0c52fb9d6dbd17'] Unpacking chroot for build PACKAGEBUILD-8648154 RUN: /usr/share/launchpad-buildd/slavebin/mount-chroot ['mount-chroot', 'PACKAGEBUILD-8648154'] Mounting chroot for build PACKAGEBUILD-8648154 RUN: /usr/share/launchpad-buildd/slavebin/override-sources-list ['override-sources-list', 'PACKAGEBUILD-8648154', 'deb http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu xenial main', 'deb http://ftpmaster.internal/ubuntu xenial main restricted universe multiverse', 'deb http://ftpmaster.internal/ubuntu xenial-security main restricted universe multiverse', 'deb http://ftpmaster.internal/ubuntu xenial-updates main restricted universe multiverse'] Overriding sources.list in build-PACKAGEBUILD-8648154 RUN: /usr/share/launchpad-buildd/slavebin/update-debian-chroot ['update-debian-chroot', 'PACKAGEBUILD-8648154', 'amd64'] Updating debian chroot for build PACKAGEBUILD-8648154 Get:1 http://ftpmaster.internal xenial InRelease [227 kB] Get:2 http://ftpmaster.internal xenial-security InRelease [73.5 kB] Get:3 http://ftpmaster.internal xenial-updates InRelease [73.5 kB] Get:4 http://ppa.launchpad.net xenial InRelease [17.6 kB] Get:5 http://ftpmaster.internal xenial/main amd64 Packages [1473 kB] Ign http://ppa.launchpad.net xenial InRelease Get:6 http://ppa.launchpad.net xenial/main amd64 Packages [44.2 kB] Get:7 http://ppa.launchpad.net xenial/main Translation-en [15.6 kB] Get:8 http://ftpmaster.internal xenial/restricted amd64 Packages [15.8 kB] Get:9 http://ftpmaster.internal xenial/universe amd64 Packages [7157 kB] Get:10 http://ftpmaster.internal xenial/multiverse amd64 Packages [139 kB] Get:11 http://ftpmaster.internal xenial/main Translation-en [850 kB] Get:12 http://ftpmaster.internal xenial/multiverse Translation-en [108 kB] Get:13 http://ftpmaster.internal xenial/restricted Translation-en [4302 B] Get:14 http://ftpmaster.internal xenial/universe Translation-en [4789 kB] Get:15 http://ftpmaster.internal xenial-security/main amd64 Packages [28 B] Get:16 http://ftpmaster.internal xenial-security/restricted amd64 Packages [28 B] Get:17 http://ftpmaster.internal xenial-security/universe amd64 Packages [28 B] Get:18 http://ftpmaster.internal xenial-security/multiverse amd64 Packages [28 B] Get:19 http://ftpmaster.internal xenial-security/main Translation-en [28 B] Get:20 http://ftpmaster.internal xenial-security/multiverse Translation-en [28 B] Get:21 http://ftpmaster.internal xenial-security/restricted Translation-en [28 B] Get:22 http://ftpmaster.internal xenial-security/universe Translation-en [28 B] Get:23 http://ftpmaster.internal xenial-updates/main amd64 Packages [28 B] Get:24 http://ftpmaster.internal xenial-updates/restricted amd64 Packages [28 B] Get:25 http://ftpmaster.internal xenial-updates/universe amd64 Packages [28 B] Get:26 http://ftpmaster.internal xenial-updates/multiverse amd64 Packages [28 B] Get:27 http://ftpmaster.internal xenial-updates/main Translation-en [28 B] Get:28 http://ftpmaster.internal xenial-updates/multiverse Translation-en [28 B] Get:29 http://ftpmaster.internal xenial-updates/restricted Translation-en [28 B] Get:30 http://ftpmaster.internal xenial-updates/universe Translation-en [28 B] Fetched 15.0 MB in 6s (2398 kB/s) Reading package lists... W: GPG error: http://ppa.launchpad.net xenial InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 1E9377A2BA9EF27F Reading package lists... Building dependency tree... Reading state information... The following packages were automatically installed and are no longer required: g++-5 libapt-pkg4.16 libisl13 libprocps3 libstdc++-5-dev udev Use 'apt-get autoremove' to remove them. The following packages will be REMOVED: perl-modules* The following NEW packages will be installed: cpp-6 g++-6 gcc-6 gcc-6-base libapt-pkg5.0 libasan3 libgcc-6-dev libisl15 libperl5.22 libprocps4 libstdc++-6-dev perl-modules-5.22 The following packages will be upgraded: advancecomp apt apt-transport-https base-files base-passwd binutils bsdutils cpp cpp-5 debconf diffutils dmsetup dpkg dpkg-dev e2fslibs e2fsprogs findutils g++ g++-5 gcc gcc-5 gcc-5-base gnupg gpgv hostname init initscripts libapparmor1 libasan2 libatomic1 libaudit-common libaudit1 libblkid1 libc-bin libc-dev-bin libc6 libc6-dev libcap2 libcap2-bin libcc1-0 libcilkrts5 libcomerr2 libcurl3-gnutls libdbus-1-3 libdebconfclient0 libdevmapper1.02.1 libdpkg-perl libfdisk1 libffi6 libgcc-5-dev libgcc1 libgcrypt20 libgmp10 libgnutls-deb0-28 libgomp1 libgpg-error0 libgssapi-krb5-2 libidn11 libitm1 libk5crypto3 libkeyutils1 libkrb5-3 libkrb5support0 libldap-2.4-2 liblsan0 libmount1 libmpfr4 libmpx0 libncurses5 libncursesw5 libnih-dbus1 libnih1 libp11-kit0 libpng12-0 libquadmath0 libseccomp2 libselinux1 libsepol1 libsmartcols1 libsqlite3-0 libss2 libssl1.0.0 libstdc++-5-dev libstdc++6 libsystemd0 libtasn1-6 libtinfo5 libtsan0 libubsan0 libudev1 libusb-0.1-4 libuuid1 linux-libc-dev lsb-base mount multiarch-support ncurses-base ncurses-bin openssl perl perl-base pkg-create-dbgsym pkgbinarymangler procps systemd systemd-sysv sysv-rc sysvinit-utils tar udev util-linux 111 upgraded, 12 newly installed, 1 to remove and 0 not upgraded. Need to get 235 MB of archives. After this operation, 863 MB of additional disk space will be used. WARNING: The following packages cannot be authenticated! gcc-6-base libgcc1 libstdc++6 libcc1-0 libgomp1 libitm1 libatomic1 liblsan0 libtsan0 libubsan0 libcilkrts5 libmpx0 libquadmath0 cpp-6 cpp libasan3 libgcc-6-dev gcc-6 gcc libstdc++-6-dev g++-6 g++ Authentication warning overridden. Get:1 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu/ xenial/main gcc-6-base amd64 6-20160109-1ubuntu1 [15.6 kB] Get:2 http://ftpmaster.internal/ubuntu/ xenial/main base-files amd64 9.4ubuntu3 [62.0 kB] Get:3 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu/ xenial/main libgcc1 amd64 1:6-20160109-1ubuntu1 [38.7 kB] Get:4 http://ftpmaster.internal/ubuntu/ xenial/main bsdutils amd64 1:2.27.1-1ubuntu3 [51.5 kB] Get:5 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu/ xenial/main libstdc++6 amd64 6-20160109-1ubuntu1 [398 kB] Get:6 http://ftpmaster.internal/ubuntu/ xenial/main diffutils amd64 1:3.3-3 [156 kB] Get:7 http://ftpmaster.internal/ubuntu/ xenial/main dpkg amd64 1.18.3ubuntu1 [2081 kB] Get:8 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu/ xenial/main libcc1-0 amd64 6-20160109-1ubuntu1 [31.3 kB] Get:9 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu/ xenial/main libgomp1 amd64 6-20160109-1ubuntu1 [74.2 kB] Get:10 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu/ xenial/main libitm1 amd64 6-20160109-1ubuntu1 [27.8 kB] Get:11 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu/ xenial/main libatomic1 amd64 6-20160109-1ubuntu1 [9146 B] Get:12 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu/ xenial/main liblsan0 amd64 6-20160109-1ubuntu1 [116 kB] Get:13 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu/ xenial/main libtsan0 amd64 6-20160109-1ubuntu1 [262 kB] Get:14 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu/ xenial/main libubsan0 amd64 6-20160109-1ubuntu1 [107 kB] Get:15 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu/ xenial/main libcilkrts5 amd64 6-20160109-1ubuntu1 [41.0 kB] Get:16 http://ftpmaster.internal/ubuntu/ xenial/main libc6-dev amd64 2.21-0ubuntu5 [1951 kB] Get:17 http://ftpmaster.internal/ubuntu/ xenial/main libc-dev-bin amd64 2.21-0ubuntu5 [68.7 kB] Get:18 http://ftpmaster.internal/ubuntu/ xenial/main linux-libc-dev amd64 4.3.0-5.16 [819 kB] Get:19 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu/ xenial/main libmpx0 amd64 6-20160109-1ubuntu1 [11.3 kB] Get:20 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu/ xenial/main libquadmath0 amd64 6-20160109-1ubuntu1 [132 kB] Get:21 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu/ xenial/main cpp-6 amd64 6-20160109-1ubuntu1 [30.6 MB] Get:22 http://ftpmaster.internal/ubuntu/ xenial/main libcap2 amd64 1:2.24-12 [12.9 kB] Get:23 http://ftpmaster.internal/ubuntu/ xenial/main libc-bin amd64 2.21-0ubuntu5 [1172 kB] Get:24 http://ftpmaster.internal/ubuntu/ xenial/main libc6 amd64 2.21-0ubuntu5 [4789 kB] Get:25 http://ftpmaster.internal/ubuntu/ xenial/main e2fslibs amd64 1.42.13-1ubuntu1 [188 kB] Get:26 http://ftpmaster.internal/ubuntu/ xenial/main e2fsprogs amd64 1.42.13-1ubuntu1 [771 kB] Get:27 http://ftpmaster.internal/ubuntu/ xenial/main findutils amd64 4.4.2-10 [281 kB] Get:28 http://ftpmaster.internal/ubuntu/ xenial/main hostname amd64 3.16ubuntu2 [11.5 kB] Get:29 http://ftpmaster.internal/ubuntu/ xenial/main init amd64 1.24ubuntu2 [3966 B] Get:30 http://ftpmaster.internal/ubuntu/ xenial/main libsmartcols1 amd64 2.27.1-1ubuntu3 [62.3 kB] Get:31 http://ftpmaster.internal/ubuntu/ xenial/main libuuid1 amd64 2.27.1-1ubuntu3 [14.7 kB] Get:32 http://ftpmaster.internal/ubuntu/ xenial/main libblkid1 amd64 2.27.1-1ubuntu3 [107 kB] Get:33 http://ftpmaster.internal/ubuntu/ xenial/main libfdisk1 amd64 2.27.1-1ubuntu3 [139 kB] Get:34 http://ftpmaster.internal/ubuntu/ xenial/main debconf all 1.5.58ubuntu1 [136 kB] Get:35 http://ftpmaster.internal/ubuntu/ xenial/main sysvinit-utils amd64 2.88dsf-59.2ubuntu3 [25.7 kB] Get:36 http://ftpmaster.internal/ubuntu/ xenial/main sysv-rc all 2.88dsf-59.2ubuntu3 [36.1 kB] Get:37 http://ftpmaster.internal/ubuntu/ xenial/main initscripts amd64 2.88dsf-59.2ubuntu3 [24.8 kB] Get:38 http://ftpmaster.internal/ubuntu/ xenial/main util-linux amd64 2.27.1-1ubuntu3 [847 kB] Get:39 http://ftpmaster.internal/ubuntu/ xenial/main libudev1 amd64 228-3ubuntu1 [56.9 kB] Get:40 http://ftpmaster.internal/ubuntu/ xenial/main udev amd64 228-3ubuntu1 [975 kB] Get:41 http://ftpmaster.internal/ubuntu/ xenial/main libsystemd0 amd64 228-3ubuntu1 [204 kB] Get:42 http://ftpmaster.internal/ubuntu/ xenial/main systemd amd64 228-3ubuntu1 [3494 kB] Get:43 http://ftpmaster.internal/ubuntu/ xenial/main libselinux1 amd64 2.4-3 [56.0 kB] Get:44 http://ftpmaster.internal/ubuntu/ xenial/main libtinfo5 amd64 6.0+20151024-2ubuntu1 [77.1 kB] Get:45 http://ftpmaster.internal/ubuntu/ xenial/main libncurses5 amd64 6.0+20151024-2ubuntu1 [93.9 kB] Get:46 http://ftpmaster.internal/ubuntu/ xenial/main libncursesw5 amd64 6.0+20151024-2ubuntu1 [116 kB] Get:47 http://ftpmaster.internal/ubuntu/ xenial/main libprocps4 amd64 2:3.3.10-4ubuntu1 [32.8 kB] Get:48 http://ftpmaster.internal/ubuntu/ xenial/main procps amd64 2:3.3.10-4ubuntu1 [222 kB] Get:49 http://ftpmaster.internal/ubuntu/ xenial/main libapparmor1 amd64 2.10-0ubuntu10 [28.6 kB] Get:50 http://ftpmaster.internal/ubuntu/ xenial/main libaudit-common all 1:2.4.4-4ubuntu1 [3892 B] Get:51 http://ftpmaster.internal/ubuntu/ xenial/main libaudit1 amd64 1:2.4.4-4ubuntu1 [36.3 kB] Get:52 http://ftpmaster.internal/ubuntu/ xenial/main libmount1 amd64 2.27.1-1ubuntu3 [114 kB] Get:53 http://ftpmaster.internal/ubuntu/ xenial/main libseccomp2 amd64 2.2.3-2ubuntu3 [35.0 kB] Get:54 http://ftpmaster.internal/ubuntu/ xenial/main libcap2-bin amd64 1:2.24-12 [20.2 kB] Get:55 http://ftpmaster.internal/ubuntu/ xenial/main lsb-base all 9.20150917ubuntu1 [13.4 kB] Get:56 http://ftpmaster.internal/ubuntu/ xenial/main mount amd64 2.27.1-1ubuntu3 [121 kB] Get:57 http://ftpmaster.internal/ubuntu/ xenial/main ncurses-bin amd64 6.0+20151024-2ubuntu1 [135 kB] Get:58 http://ftpmaster.internal/ubuntu/ xenial/main perl-modules-5.22 all 5.22.1-3 [2648 kB] Get:59 http://ftpmaster.internal/ubuntu/ xenial/main libperl5.22 amd64 5.22.1-3 [3322 kB] Get:60 http://ftpmaster.internal/ubuntu/ xenial/main perl amd64 5.22.1-3 [237 kB] Get:61 http://ftpmaster.internal/ubuntu/ xenial/main perl-base amd64 5.22.1-3 [1281 kB] Get:62 http://ftpmaster.internal/ubuntu/ xenial/main tar amd64 1.28-2.1 [209 kB] Get:63 http://ftpmaster.internal/ubuntu/ xenial/main libapt-pkg5.0 amd64 1.1.10 [680 kB] Get:64 http://ftpmaster.internal/ubuntu/ xenial/main apt amd64 1.1.10 [963 kB] Get:65 http://ftpmaster.internal/ubuntu/ xenial/main gpgv amd64 1.4.19-6ubuntu1 [165 kB] Get:66 http://ftpmaster.internal/ubuntu/ xenial/main libusb-0.1-4 amd64 2:0.1.12-28 [17.0 kB] Get:67 http://ftpmaster.internal/ubuntu/ xenial/main gnupg amd64 1.4.19-6ubuntu1 [626 kB] Get:68 http://ftpmaster.internal/ubuntu/ xenial/main libdebconfclient0 amd64 0.198ubuntu1 [6368 B] Get:69 http://ftpmaster.internal/ubuntu/ xenial/main base-passwd amd64 3.5.39 [51.9 kB] Get:70 http://ftpmaster.internal/ubuntu/ xenial/main ncurses-base all 6.0+20151024-2ubuntu1 [17.1 kB] Get:71 http://ftpmaster.internal/ubuntu/ xenial/main systemd-sysv amd64 228-3ubuntu1 [15.5 kB] Get:72 http://ftpmaster.internal/ubuntu/ xenial/main libdbus-1-3 amd64 1.10.6-1ubuntu1 [161 kB] Get:73 http://ftpmaster.internal/ubuntu/ xenial/main libnih-dbus1 amd64 1.0.3-4.3ubuntu1 [14.1 kB] Get:74 http://ftpmaster.internal/ubuntu/ xenial/main libnih1 amd64 1.0.3-4.3ubuntu1 [49.0 kB] Get:75 http://ftpmaster.internal/ubuntu/ xenial/main libgmp10 amd64 2:6.1.0+dfsg-2 [240 kB] Get:76 http://ftpmaster.internal/ubuntu/ xenial/main libffi6 amd64 3.2.1-4 [17.8 kB] Get:77 http://ftpmaster.internal/ubuntu/ xenial/main libp11-kit0 amd64 0.23.2-3 [107 kB] Get:78 http://ftpmaster.internal/ubuntu/ xenial/main libtasn1-6 amd64 4.7-3 [43.1 kB] Get:79 http://ftpmaster.internal/ubuntu/ xenial/main libgnutls-deb0-28 amd64 3.3.18-1ubuntu1 [520 kB] Get:80 http://ftpmaster.internal/ubuntu/ xenial/main libldap-2.4-2 amd64 2.4.41+dfsg-1ubuntu3 [160 kB] Get:81 http://ftpmaster.internal/ubuntu/ xenial/main libisl15 amd64 0.15-3 [514 kB] Get:82 http://ftpmaster.internal/ubuntu/ xenial/main libcomerr2 amd64 1.42.13-1ubuntu1 [65.7 kB] Get:83 http://ftpmaster.internal/ubuntu/ xenial/main libdevmapper1.02.1 amd64 2:1.02.110-1ubuntu2 [145 kB] Get:84 http://ftpmaster.internal/ubuntu/ xenial/main libgpg-error0 amd64 1.21-1 [34.4 kB] Get:85 http://ftpmaster.internal/ubuntu/ xenial/main libgcrypt20 amd64 1.6.4-4 [336 kB] Get:86 http://ftpmaster.internal/ubuntu/ xenial/main libsepol1 amd64 2.4-2 [186 kB] Get:87 http://ftpmaster.internal/ubuntu/ xenial/main libss2 amd64 1.42.13-1ubuntu1 [70.0 kB] Get:88 http://ftpmaster.internal/ubuntu/ xenial/main multiarch-support amd64 2.21-0ubuntu5 [7174 B] Get:89 http://ftpmaster.internal/ubuntu/ xenial/main libpng12-0 amd64 1.2.54-1ubuntu1 [116 kB] Get:90 http://ftpmaster.internal/ubuntu/ xenial/main libsqlite3-0 amd64 3.10.0-1 [396 kB] Get:91 http://ftpmaster.internal/ubuntu/ xenial/main libssl1.0.0 amd64 1.0.2e-1ubuntu1 [1080 kB] Get:92 http://ftpmaster.internal/ubuntu/ xenial/main dmsetup amd64 2:1.02.110-1ubuntu2 [59.8 kB] Get:93 http://ftpmaster.internal/ubuntu/ xenial/main libmpfr4 amd64 3.1.3-2 [189 kB] Get:94 http://ftpmaster.internal/ubuntu/ xenial/main g++-5 amd64 5.3.1-5ubuntu2 [32.4 MB] Get:95 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu/ xenial/main cpp amd64 4:6-20160101-1ubuntu4 [27.6 kB] Get:96 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu/ xenial/main libasan3 amd64 6-20160109-1ubuntu1 [308 kB] Get:97 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu/ xenial/main libgcc-6-dev amd64 6-20160109-1ubuntu1 [2302 kB] Get:98 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu/ xenial/main gcc-6 amd64 6-20160109-1ubuntu1 [30.8 MB] Get:99 http://ftpmaster.internal/ubuntu/ xenial/main gcc-5 amd64 5.3.1-5ubuntu2 [30.3 MB] Get:100 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu/ xenial/main gcc amd64 4:6-20160101-1ubuntu4 [5220 B] Get:101 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu/ xenial/main libstdc++-6-dev amd64 6-20160109-1ubuntu1 [1398 kB] Get:102 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu/ xenial/main g++-6 amd64 6-20160109-1ubuntu1 [32.7 MB] Get:103 http://ftpmaster.internal/ubuntu/ xenial/main cpp-5 amd64 5.3.1-5ubuntu2 [30.1 MB] Get:104 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu/ xenial/main g++ amd64 4:6-20160101-1ubuntu4 [1506 B] Get:105 http://ftpmaster.internal/ubuntu/ xenial/main binutils amd64 2.25.90.20160101-1ubuntu2 [2309 kB] Get:106 http://ftpmaster.internal/ubuntu/ xenial/main libasan2 amd64 5.3.1-5ubuntu2 [269 kB] Get:107 http://ftpmaster.internal/ubuntu/ xenial/main libstdc++-5-dev amd64 5.3.1-5ubuntu2 [1426 kB] Get:108 http://ftpmaster.internal/ubuntu/ xenial/main libgcc-5-dev amd64 5.3.1-5ubuntu2 [2233 kB] Get:109 http://ftpmaster.internal/ubuntu/ xenial/main gcc-5-base amd64 5.3.1-5ubuntu2 [16.5 kB] Get:110 http://ftpmaster.internal/ubuntu/ xenial/main libgssapi-krb5-2 amd64 1.13.2+dfsg-4 [120 kB] Get:111 http://ftpmaster.internal/ubuntu/ xenial/main libkrb5-3 amd64 1.13.2+dfsg-4 [274 kB] Get:112 http://ftpmaster.internal/ubuntu/ xenial/main libkrb5support0 amd64 1.13.2+dfsg-4 [30.4 kB] Get:113 http://ftpmaster.internal/ubuntu/ xenial/main libk5crypto3 amd64 1.13.2+dfsg-4 [81.3 kB] Get:114 http://ftpmaster.internal/ubuntu/ xenial/main libkeyutils1 amd64 1.5.9-8ubuntu1 [9904 B] Get:115 http://ftpmaster.internal/ubuntu/ xenial/main libidn11 amd64 1.32-3ubuntu1 [45.5 kB] Get:116 http://ftpmaster.internal/ubuntu/ xenial/main libcurl3-gnutls amd64 7.45.0-1ubuntu1 [183 kB] Get:117 http://ftpmaster.internal/ubuntu/ xenial/main apt-transport-https amd64 1.1.10 [25.3 kB] Get:118 http://ftpmaster.internal/ubuntu/ xenial/main openssl amd64 1.0.2e-1ubuntu1 [491 kB] Get:119 http://ftpmaster.internal/ubuntu/ xenial/main advancecomp amd64 1.20-1 [160 kB] Get:120 http://ftpmaster.internal/ubuntu/ xenial/main dpkg-dev all 1.18.3ubuntu1 [583 kB] Get:121 http://ftpmaster.internal/ubuntu/ xenial/main libdpkg-perl all 1.18.3ubuntu1 [195 kB] Get:122 http://ftpmaster.internal/ubuntu/ xenial/main pkg-create-dbgsym all 0.70 [9046 B] Get:123 http://ftpmaster.internal/ubuntu/ xenial/main pkgbinarymangler all 128 [42.2 kB] debconf: delaying package configuration, since apt-utils is not installed Fetched 235 MB in 17s (13.1 MB/s) (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 11690 files and directories currently installed.) Preparing to unpack .../base-files_9.4ubuntu3_amd64.deb ... Unpacking base-files (9.4ubuntu3) over (7.2ubuntu11) ... Setting up base-files (9.4ubuntu3) ... Installing new version of config file /etc/debian_version ... Installing new version of config file /etc/issue ... Installing new version of config file /etc/issue.net ... Installing new version of config file /etc/lsb-release ... Updating /etc/profile to current default. Updating /etc/nsswitch.conf to current default. Updating /root/.profile to current default. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 11692 files and directories currently installed.) Preparing to unpack .../bsdutils_1%3a2.27.1-1ubuntu3_amd64.deb ... Unpacking bsdutils (1:2.27.1-1ubuntu3) over (1:2.26.2-6ubuntu3) ... Setting up bsdutils (1:2.27.1-1ubuntu3) ... (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 11692 files and directories currently installed.) Preparing to unpack .../diffutils_1%3a3.3-3_amd64.deb ... Unpacking diffutils (1:3.3-3) over (1:3.3-1) ... Setting up diffutils (1:3.3-3) ... (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 11692 files and directories currently installed.) Preparing to unpack .../dpkg_1.18.3ubuntu1_amd64.deb ... Unpacking dpkg (1.18.3ubuntu1) over (1.18.2ubuntu5) ... Setting up dpkg (1.18.3ubuntu1) ... (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 11692 files and directories currently installed.) Preparing to unpack .../libc6-dev_2.21-0ubuntu5_amd64.deb ... Unpacking libc6-dev:amd64 (2.21-0ubuntu5) over (2.21-0ubuntu4) ... Preparing to unpack .../libc-dev-bin_2.21-0ubuntu5_amd64.deb ... Unpacking libc-dev-bin (2.21-0ubuntu5) over (2.21-0ubuntu4) ... Preparing to unpack .../linux-libc-dev_4.3.0-5.16_amd64.deb ... Unpacking linux-libc-dev:amd64 (4.3.0-5.16) over (4.2.0-16.19) ... Preparing to unpack .../libcap2_1%3a2.24-12_amd64.deb ... Unpacking libcap2:amd64 (1:2.24-12) over (1:2.24-9) ... Setting up libcap2:amd64 (1:2.24-12) ... Processing triggers for libc-bin (2.21-0ubuntu4) ... (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 11697 files and directories currently installed.) Preparing to unpack .../libc-bin_2.21-0ubuntu5_amd64.deb ... Unpacking libc-bin (2.21-0ubuntu5) over (2.21-0ubuntu4) ... Setting up libc-bin (2.21-0ubuntu5) ... Selecting previously unselected package gcc-6-base:amd64. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 11697 files and directories currently installed.) Preparing to unpack .../gcc-6-base_6-20160109-1ubuntu1_amd64.deb ... Unpacking gcc-6-base:amd64 (6-20160109-1ubuntu1) ... Setting up gcc-6-base:amd64 (6-20160109-1ubuntu1) ... (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 11704 files and directories currently installed.) Preparing to unpack .../libgcc1_1%3a6-20160109-1ubuntu1_amd64.deb ... Unpacking libgcc1:amd64 (1:6-20160109-1ubuntu1) over (1:5.2.1-22ubuntu2) ... Processing triggers for libc-bin (2.21-0ubuntu5) ... Setting up libgcc1:amd64 (1:6-20160109-1ubuntu1) ... Processing triggers for libc-bin (2.21-0ubuntu5) ... (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 11704 files and directories currently installed.) Preparing to unpack .../libc6_2.21-0ubuntu5_amd64.deb ... Unpacking libc6:amd64 (2.21-0ubuntu5) over (2.21-0ubuntu4) ... Setting up libc6:amd64 (2.21-0ubuntu5) ... Processing triggers for libc-bin (2.21-0ubuntu5) ... (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 11704 files and directories currently installed.) Preparing to unpack .../e2fslibs_1.42.13-1ubuntu1_amd64.deb ... Unpacking e2fslibs:amd64 (1.42.13-1ubuntu1) over (1.42.12-1ubuntu2) ... Processing triggers for libc-bin (2.21-0ubuntu5) ... Setting up e2fslibs:amd64 (1.42.13-1ubuntu1) ... Processing triggers for libc-bin (2.21-0ubuntu5) ... (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 11704 files and directories currently installed.) Preparing to unpack .../e2fsprogs_1.42.13-1ubuntu1_amd64.deb ... Unpacking e2fsprogs (1.42.13-1ubuntu1) over (1.42.12-1ubuntu2) ... Setting up e2fsprogs (1.42.13-1ubuntu1) ... Installing new version of config file /etc/mke2fs.conf ... (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 11705 files and directories currently installed.) Preparing to unpack .../findutils_4.4.2-10_amd64.deb ... Unpacking findutils (4.4.2-10) over (4.4.2-9build1) ... Setting up findutils (4.4.2-10) ... (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 11705 files and directories currently installed.) Preparing to unpack .../hostname_3.16ubuntu2_amd64.deb ... Unpacking hostname (3.16ubuntu2) over (3.15ubuntu2) ... Setting up hostname (3.16ubuntu2) ... (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 11705 files and directories currently installed.) Preparing to unpack .../init_1.24ubuntu2_amd64.deb ... Unpacking init (1.24ubuntu2) over (1.23ubuntu3) ... Setting up init (1.24ubuntu2) ... (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 11705 files and directories currently installed.) Preparing to unpack .../libsmartcols1_2.27.1-1ubuntu3_amd64.deb ... Unpacking libsmartcols1:amd64 (2.27.1-1ubuntu3) over (2.26.2-6ubuntu3) ... Processing triggers for libc-bin (2.21-0ubuntu5) ... Setting up libsmartcols1:amd64 (2.27.1-1ubuntu3) ... Processing triggers for libc-bin (2.21-0ubuntu5) ... (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 11705 files and directories currently installed.) Preparing to unpack .../libuuid1_2.27.1-1ubuntu3_amd64.deb ... Unpacking libuuid1:amd64 (2.27.1-1ubuntu3) over (2.26.2-6ubuntu3) ... Processing triggers for libc-bin (2.21-0ubuntu5) ... Setting up libuuid1:amd64 (2.27.1-1ubuntu3) ... Processing triggers for libc-bin (2.21-0ubuntu5) ... (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 11705 files and directories currently installed.) Preparing to unpack .../libblkid1_2.27.1-1ubuntu3_amd64.deb ... Unpacking libblkid1:amd64 (2.27.1-1ubuntu3) over (2.26.2-6ubuntu3) ... Processing triggers for libc-bin (2.21-0ubuntu5) ... Setting up libblkid1:amd64 (2.27.1-1ubuntu3) ... Processing triggers for libc-bin (2.21-0ubuntu5) ... (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 11705 files and directories currently installed.) Preparing to unpack .../libfdisk1_2.27.1-1ubuntu3_amd64.deb ... Unpacking libfdisk1:amd64 (2.27.1-1ubuntu3) over (2.26.2-6ubuntu3) ... Processing triggers for libc-bin (2.21-0ubuntu5) ... Setting up libfdisk1:amd64 (2.27.1-1ubuntu3) ... Processing triggers for libc-bin (2.21-0ubuntu5) ... (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 11705 files and directories currently installed.) Preparing to unpack .../debconf_1.5.58ubuntu1_all.deb ... Unpacking debconf (1.5.58ubuntu1) over (1.5.57ubuntu1) ... Setting up debconf (1.5.58ubuntu1) ... Removing obsolete conffile /etc/bash_completion.d/debconf ... (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 11706 files and directories currently installed.) Preparing to unpack .../sysvinit-utils_2.88dsf-59.2ubuntu3_amd64.deb ... Unpacking sysvinit-utils (2.88dsf-59.2ubuntu3) over (2.88dsf-59.2ubuntu2) ... Setting up sysvinit-utils (2.88dsf-59.2ubuntu3) ... (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 11706 files and directories currently installed.) Preparing to unpack .../sysv-rc_2.88dsf-59.2ubuntu3_all.deb ... Unpacking sysv-rc (2.88dsf-59.2ubuntu3) over (2.88dsf-59.2ubuntu2) ... Setting up sysv-rc (2.88dsf-59.2ubuntu3) ... Processing triggers for systemd (225-1ubuntu9) ... (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 11706 files and directories currently installed.) Preparing to unpack .../initscripts_2.88dsf-59.2ubuntu3_amd64.deb ... Unpacking initscripts (2.88dsf-59.2ubuntu3) over (2.88dsf-59.2ubuntu2) ... Processing triggers for systemd (225-1ubuntu9) ... Setting up initscripts (2.88dsf-59.2ubuntu3) ... (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 11706 files and directories currently installed.) Preparing to unpack .../util-linux_2.27.1-1ubuntu3_amd64.deb ... Unpacking util-linux (2.27.1-1ubuntu3) over (2.26.2-6ubuntu3) ... Setting up util-linux (2.27.1-1ubuntu3) ... Processing triggers for systemd (225-1ubuntu9) ... (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 11714 files and directories currently installed.) Preparing to unpack .../libudev1_228-3ubuntu1_amd64.deb ... Unpacking libudev1:amd64 (228-3ubuntu1) over (225-1ubuntu9) ... Processing triggers for libc-bin (2.21-0ubuntu5) ... Setting up libudev1:amd64 (228-3ubuntu1) ... Processing triggers for libc-bin (2.21-0ubuntu5) ... (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 11714 files and directories currently installed.) Preparing to unpack .../udev_228-3ubuntu1_amd64.deb ... Unpacking udev (228-3ubuntu1) over (225-1ubuntu9) ... Preparing to unpack .../libsystemd0_228-3ubuntu1_amd64.deb ... Unpacking libsystemd0:amd64 (228-3ubuntu1) over (225-1ubuntu9) ... Processing triggers for libc-bin (2.21-0ubuntu5) ... Setting up libsystemd0:amd64 (228-3ubuntu1) ... Processing triggers for libc-bin (2.21-0ubuntu5) ... (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 11711 files and directories currently installed.) Preparing to unpack .../systemd_228-3ubuntu1_amd64.deb ... Unpacking systemd (228-3ubuntu1) over (225-1ubuntu9) ... Setting up systemd (228-3ubuntu1) ... Installing new version of config file /etc/pam.d/systemd-user ... Installing new version of config file /etc/systemd/journald.conf ... Installing new version of config file /etc/systemd/logind.conf ... Installing new version of config file /etc/systemd/system.conf ... addgroup: The group `systemd-journal' already exists as a system group. Exiting. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 11709 files and directories currently installed.) Preparing to unpack .../libselinux1_2.4-3_amd64.deb ... Unpacking libselinux1:amd64 (2.4-3) over (2.3-2build1) ... Processing triggers for libc-bin (2.21-0ubuntu5) ... Setting up libselinux1:amd64 (2.4-3) ... Processing triggers for libc-bin (2.21-0ubuntu5) ... (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 11709 files and directories currently installed.) Preparing to unpack .../libtinfo5_6.0+20151024-2ubuntu1_amd64.deb ... Unpacking libtinfo5:amd64 (6.0+20151024-2ubuntu1) over (5.9+20150516-2ubuntu1) ... Processing triggers for libc-bin (2.21-0ubuntu5) ... Setting up libtinfo5:amd64 (6.0+20151024-2ubuntu1) ... Processing triggers for libc-bin (2.21-0ubuntu5) ... (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 11709 files and directories currently installed.) Preparing to unpack .../libncurses5_6.0+20151024-2ubuntu1_amd64.deb ... Unpacking libncurses5:amd64 (6.0+20151024-2ubuntu1) over (5.9+20150516-2ubuntu1) ... Processing triggers for libc-bin (2.21-0ubuntu5) ... Setting up libncurses5:amd64 (6.0+20151024-2ubuntu1) ... Processing triggers for libc-bin (2.21-0ubuntu5) ... (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 11709 files and directories currently installed.) Preparing to unpack .../libncursesw5_6.0+20151024-2ubuntu1_amd64.deb ... Unpacking libncursesw5:amd64 (6.0+20151024-2ubuntu1) over (5.9+20150516-2ubuntu1) ... Processing triggers for libc-bin (2.21-0ubuntu5) ... Setting up libncursesw5:amd64 (6.0+20151024-2ubuntu1) ... Processing triggers for libc-bin (2.21-0ubuntu5) ... Selecting previously unselected package libprocps4:amd64. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 11709 files and directories currently installed.) Preparing to unpack .../libprocps4_2%3a3.3.10-4ubuntu1_amd64.deb ... Unpacking libprocps4:amd64 (2:3.3.10-4ubuntu1) ... Preparing to unpack .../procps_2%3a3.3.10-4ubuntu1_amd64.deb ... Running in chroot, ignoring request. invoke-rc.d: policy-rc.d denied execution of stop. Unpacking procps (2:3.3.10-4ubuntu1) over (1:3.3.9-1ubuntu8) ... Preparing to unpack .../libapparmor1_2.10-0ubuntu10_amd64.deb ... Unpacking libapparmor1:amd64 (2.10-0ubuntu10) over (2.10-0ubuntu6) ... Processing triggers for libc-bin (2.21-0ubuntu5) ... Setting up libapparmor1:amd64 (2.10-0ubuntu10) ... Processing triggers for systemd (228-3ubuntu1) ... Processing triggers for libc-bin (2.21-0ubuntu5) ... (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 11718 files and directories currently installed.) Preparing to unpack .../libaudit-common_1%3a2.4.4-4ubuntu1_all.deb ... Unpacking libaudit-common (1:2.4.4-4ubuntu1) over (1:2.4.2-1ubuntu1) ... Setting up libaudit-common (1:2.4.4-4ubuntu1) ... (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 11718 files and directories currently installed.) Preparing to unpack .../libaudit1_1%3a2.4.4-4ubuntu1_amd64.deb ... Unpacking libaudit1:amd64 (1:2.4.4-4ubuntu1) over (1:2.4.2-1ubuntu1) ... Processing triggers for libc-bin (2.21-0ubuntu5) ... Setting up libaudit1:amd64 (1:2.4.4-4ubuntu1) ... Processing triggers for libc-bin (2.21-0ubuntu5) ... (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 11718 files and directories currently installed.) Preparing to unpack .../libmount1_2.27.1-1ubuntu3_amd64.deb ... Unpacking libmount1:amd64 (2.27.1-1ubuntu3) over (2.26.2-6ubuntu3) ... Processing triggers for libc-bin (2.21-0ubuntu5) ... Setting up libmount1:amd64 (2.27.1-1ubuntu3) ... Processing triggers for libc-bin (2.21-0ubuntu5) ... (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 11718 files and directories currently installed.) Preparing to unpack .../libseccomp2_2.2.3-2ubuntu3_amd64.deb ... Unpacking libseccomp2:amd64 (2.2.3-2ubuntu3) over (2.2.3-2ubuntu1) ... Processing triggers for libc-bin (2.21-0ubuntu5) ... Setting up libseccomp2:amd64 (2.2.3-2ubuntu3) ... Processing triggers for libc-bin (2.21-0ubuntu5) ... (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 11718 files and directories currently installed.) Preparing to unpack .../libcap2-bin_1%3a2.24-12_amd64.deb ... Unpacking libcap2-bin (1:2.24-12) over (1:2.24-9) ... Setting up libcap2-bin (1:2.24-12) ... (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 11718 files and directories currently installed.) Preparing to unpack .../lsb-base_9.20150917ubuntu1_all.deb ... Unpacking lsb-base (9.20150917ubuntu1) over (4.1+Debian11ubuntu8) ... Setting up lsb-base (9.20150917ubuntu1) ... (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 11718 files and directories currently installed.) Preparing to unpack .../mount_2.27.1-1ubuntu3_amd64.deb ... Unpacking mount (2.27.1-1ubuntu3) over (2.26.2-6ubuntu3) ... Setting up mount (2.27.1-1ubuntu3) ... (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 11718 files and directories currently installed.) Preparing to unpack .../ncurses-bin_6.0+20151024-2ubuntu1_amd64.deb ... Unpacking ncurses-bin (6.0+20151024-2ubuntu1) over (5.9+20150516-2ubuntu1) ... Setting up ncurses-bin (6.0+20151024-2ubuntu1) ... dpkg: perl-modules: dependency problems, but removing anyway as you requested: perl depends on perl-modules (>= 5.20.2-6). (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 11714 files and directories currently installed.) Removing perl-modules (5.20.2-6) ... Purging configuration files for perl-modules (5.20.2-6) ... (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 10986 files and directories currently installed.) Preparing to unpack .../perl_5.22.1-3_amd64.deb ... Unpacking perl (5.22.1-3) over (5.20.2-6) ... Selecting previously unselected package perl-modules-5.22. Preparing to unpack .../perl-modules-5.22_5.22.1-3_all.deb ... Unpacking perl-modules-5.22 (5.22.1-3) ... Selecting previously unselected package libperl5.22:amd64. Preparing to unpack .../libperl5.22_5.22.1-3_amd64.deb ... Unpacking libperl5.22:amd64 (5.22.1-3) ... Preparing to unpack .../perl-base_5.22.1-3_amd64.deb ... Unpacking perl-base (5.22.1-3) over (5.20.2-6) ... Setting up perl-base (5.22.1-3) ... (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 12290 files and directories currently installed.) Preparing to unpack .../tar_1.28-2.1_amd64.deb ... Unpacking tar (1.28-2.1) over (1.27.1-2) ... Setting up tar (1.28-2.1) ... (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 12290 files and directories currently installed.) Preparing to unpack .../libstdc++6_6-20160109-1ubuntu1_amd64.deb ... Unpacking libstdc++6:amd64 (6-20160109-1ubuntu1) over (5.2.1-22ubuntu2) ... Processing triggers for libc-bin (2.21-0ubuntu5) ... Setting up libstdc++6:amd64 (6-20160109-1ubuntu1) ... Processing triggers for libc-bin (2.21-0ubuntu5) ... (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 12290 files and directories currently installed.) Preparing to unpack .../archives/apt_1.1.10_amd64.deb ... Unpacking apt (1.1.10) over (1.0.10.2ubuntu1) ... Selecting previously unselected package libapt-pkg5.0:amd64. Preparing to unpack .../libapt-pkg5.0_1.1.10_amd64.deb ... Unpacking libapt-pkg5.0:amd64 (1.1.10) ... Processing triggers for libc-bin (2.21-0ubuntu5) ... Setting up libapt-pkg5.0:amd64 (1.1.10) ... Processing triggers for libc-bin (2.21-0ubuntu5) ... (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 12318 files and directories currently installed.) Preparing to unpack .../gpgv_1.4.19-6ubuntu1_amd64.deb ... Unpacking gpgv (1.4.19-6ubuntu1) over (1.4.18-7ubuntu1) ... Setting up gpgv (1.4.19-6ubuntu1) ... (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 12318 files and directories currently installed.) Preparing to unpack .../libusb-0.1-4_2%3a0.1.12-28_amd64.deb ... Unpacking libusb-0.1-4:amd64 (2:0.1.12-28) over (2:0.1.12-27) ... Processing triggers for libc-bin (2.21-0ubuntu5) ... Setting up libusb-0.1-4:amd64 (2:0.1.12-28) ... Processing triggers for libc-bin (2.21-0ubuntu5) ... (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 12317 files and directories currently installed.) Preparing to unpack .../gnupg_1.4.19-6ubuntu1_amd64.deb ... Unpacking gnupg (1.4.19-6ubuntu1) over (1.4.18-7ubuntu1) ... Setting up gnupg (1.4.19-6ubuntu1) ... (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 12316 files and directories currently installed.) Preparing to unpack .../libdebconfclient0_0.198ubuntu1_amd64.deb ... Unpacking libdebconfclient0:amd64 (0.198ubuntu1) over (0.192ubuntu1) ... Processing triggers for libc-bin (2.21-0ubuntu5) ... Setting up libdebconfclient0:amd64 (0.198ubuntu1) ... Processing triggers for libc-bin (2.21-0ubuntu5) ... (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 12316 files and directories currently installed.) Preparing to unpack .../base-passwd_3.5.39_amd64.deb ... Unpacking base-passwd (3.5.39) over (3.5.38) ... Setting up base-passwd (3.5.39) ... (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 12316 files and directories currently installed.) Preparing to unpack .../ncurses-base_6.0+20151024-2ubuntu1_all.deb ... Unpacking ncurses-base (6.0+20151024-2ubuntu1) over (5.9+20150516-2ubuntu1) ... Setting up ncurses-base (6.0+20151024-2ubuntu1) ... (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 12317 files and directories currently installed.) Preparing to unpack .../systemd-sysv_228-3ubuntu1_amd64.deb ... Unpacking systemd-sysv (228-3ubuntu1) over (225-1ubuntu9) ... Setting up systemd-sysv (228-3ubuntu1) ... (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 12317 files and directories currently installed.) Preparing to unpack .../libdbus-1-3_1.10.6-1ubuntu1_amd64.deb ... Unpacking libdbus-1-3:amd64 (1.10.6-1ubuntu1) over (1.10.0-1ubuntu1) ... Preparing to unpack .../libnih-dbus1_1.0.3-4.3ubuntu1_amd64.deb ... Unpacking libnih-dbus1:amd64 (1.0.3-4.3ubuntu1) over (1.0.3-4ubuntu27) ... Preparing to unpack .../libnih1_1.0.3-4.3ubuntu1_amd64.deb ... Unpacking libnih1:amd64 (1.0.3-4.3ubuntu1) over (1.0.3-4ubuntu27) ... Preparing to unpack .../libgmp10_2%3a6.1.0+dfsg-2_amd64.deb ... Unpacking libgmp10:amd64 (2:6.1.0+dfsg-2) over (2:6.0.0+dfsg-7) ... Preparing to unpack .../libffi6_3.2.1-4_amd64.deb ... Unpacking libffi6:amd64 (3.2.1-4) over (3.2.1-3) ... Preparing to unpack .../libp11-kit0_0.23.2-3_amd64.deb ... Unpacking libp11-kit0:amd64 (0.23.2-3) over (0.23.1-3) ... Preparing to unpack .../libtasn1-6_4.7-3_amd64.deb ... Unpacking libtasn1-6:amd64 (4.7-3) over (4.5-2) ... Preparing to unpack .../libgnutls-deb0-28_3.3.18-1ubuntu1_amd64.deb ... Unpacking libgnutls-deb0-28:amd64 (3.3.18-1ubuntu1) over (3.3.15-5ubuntu2) ... Preparing to unpack .../libldap-2.4-2_2.4.41+dfsg-1ubuntu3_amd64.deb ... Unpacking libldap-2.4-2:amd64 (2.4.41+dfsg-1ubuntu3) over (2.4.41+dfsg-1ubuntu2) ... Selecting previously unselected package libisl15:amd64. Preparing to unpack .../libisl15_0.15-3_amd64.deb ... Unpacking libisl15:amd64 (0.15-3) ... Preparing to unpack .../libcomerr2_1.42.13-1ubuntu1_amd64.deb ... Unpacking libcomerr2:amd64 (1.42.13-1ubuntu1) over (1.42.12-1ubuntu2) ... Processing triggers for libc-bin (2.21-0ubuntu5) ... Setting up libcomerr2:amd64 (1.42.13-1ubuntu1) ... Processing triggers for libc-bin (2.21-0ubuntu5) ... (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 12322 files and directories currently installed.) Preparing to unpack .../libdevmapper1.02.1_2%3a1.02.110-1ubuntu2_amd64.deb ... Unpacking libdevmapper1.02.1:amd64 (2:1.02.110-1ubuntu2) over (2:1.02.99-1ubuntu1) ... Processing triggers for libc-bin (2.21-0ubuntu5) ... Setting up libdevmapper1.02.1:amd64 (2:1.02.110-1ubuntu2) ... Processing triggers for libc-bin (2.21-0ubuntu5) ... (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 12322 files and directories currently installed.) Preparing to unpack .../libgpg-error0_1.21-1_amd64.deb ... Unpacking libgpg-error0:amd64 (1.21-1) over (1.19-2) ... Processing triggers for libc-bin (2.21-0ubuntu5) ... Setting up libgpg-error0:amd64 (1.21-1) ... Processing triggers for libc-bin (2.21-0ubuntu5) ... (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 12322 files and directories currently installed.) Preparing to unpack .../libgcrypt20_1.6.4-4_amd64.deb ... Unpacking libgcrypt20:amd64 (1.6.4-4) over (1.6.3-2ubuntu1) ... Processing triggers for libc-bin (2.21-0ubuntu5) ... Setting up libgcrypt20:amd64 (1.6.4-4) ... Processing triggers for libc-bin (2.21-0ubuntu5) ... (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 12322 files and directories currently installed.) Preparing to unpack .../libsepol1_2.4-2_amd64.deb ... Unpacking libsepol1:amd64 (2.4-2) over (2.3-2) ... Processing triggers for libc-bin (2.21-0ubuntu5) ... Setting up libsepol1:amd64 (2.4-2) ... Processing triggers for libc-bin (2.21-0ubuntu5) ... (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 12322 files and directories currently installed.) Preparing to unpack .../libss2_1.42.13-1ubuntu1_amd64.deb ... Unpacking libss2:amd64 (1.42.13-1ubuntu1) over (1.42.12-1ubuntu2) ... Processing triggers for libc-bin (2.21-0ubuntu5) ... Setting up libss2:amd64 (1.42.13-1ubuntu1) ... Processing triggers for libc-bin (2.21-0ubuntu5) ... (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 12322 files and directories currently installed.) Preparing to unpack .../multiarch-support_2.21-0ubuntu5_amd64.deb ... Unpacking multiarch-support (2.21-0ubuntu5) over (2.21-0ubuntu4) ... Setting up multiarch-support (2.21-0ubuntu5) ... (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 12322 files and directories currently installed.) Preparing to unpack .../libpng12-0_1.2.54-1ubuntu1_amd64.deb ... Unpacking libpng12-0:amd64 (1.2.54-1ubuntu1) over (1.2.51-0ubuntu3) ... Preparing to unpack .../libsqlite3-0_3.10.0-1_amd64.deb ... Unpacking libsqlite3-0:amd64 (3.10.0-1) over (3.8.11.1-1) ... Preparing to unpack .../libssl1.0.0_1.0.2e-1ubuntu1_amd64.deb ... Unpacking libssl1.0.0:amd64 (1.0.2e-1ubuntu1) over (1.0.2d-0ubuntu1) ... Preparing to unpack .../dmsetup_2%3a1.02.110-1ubuntu2_amd64.deb ... Unpacking dmsetup (2:1.02.110-1ubuntu2) over (2:1.02.99-1ubuntu1) ... Preparing to unpack .../libmpfr4_3.1.3-2_amd64.deb ... Unpacking libmpfr4:amd64 (3.1.3-2) over (3.1.3-1) ... Preparing to unpack .../g++-5_5.3.1-5ubuntu2_amd64.deb ... Unpacking g++-5 (5.3.1-5ubuntu2) over (5.2.1-22ubuntu2) ... Preparing to unpack .../gcc-5_5.3.1-5ubuntu2_amd64.deb ... Unpacking gcc-5 (5.3.1-5ubuntu2) over (5.2.1-22ubuntu2) ... Preparing to unpack .../cpp-5_5.3.1-5ubuntu2_amd64.deb ... Unpacking cpp-5 (5.3.1-5ubuntu2) over (5.2.1-22ubuntu2) ... Preparing to unpack .../libcc1-0_6-20160109-1ubuntu1_amd64.deb ... Unpacking libcc1-0:amd64 (6-20160109-1ubuntu1) over (5.2.1-22ubuntu2) ... Preparing to unpack .../binutils_2.25.90.20160101-1ubuntu2_amd64.deb ... Unpacking binutils (2.25.90.20160101-1ubuntu2) over (2.25.1-6ubuntu1) ... Preparing to unpack .../libgomp1_6-20160109-1ubuntu1_amd64.deb ... Unpacking libgomp1:amd64 (6-20160109-1ubuntu1) over (5.2.1-22ubuntu2) ... Preparing to unpack .../libitm1_6-20160109-1ubuntu1_amd64.deb ... Unpacking libitm1:amd64 (6-20160109-1ubuntu1) over (5.2.1-22ubuntu2) ... Preparing to unpack .../libatomic1_6-20160109-1ubuntu1_amd64.deb ... Unpacking libatomic1:amd64 (6-20160109-1ubuntu1) over (5.2.1-22ubuntu2) ... Preparing to unpack .../libasan2_5.3.1-5ubuntu2_amd64.deb ... Unpacking libasan2:amd64 (5.3.1-5ubuntu2) over (5.2.1-22ubuntu2) ... Preparing to unpack .../liblsan0_6-20160109-1ubuntu1_amd64.deb ... Unpacking liblsan0:amd64 (6-20160109-1ubuntu1) over (5.2.1-22ubuntu2) ... Preparing to unpack .../libtsan0_6-20160109-1ubuntu1_amd64.deb ... Unpacking libtsan0:amd64 (6-20160109-1ubuntu1) over (5.2.1-22ubuntu2) ... Preparing to unpack .../libubsan0_6-20160109-1ubuntu1_amd64.deb ... Unpacking libubsan0:amd64 (6-20160109-1ubuntu1) over (5.2.1-22ubuntu2) ... Preparing to unpack .../libcilkrts5_6-20160109-1ubuntu1_amd64.deb ... Unpacking libcilkrts5:amd64 (6-20160109-1ubuntu1) over (5.2.1-22ubuntu2) ... Preparing to unpack .../libmpx0_6-20160109-1ubuntu1_amd64.deb ... Unpacking libmpx0:amd64 (6-20160109-1ubuntu1) over (5.2.1-22ubuntu2) ... Preparing to unpack .../libquadmath0_6-20160109-1ubuntu1_amd64.deb ... Unpacking libquadmath0:amd64 (6-20160109-1ubuntu1) over (5.2.1-22ubuntu2) ... Preparing to unpack .../libstdc++-5-dev_5.3.1-5ubuntu2_amd64.deb ... Unpacking libstdc++-5-dev:amd64 (5.3.1-5ubuntu2) over (5.2.1-22ubuntu2) ... Preparing to unpack .../libgcc-5-dev_5.3.1-5ubuntu2_amd64.deb ... Unpacking libgcc-5-dev:amd64 (5.3.1-5ubuntu2) over (5.2.1-22ubuntu2) ... Preparing to unpack .../gcc-5-base_5.3.1-5ubuntu2_amd64.deb ... Unpacking gcc-5-base:amd64 (5.3.1-5ubuntu2) over (5.2.1-22ubuntu2) ... Preparing to unpack .../libgssapi-krb5-2_1.13.2+dfsg-4_amd64.deb ... Unpacking libgssapi-krb5-2:amd64 (1.13.2+dfsg-4) over (1.13.2+dfsg-2) ... Preparing to unpack .../libkrb5-3_1.13.2+dfsg-4_amd64.deb ... Unpacking libkrb5-3:amd64 (1.13.2+dfsg-4) over (1.13.2+dfsg-2) ... Preparing to unpack .../libkrb5support0_1.13.2+dfsg-4_amd64.deb ... Unpacking libkrb5support0:amd64 (1.13.2+dfsg-4) over (1.13.2+dfsg-2) ... Preparing to unpack .../libk5crypto3_1.13.2+dfsg-4_amd64.deb ... Unpacking libk5crypto3:amd64 (1.13.2+dfsg-4) over (1.13.2+dfsg-2) ... Preparing to unpack .../libkeyutils1_1.5.9-8ubuntu1_amd64.deb ... Unpacking libkeyutils1:amd64 (1.5.9-8ubuntu1) over (1.5.9-5ubuntu1) ... Preparing to unpack .../libidn11_1.32-3ubuntu1_amd64.deb ... Unpacking libidn11:amd64 (1.32-3ubuntu1) over (1.28-1ubuntu2) ... Preparing to unpack .../libcurl3-gnutls_7.45.0-1ubuntu1_amd64.deb ... Unpacking libcurl3-gnutls:amd64 (7.45.0-1ubuntu1) over (7.43.0-1ubuntu2) ... Preparing to unpack .../apt-transport-https_1.1.10_amd64.deb ... Unpacking apt-transport-https (1.1.10) over (1.0.10.2ubuntu1) ... Preparing to unpack .../openssl_1.0.2e-1ubuntu1_amd64.deb ... Unpacking openssl (1.0.2e-1ubuntu1) over (1.0.2d-0ubuntu1) ... Preparing to unpack .../advancecomp_1.20-1_amd64.deb ... Unpacking advancecomp (1.20-1) over (1.19-1) ... Selecting previously unselected package cpp-6. Preparing to unpack .../cpp-6_6-20160109-1ubuntu1_amd64.deb ... Unpacking cpp-6 (6-20160109-1ubuntu1) ... Preparing to unpack .../cpp_4%3a6-20160101-1ubuntu4_amd64.deb ... Unpacking cpp (4:6-20160101-1ubuntu4) over (4:5.2.1-3ubuntu1) ... Preparing to unpack .../dpkg-dev_1.18.3ubuntu1_all.deb ... Unpacking dpkg-dev (1.18.3ubuntu1) over (1.18.2ubuntu5) ... Preparing to unpack .../libdpkg-perl_1.18.3ubuntu1_all.deb ... Unpacking libdpkg-perl (1.18.3ubuntu1) over (1.18.2ubuntu5) ... Selecting previously unselected package libasan3:amd64. Preparing to unpack .../libasan3_6-20160109-1ubuntu1_amd64.deb ... Unpacking libasan3:amd64 (6-20160109-1ubuntu1) ... Selecting previously unselected package libgcc-6-dev:amd64. Preparing to unpack .../libgcc-6-dev_6-20160109-1ubuntu1_amd64.deb ... Unpacking libgcc-6-dev:amd64 (6-20160109-1ubuntu1) ... Selecting previously unselected package gcc-6. Preparing to unpack .../gcc-6_6-20160109-1ubuntu1_amd64.deb ... Unpacking gcc-6 (6-20160109-1ubuntu1) ... Preparing to unpack .../gcc_4%3a6-20160101-1ubuntu4_amd64.deb ... Removing old gcc doc directory. Unpacking gcc (4:6-20160101-1ubuntu4) over (4:5.2.1-3ubuntu1) ... Selecting previously unselected package libstdc++-6-dev:amd64. Preparing to unpack .../libstdc++-6-dev_6-20160109-1ubuntu1_amd64.deb ... Unpacking libstdc++-6-dev:amd64 (6-20160109-1ubuntu1) ... Selecting previously unselected package g++-6. Preparing to unpack .../g++-6_6-20160109-1ubuntu1_amd64.deb ... Unpacking g++-6 (6-20160109-1ubuntu1) ... Preparing to unpack .../g++_4%3a6-20160101-1ubuntu4_amd64.deb ... Unpacking g++ (4:6-20160101-1ubuntu4) over (4:5.2.1-3ubuntu1) ... Preparing to unpack .../pkg-create-dbgsym_0.70_all.deb ... Unpacking pkg-create-dbgsym (0.70) over (0.69) ... Preparing to unpack .../pkgbinarymangler_128_all.deb ... Unpacking pkgbinarymangler (128) over (122) ... Processing triggers for libc-bin (2.21-0ubuntu5) ... Setting up libc-dev-bin (2.21-0ubuntu5) ... Setting up linux-libc-dev:amd64 (4.3.0-5.16) ... Setting up libc6-dev:amd64 (2.21-0ubuntu5) ... Setting up libprocps4:amd64 (2:3.3.10-4ubuntu1) ... Setting up procps (2:3.3.10-4ubuntu1) ... update-rc.d: warning: start and stop actions are no longer supported; falling back to defaults Running in chroot, ignoring request. invoke-rc.d: policy-rc.d denied execution of start. Setting up udev (228-3ubuntu1) ... Installing new version of config file /etc/init.d/udev ... addgroup: The group `input' already exists as a system group. Exiting. virtio network devices detected, disabling predictable interface names in /etc/systemd/network/50-virtio-kernel-names.link Running in chroot, ignoring request. invoke-rc.d: policy-rc.d denied execution of restart. Removing obsolete conffile /etc/init.d/lvm2 ... Setting up perl-modules-5.22 (5.22.1-3) ... Setting up libperl5.22:amd64 (5.22.1-3) ... Setting up perl (5.22.1-3) ... Setting up apt (1.1.10) ... Installing new version of config file /etc/apt/apt.conf.d/01-vendor-ubuntu ... Installing new version of config file /etc/apt/apt.conf.d/01autoremove ... Installing new version of config file /etc/cron.daily/apt ... Installing new version of config file /etc/kernel/postinst.d/apt-auto-removal ... usermod: no changes Setting up libdbus-1-3:amd64 (1.10.6-1ubuntu1) ... Setting up libnih1:amd64 (1.0.3-4.3ubuntu1) ... Setting up libnih-dbus1:amd64 (1.0.3-4.3ubuntu1) ... Setting up libgmp10:amd64 (2:6.1.0+dfsg-2) ... Setting up libffi6:amd64 (3.2.1-4) ... Setting up libp11-kit0:amd64 (0.23.2-3) ... Setting up libtasn1-6:amd64 (4.7-3) ... Setting up libgnutls-deb0-28:amd64 (3.3.18-1ubuntu1) ... Setting up libldap-2.4-2:amd64 (2.4.41+dfsg-1ubuntu3) ... Setting up libisl15:amd64 (0.15-3) ... Setting up libpng12-0:amd64 (1.2.54-1ubuntu1) ... Setting up libsqlite3-0:amd64 (3.10.0-1) ... Setting up libssl1.0.0:amd64 (1.0.2e-1ubuntu1) ... Setting up dmsetup (2:1.02.110-1ubuntu2) ... Setting up libmpfr4:amd64 (3.1.3-2) ... Setting up gcc-5-base:amd64 (5.3.1-5ubuntu2) ... Setting up cpp-5 (5.3.1-5ubuntu2) ... Setting up libcc1-0:amd64 (6-20160109-1ubuntu1) ... Setting up binutils (2.25.90.20160101-1ubuntu2) ... Setting up libgomp1:amd64 (6-20160109-1ubuntu1) ... Setting up libitm1:amd64 (6-20160109-1ubuntu1) ... Setting up libatomic1:amd64 (6-20160109-1ubuntu1) ... Setting up libasan2:amd64 (5.3.1-5ubuntu2) ... Setting up liblsan0:amd64 (6-20160109-1ubuntu1) ... Setting up libtsan0:amd64 (6-20160109-1ubuntu1) ... Setting up libubsan0:amd64 (6-20160109-1ubuntu1) ... Setting up libcilkrts5:amd64 (6-20160109-1ubuntu1) ... Setting up libmpx0:amd64 (6-20160109-1ubuntu1) ... Setting up libquadmath0:amd64 (6-20160109-1ubuntu1) ... Setting up libgcc-5-dev:amd64 (5.3.1-5ubuntu2) ... Setting up gcc-5 (5.3.1-5ubuntu2) ... Setting up libstdc++-5-dev:amd64 (5.3.1-5ubuntu2) ... Setting up g++-5 (5.3.1-5ubuntu2) ... Setting up libkrb5support0:amd64 (1.13.2+dfsg-4) ... Setting up libk5crypto3:amd64 (1.13.2+dfsg-4) ... Setting up libkeyutils1:amd64 (1.5.9-8ubuntu1) ... Setting up libkrb5-3:amd64 (1.13.2+dfsg-4) ... Setting up libgssapi-krb5-2:amd64 (1.13.2+dfsg-4) ... Setting up libidn11:amd64 (1.32-3ubuntu1) ... Setting up libcurl3-gnutls:amd64 (7.45.0-1ubuntu1) ... Setting up apt-transport-https (1.1.10) ... Setting up openssl (1.0.2e-1ubuntu1) ... Setting up advancecomp (1.20-1) ... Setting up cpp-6 (6-20160109-1ubuntu1) ... Setting up cpp (4:6-20160101-1ubuntu4) ... Setting up libdpkg-perl (1.18.3ubuntu1) ... Setting up dpkg-dev (1.18.3ubuntu1) ... Setting up libasan3:amd64 (6-20160109-1ubuntu1) ... Setting up libgcc-6-dev:amd64 (6-20160109-1ubuntu1) ... Setting up gcc-6 (6-20160109-1ubuntu1) ... Setting up gcc (4:6-20160101-1ubuntu4) ... Setting up libstdc++-6-dev:amd64 (6-20160109-1ubuntu1) ... Setting up g++-6 (6-20160109-1ubuntu1) ... Setting up g++ (4:6-20160101-1ubuntu4) ... Setting up pkg-create-dbgsym (0.70) ... Setting up pkgbinarymangler (128) ... Processing triggers for libc-bin (2.21-0ubuntu5) ... Processing triggers for systemd (228-3ubuntu1) ... RUN: /usr/share/launchpad-buildd/slavebin/sbuild-package ['sbuild-package', 'PACKAGEBUILD-8648154', 'amd64', 'xenial', '-c', 'chroot:autobuild', '--arch=amd64', '--dist=xenial', '--purge=never', '--nolog', '-A', 'darkplaces_0~20140513+svn12208-2build1.dsc'] Initiating build PACKAGEBUILD-8648154 with 4 jobs across 4 processor cores. Kernel reported to sbuild: 3.13.0-74-generic #118-Ubuntu SMP Thu Dec 17 22:52:10 UTC 2015 x86_64 sbuild (Debian sbuild) 0.65.2 (24 Mar 2015) on lcy01-28.buildd ╔══════════════════════════════════════════════════════════════════════════════╗ ║ darkplaces 0~20140513+svn12208-2build1 (amd64) 12 Jan 2016 03:01 ║ ╚══════════════════════════════════════════════════════════════════════════════╝ Package: darkplaces Version: 0~20140513+svn12208-2build1 Source Version: 0~20140513+svn12208-2build1 Distribution: xenial Machine Architecture: amd64 Host Architecture: amd64 Build Architecture: amd64 I: NOTICE: Log filtering will replace 'build/darkplaces-y4Ce2W/darkplaces-0~20140513+svn12208' with '«PKGBUILDDIR»' I: NOTICE: Log filtering will replace 'build/darkplaces-y4Ce2W' with '«BUILDDIR»' I: NOTICE: Log filtering will replace 'home/buildd/build-PACKAGEBUILD-8648154/chroot-autobuild' with '«CHROOT»' ┌──────────────────────────────────────────────────────────────────────────────┐ │ Fetch source files │ └──────────────────────────────────────────────────────────────────────────────┘ Local sources ───────────── darkplaces_0~20140513+svn12208-2build1.dsc exists in .; copying to chroot Check architectures ─────────────────── Check dependencies ────────────────── Merged Build-Depends: build-essential, fakeroot Filtered Build-Depends: build-essential, fakeroot dpkg-deb: building package 'sbuild-build-depends-core-dummy' in '/«BUILDDIR»/resolver-xr6dQa/apt_archive/sbuild-build-depends-core-dummy.deb'. Get:1 file:/«BUILDDIR»/resolver-xr6dQa/apt_archive ./ InRelease Ign:1 file:/«BUILDDIR»/resolver-xr6dQa/apt_archive ./ InRelease Get:2 file:/«BUILDDIR»/resolver-xr6dQa/apt_archive ./ Release [2119 B] Get:2 file:/«BUILDDIR»/resolver-xr6dQa/apt_archive ./ Release [2119 B] Get:3 file:/«BUILDDIR»/resolver-xr6dQa/apt_archive ./ Release.gpg Ign:3 file:/«BUILDDIR»/resolver-xr6dQa/apt_archive ./ Release.gpg Get:4 file:/«BUILDDIR»/resolver-xr6dQa/apt_archive ./ Sources [208 B] Get:5 file:/«BUILDDIR»/resolver-xr6dQa/apt_archive ./ Packages [527 B] Ign:4 file:/«BUILDDIR»/resolver-xr6dQa/apt_archive ./ Sources Get:4 file:/«BUILDDIR»/resolver-xr6dQa/apt_archive ./ Sources [208 B] Ign:5 file:/«BUILDDIR»/resolver-xr6dQa/apt_archive ./ Packages Get:5 file:/«BUILDDIR»/resolver-xr6dQa/apt_archive ./ Packages [527 B] Reading package lists... W: The repository 'file:/«BUILDDIR»/resolver-xr6dQa/apt_archive ./ Release' is not signed. Reading package lists... ┌──────────────────────────────────────────────────────────────────────────────┐ │ Install core build dependencies (apt-based resolver) │ └──────────────────────────────────────────────────────────────────────────────┘ Installing build dependencies Reading package lists... Building dependency tree... Reading state information... The following packages were automatically installed and are no longer required: g++-5 libapt-pkg4.16 libisl13 libprocps3 libstdc++-5-dev udev Use 'sudo apt autoremove' to remove them. The following NEW packages will be installed: sbuild-build-depends-core-dummy 0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. Need to get 0 B/770 B of archives. After this operation, 0 B of additional disk space will be used. WARNING: The following packages cannot be authenticated! sbuild-build-depends-core-dummy Authentication warning overridden. Get:1 file:/«BUILDDIR»/resolver-xr6dQa/apt_archive ./ sbuild-build-depends-core-dummy 0.invalid.0 [770 B] debconf: delaying package configuration, since apt-utils is not installed Selecting previously unselected package sbuild-build-depends-core-dummy. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 13330 files and directories currently installed.) Preparing to unpack .../sbuild-build-depends-core-dummy.deb ... Unpacking sbuild-build-depends-core-dummy (0.invalid.0) ... Setting up sbuild-build-depends-core-dummy (0.invalid.0) ... Merged Build-Depends: base-files, base-passwd, bash, bsdutils, coreutils, dash, debianutils, diffutils, dpkg, e2fsprogs, findutils, grep, gzip, hostname, init, libc-bin, login, mount, ncurses-base, ncurses-bin, perl-base, sed, tar, util-linux, libc6-dev | libc-dev, gcc (>= 4:5.2), g++ (>= 4:5.2), make, dpkg-dev (>= 1.17.11), debhelper (>= 9), libcurl4-gnutls-dev, libfreetype6-dev, libjpeg-dev, libmodplug-dev, libode-dev, libogg-dev, libpng-dev, libsdl2-dev, libtheora-dev, libvorbis-dev, lsb-release, pkg-config, zlib1g-dev Filtered Build-Depends: base-files, base-passwd, bash, bsdutils, coreutils, dash, debianutils, diffutils, dpkg, e2fsprogs, findutils, grep, gzip, hostname, init, libc-bin, login, mount, ncurses-base, ncurses-bin, perl-base, sed, tar, util-linux, libc6-dev | libc-dev, gcc (>= 4:5.2), g++ (>= 4:5.2), make, dpkg-dev (>= 1.17.11), debhelper (>= 9), libcurl4-gnutls-dev, libfreetype6-dev, libjpeg-dev, libmodplug-dev, libode-dev, libogg-dev, libpng-dev, libsdl2-dev, libtheora-dev, libvorbis-dev, lsb-release, pkg-config, zlib1g-dev dpkg-deb: building package 'sbuild-build-depends-darkplaces-dummy' in '/«BUILDDIR»/resolver-c4Hhcu/apt_archive/sbuild-build-depends-darkplaces-dummy.deb'. Get:1 file:/«BUILDDIR»/resolver-c4Hhcu/apt_archive ./ InRelease Ign:1 file:/«BUILDDIR»/resolver-c4Hhcu/apt_archive ./ InRelease Get:2 file:/«BUILDDIR»/resolver-c4Hhcu/apt_archive ./ Release [2119 B] Get:2 file:/«BUILDDIR»/resolver-c4Hhcu/apt_archive ./ Release [2119 B] Get:3 file:/«BUILDDIR»/resolver-c4Hhcu/apt_archive ./ Release.gpg Ign:3 file:/«BUILDDIR»/resolver-c4Hhcu/apt_archive ./ Release.gpg Get:4 file:/«BUILDDIR»/resolver-c4Hhcu/apt_archive ./ Sources [498 B] Get:5 file:/«BUILDDIR»/resolver-c4Hhcu/apt_archive ./ Packages [762 B] Ign:4 file:/«BUILDDIR»/resolver-c4Hhcu/apt_archive ./ Sources Ign:5 file:/«BUILDDIR»/resolver-c4Hhcu/apt_archive ./ Packages Get:4 file:/«BUILDDIR»/resolver-c4Hhcu/apt_archive ./ Sources [498 B] Get:5 file:/«BUILDDIR»/resolver-c4Hhcu/apt_archive ./ Packages [762 B] Reading package lists... W: The repository 'file:/«BUILDDIR»/resolver-c4Hhcu/apt_archive ./ Release' is not signed. Reading package lists... ┌──────────────────────────────────────────────────────────────────────────────┐ │ Install darkplaces build dependencies (apt-based resolver) │ └──────────────────────────────────────────────────────────────────────────────┘ Installing build dependencies Reading package lists... Building dependency tree... Reading state information... The following packages were automatically installed and are no longer required: g++-5 libapt-pkg4.16 libisl13 libprocps3 libstdc++-5-dev udev Use 'sudo apt autoremove' to remove them. The following additional packages will be installed: bsdmainutils debhelper dh-python dh-strip-nondeterminism distro-info-data file gettext gettext-base groff-base intltool-debian libarchive-zip-perl libasound2 libasound2-data libasound2-dev libasprintf0v5 libasyncns0 libboost-filesystem1.58.0 libboost-system1.58.0 libbsd0 libcroco3 libcurl4-gnutls-dev libdbus-1-dev libdrm-amdgpu1 libdrm-dev libdrm-intel1 libdrm-nouveau2 libdrm-radeon1 libdrm2 libedit2 libegl1-mesa libegl1-mesa-dev libelf1 libexpat1 libfile-stripnondeterminism-perl libflac8 libfreetype6 libfreetype6-dev libgbm1 libgl1-mesa-dev libgl1-mesa-dri libgl1-mesa-glx libglapi-mesa libgles2-mesa libgles2-mesa-dev libglib2.0-0 libglib2.0-bin libglib2.0-data libglib2.0-dev libglu1-mesa libglu1-mesa-dev libice-dev libice6 libicu55 libjpeg-dev libjpeg-turbo8 libjpeg-turbo8-dev libjpeg8 libjpeg8-dev libjson-c2 libllvm3.6v5 libmagic1 libmirclient-dev libmirclient9 libmircommon-dev libmircommon5 libmircookie-dev libmircookie1 libmirprotobuf3 libmodplug-dev libmodplug1 libmpdec2 libode-dev libode4 libogg-dev libogg0 libpciaccess0 libpcre16-3 libpcre3-dev libpcre32-3 libpcrecpp0v5 libpipeline1 libpng12-dev libprotobuf-dev libprotobuf-lite9v5 libprotobuf9v5 libpthread-stubs0-dev libpulse-dev libpulse-mainloop-glib0 libpulse0 libpython-stdlib libpython2.7-minimal libpython2.7-stdlib libpython3-stdlib libpython3.5-minimal libpython3.5-stdlib libsdl2-2.0-0 libsdl2-dev libsm-dev libsm6 libsndfile1 libtheora-dev libtheora0 libtimedate-perl libudev-dev libunistring0 libvorbis-dev libvorbis0a libvorbisenc2 libvorbisfile3 libwayland-client0 libwayland-cursor0 libwayland-dev libwayland-egl1-mesa libwayland-server0 libwrap0 libx11-6 libx11-data libx11-dev libx11-xcb-dev libx11-xcb1 libxau-dev libxau6 libxcb-dri2-0 libxcb-dri2-0-dev libxcb-dri3-0 libxcb-dri3-dev libxcb-glx0 libxcb-glx0-dev libxcb-present-dev libxcb-present0 libxcb-randr0 libxcb-randr0-dev libxcb-render0 libxcb-render0-dev libxcb-shape0 libxcb-shape0-dev libxcb-sync-dev libxcb-sync1 libxcb-xfixes0 libxcb-xfixes0-dev libxcb1 libxcb1-dev libxcursor-dev libxcursor1 libxdamage-dev libxdamage1 libxdmcp-dev libxdmcp6 libxext-dev libxext6 libxfixes-dev libxfixes3 libxi-dev libxi6 libxinerama-dev libxinerama1 libxkbcommon-dev libxkbcommon0 libxml2 libxrandr-dev libxrandr2 libxrender-dev libxrender1 libxshmfence-dev libxshmfence1 libxss-dev libxss1 libxt-dev libxt6 libxv-dev libxv1 libxxf86vm-dev libxxf86vm1 lsb-release man-db mesa-common-dev mime-support pkg-config po-debconf python python-minimal python2.7 python2.7-minimal python3 python3-minimal python3.5 python3.5-minimal x11-common x11proto-core-dev x11proto-damage-dev x11proto-dri2-dev x11proto-fixes-dev x11proto-gl-dev x11proto-input-dev x11proto-kb-dev x11proto-randr-dev x11proto-render-dev x11proto-scrnsaver-dev x11proto-video-dev x11proto-xext-dev x11proto-xf86vidmode-dev x11proto-xinerama-dev xkb-data xorg-sgml-doctools xtrans-dev zlib1g-dev Suggested packages: wamerican | wordlist whois vacation dh-make gettext-doc autopoint groff libasound2-plugins alsa-utils libasound2-doc libcurl4-doc libcurl3-dbg libgnutls-dev libidn11-dev libkrb5-dev libldap2-dev librtmp-dev libglib2.0-doc libice-doc pciutils pulseaudio libsm-doc libxcb-doc libxext-doc libxt-doc lsb less www-browser libmail-box-perl python-doc python-tk python2.7-doc binfmt-support python3-doc python3-tk python3-venv python3.5-venv python3.5-doc Recommended packages: curl | wget | lynx-cur libasprintf-dev libgettextpo-dev libtxc-dxtn-s2tc0 | libtxc-dxtn0 shared-mime-info xdg-user-dirs tcpd libx11-doc xml-core libmail-sendmail-perl The following NEW packages will be installed: bsdmainutils debhelper dh-python dh-strip-nondeterminism distro-info-data file gettext gettext-base groff-base intltool-debian libarchive-zip-perl libasound2 libasound2-data libasound2-dev libasprintf0v5 libasyncns0 libboost-filesystem1.58.0 libboost-system1.58.0 libbsd0 libcroco3 libcurl4-gnutls-dev libdbus-1-dev libdrm-amdgpu1 libdrm-dev libdrm-intel1 libdrm-nouveau2 libdrm-radeon1 libdrm2 libedit2 libegl1-mesa libegl1-mesa-dev libelf1 libexpat1 libfile-stripnondeterminism-perl libflac8 libfreetype6 libfreetype6-dev libgbm1 libgl1-mesa-dev libgl1-mesa-dri libgl1-mesa-glx libglapi-mesa libgles2-mesa libgles2-mesa-dev libglib2.0-0 libglib2.0-bin libglib2.0-data libglib2.0-dev libglu1-mesa libglu1-mesa-dev libice-dev libice6 libicu55 libjpeg-dev libjpeg-turbo8 libjpeg-turbo8-dev libjpeg8 libjpeg8-dev libjson-c2 libllvm3.6v5 libmagic1 libmirclient-dev libmirclient9 libmircommon-dev libmircommon5 libmircookie-dev libmircookie1 libmirprotobuf3 libmodplug-dev libmodplug1 libmpdec2 libode-dev libode4 libogg-dev libogg0 libpciaccess0 libpcre16-3 libpcre3-dev libpcre32-3 libpcrecpp0v5 libpipeline1 libpng12-dev libprotobuf-dev libprotobuf-lite9v5 libprotobuf9v5 libpthread-stubs0-dev libpulse-dev libpulse-mainloop-glib0 libpulse0 libpython-stdlib libpython2.7-minimal libpython2.7-stdlib libpython3-stdlib libpython3.5-minimal libpython3.5-stdlib libsdl2-2.0-0 libsdl2-dev libsm-dev libsm6 libsndfile1 libtheora-dev libtheora0 libtimedate-perl libudev-dev libunistring0 libvorbis-dev libvorbis0a libvorbisenc2 libvorbisfile3 libwayland-client0 libwayland-cursor0 libwayland-dev libwayland-egl1-mesa libwayland-server0 libwrap0 libx11-6 libx11-data libx11-dev libx11-xcb-dev libx11-xcb1 libxau-dev libxau6 libxcb-dri2-0 libxcb-dri2-0-dev libxcb-dri3-0 libxcb-dri3-dev libxcb-glx0 libxcb-glx0-dev libxcb-present-dev libxcb-present0 libxcb-randr0 libxcb-randr0-dev libxcb-render0 libxcb-render0-dev libxcb-shape0 libxcb-shape0-dev libxcb-sync-dev libxcb-sync1 libxcb-xfixes0 libxcb-xfixes0-dev libxcb1 libxcb1-dev libxcursor-dev libxcursor1 libxdamage-dev libxdamage1 libxdmcp-dev libxdmcp6 libxext-dev libxext6 libxfixes-dev libxfixes3 libxi-dev libxi6 libxinerama-dev libxinerama1 libxkbcommon-dev libxkbcommon0 libxml2 libxrandr-dev libxrandr2 libxrender-dev libxrender1 libxshmfence-dev libxshmfence1 libxss-dev libxss1 libxt-dev libxt6 libxv-dev libxv1 libxxf86vm-dev libxxf86vm1 lsb-release man-db mesa-common-dev mime-support pkg-config po-debconf python python-minimal python2.7 python2.7-minimal python3 python3-minimal python3.5 python3.5-minimal sbuild-build-depends-darkplaces-dummy x11-common x11proto-core-dev x11proto-damage-dev x11proto-dri2-dev x11proto-fixes-dev x11proto-gl-dev x11proto-input-dev x11proto-kb-dev x11proto-randr-dev x11proto-render-dev x11proto-scrnsaver-dev x11proto-video-dev x11proto-xext-dev x11proto-xf86vidmode-dev x11proto-xinerama-dev xkb-data xorg-sgml-doctools xtrans-dev zlib1g-dev 0 upgraded, 207 newly installed, 0 to remove and 0 not upgraded. Need to get 52.4 MB/52.4 MB of archives. After this operation, 310 MB of additional disk space will be used. WARNING: The following packages cannot be authenticated! sbuild-build-depends-darkplaces-dummy Authentication warning overridden. Get:1 file:/«BUILDDIR»/resolver-c4Hhcu/apt_archive ./ sbuild-build-depends-darkplaces-dummy 0.invalid.0 [1014 B] Get:2 http://ftpmaster.internal/ubuntu xenial/main amd64 libjson-c2 amd64 0.11-4ubuntu2 [22.3 kB] Get:3 http://ftpmaster.internal/ubuntu xenial/main amd64 libmpdec2 amd64 2.4.1-1 [82.7 kB] Get:4 http://ftpmaster.internal/ubuntu xenial/main amd64 libpython3.5-minimal amd64 3.5.1-3 [522 kB] Get:5 http://ftpmaster.internal/ubuntu xenial/main amd64 libexpat1 amd64 2.1.0-7 [71.4 kB] Get:6 http://ftpmaster.internal/ubuntu xenial/main amd64 python3.5-minimal amd64 3.5.1-3 [1554 kB] Get:7 http://ftpmaster.internal/ubuntu xenial/main amd64 python3-minimal amd64 3.5.0-2 [23.7 kB] Get:8 http://ftpmaster.internal/ubuntu xenial/main amd64 mime-support all 3.59ubuntu1 [31.0 kB] Get:9 http://ftpmaster.internal/ubuntu xenial/main amd64 libpython3.5-stdlib amd64 3.5.1-3 [2120 kB] Get:10 http://ftpmaster.internal/ubuntu xenial/main amd64 python3.5 amd64 3.5.1-3 [154 kB] Get:11 http://ftpmaster.internal/ubuntu xenial/main amd64 libpython3-stdlib amd64 3.5.0-2 [7074 B] Get:12 http://ftpmaster.internal/ubuntu xenial/main amd64 dh-python all 2.20151103ubuntu1 [74.4 kB] Get:13 http://ftpmaster.internal/ubuntu xenial/main amd64 python3 amd64 3.5.0-2 [8644 B] Get:14 http://ftpmaster.internal/ubuntu xenial/main amd64 libxau6 amd64 1:1.0.8-1 [8376 B] Get:15 http://ftpmaster.internal/ubuntu xenial/main amd64 libxdmcp6 amd64 1:1.1.2-1.1 [11.0 kB] Get:16 http://ftpmaster.internal/ubuntu xenial/main amd64 libxcb1 amd64 1.11.1-1ubuntu1 [40.0 kB] Get:17 http://ftpmaster.internal/ubuntu xenial/main amd64 libx11-data all 2:1.6.3-1ubuntu2 [113 kB] Get:18 http://ftpmaster.internal/ubuntu xenial/main amd64 libx11-6 amd64 2:1.6.3-1ubuntu2 [571 kB] Get:19 http://ftpmaster.internal/ubuntu xenial/main amd64 libxext6 amd64 2:1.3.3-1 [29.4 kB] Get:20 http://ftpmaster.internal/ubuntu xenial/main amd64 groff-base amd64 1.22.3-5 [1143 kB] Get:21 http://ftpmaster.internal/ubuntu xenial/main amd64 bsdmainutils amd64 9.0.6ubuntu1 [175 kB] Get:22 http://ftpmaster.internal/ubuntu xenial/main amd64 libpipeline1 amd64 1.4.1-2 [24.6 kB] Get:23 http://ftpmaster.internal/ubuntu xenial/main amd64 man-db amd64 2.7.5-1 [854 kB] Get:24 http://ftpmaster.internal/ubuntu xenial/main amd64 libasyncns0 amd64 0.8-5build1 [12.3 kB] Get:25 http://ftpmaster.internal/ubuntu xenial/main amd64 x11-common all 1:7.7+12ubuntu1 [22.4 kB] Get:26 http://ftpmaster.internal/ubuntu xenial/main amd64 libice6 amd64 2:1.0.9-1 [39.2 kB] Get:27 http://ftpmaster.internal/ubuntu xenial/main amd64 libjpeg-turbo8 amd64 1.4.2-0ubuntu1 [111 kB] Get:28 http://ftpmaster.internal/ubuntu xenial/main amd64 libogg0 amd64 1.3.2-1 [17.2 kB] Get:29 http://ftpmaster.internal/ubuntu xenial/main amd64 libpcrecpp0v5 amd64 2:8.35-7.1ubuntu1 [15.4 kB] Get:30 http://ftpmaster.internal/ubuntu xenial/main amd64 libasound2-data all 1.1.0-0ubuntu1 [29.4 kB] Get:31 http://ftpmaster.internal/ubuntu xenial/main amd64 libasound2 amd64 1.1.0-0ubuntu1 [350 kB] Get:32 http://ftpmaster.internal/ubuntu xenial/main amd64 libflac8 amd64 1.3.1-4 [210 kB] Get:33 http://ftpmaster.internal/ubuntu xenial/main amd64 libvorbis0a amd64 1.3.4-3 [86.9 kB] Get:34 http://ftpmaster.internal/ubuntu xenial/main amd64 libvorbisenc2 amd64 1.3.4-3 [70.8 kB] Get:35 http://ftpmaster.internal/ubuntu xenial/main amd64 libsndfile1 amd64 1.0.25-10 [137 kB] Get:36 http://ftpmaster.internal/ubuntu xenial/main amd64 libwrap0 amd64 7.6.q-25 [46.2 kB] Get:37 http://ftpmaster.internal/ubuntu xenial/main amd64 libpulse0 amd64 1:7.1-1ubuntu3 [247 kB] Get:38 http://ftpmaster.internal/ubuntu xenial/main amd64 libwayland-client0 amd64 1.9.0-1 [21.4 kB] Get:39 http://ftpmaster.internal/ubuntu xenial/main amd64 libwayland-cursor0 amd64 1.9.0-1 [10.1 kB] Get:40 http://ftpmaster.internal/ubuntu xenial/main amd64 libdrm2 amd64 2.4.65-3 [27.6 kB] Get:41 http://ftpmaster.internal/ubuntu xenial/main amd64 libwayland-server0 amd64 1.9.0-1 [26.4 kB] Get:42 http://ftpmaster.internal/ubuntu xenial/main amd64 libdrm-amdgpu1 amd64 2.4.65-3 [15.4 kB] Get:43 http://ftpmaster.internal/ubuntu xenial/main amd64 libpciaccess0 amd64 0.13.4-1 [18.1 kB] Get:44 http://ftpmaster.internal/ubuntu xenial/main amd64 libdrm-intel1 amd64 2.4.65-3 [55.4 kB] Get:45 http://ftpmaster.internal/ubuntu xenial/main amd64 libdrm-nouveau2 amd64 2.4.65-3 [14.2 kB] Get:46 http://ftpmaster.internal/ubuntu xenial/main amd64 libdrm-radeon1 amd64 2.4.65-3 [21.6 kB] Get:47 http://ftpmaster.internal/ubuntu xenial/main amd64 libelf1 amd64 0.164-1 [39.6 kB] Get:48 http://ftpmaster.internal/ubuntu xenial/main amd64 libbsd0 amd64 0.8.1-1 [41.9 kB] Get:49 http://ftpmaster.internal/ubuntu xenial/main amd64 libedit2 amd64 3.1-20150325-1ubuntu1 [76.6 kB] Get:50 http://ftpmaster.internal/ubuntu xenial/main amd64 libllvm3.6v5 amd64 1:3.6.2-3ubuntu1 [8088 kB] Get:51 http://ftpmaster.internal/ubuntu xenial/main amd64 libgl1-mesa-dri amd64 11.0.8-1ubuntu1 [4305 kB] Get:52 http://ftpmaster.internal/ubuntu xenial/main amd64 libgbm1 amd64 11.0.8-1ubuntu1 [22.6 kB] Get:53 http://ftpmaster.internal/ubuntu xenial/main amd64 libx11-xcb1 amd64 2:1.6.3-1ubuntu2 [8956 B] Get:54 http://ftpmaster.internal/ubuntu xenial/main amd64 libxcb-dri2-0 amd64 1.11.1-1ubuntu1 [6882 B] Get:55 http://ftpmaster.internal/ubuntu xenial/main amd64 libxcb-xfixes0 amd64 1.11.1-1ubuntu1 [8840 B] Get:56 http://ftpmaster.internal/ubuntu xenial/main amd64 libegl1-mesa amd64 11.0.8-1ubuntu1 [63.5 kB] Get:57 http://ftpmaster.internal/ubuntu xenial/main amd64 libwayland-egl1-mesa amd64 11.0.8-1ubuntu1 [5820 B] Get:58 http://ftpmaster.internal/ubuntu xenial/main amd64 libxfixes3 amd64 1:5.0.1-2 [11.1 kB] Get:59 http://ftpmaster.internal/ubuntu xenial/main amd64 libxrender1 amd64 1:0.9.9-0ubuntu1 [18.5 kB] Get:60 http://ftpmaster.internal/ubuntu xenial/main amd64 libxcursor1 amd64 1:1.1.14-1 [22.8 kB] Get:61 http://ftpmaster.internal/ubuntu xenial/main amd64 libxi6 amd64 2:1.7.5-1 [28.6 kB] Get:62 http://ftpmaster.internal/ubuntu xenial/main amd64 libxinerama1 amd64 2:1.1.3-1 [7908 B] Get:63 http://ftpmaster.internal/ubuntu xenial/main amd64 xkb-data all 2.12-1ubuntu1 [297 kB] Get:64 http://ftpmaster.internal/ubuntu xenial/main amd64 libxkbcommon0 amd64 0.5.0-1ubuntu2 [97.2 kB] Get:65 http://ftpmaster.internal/ubuntu xenial/main amd64 libxrandr2 amd64 2:1.5.0-1 [17.6 kB] Get:66 http://ftpmaster.internal/ubuntu xenial/main amd64 libxss1 amd64 1:1.2.2-1 [8582 B] Get:67 http://ftpmaster.internal/ubuntu xenial/main amd64 libxxf86vm1 amd64 1:1.1.4-1 [10.6 kB] Get:68 http://ftpmaster.internal/ubuntu xenial/universe amd64 libsdl2-2.0-0 amd64 2.0.2+dfsg1-6ubuntu2 [324 kB] Get:69 http://ftpmaster.internal/ubuntu xenial/main amd64 libsm6 amd64 2:1.2.2-1 [15.8 kB] Get:70 http://ftpmaster.internal/ubuntu xenial/main amd64 libudev-dev amd64 228-3ubuntu1 [19.0 kB] Get:71 http://ftpmaster.internal/ubuntu xenial/main amd64 libunistring0 amd64 0.9.3-5.2ubuntu1 [279 kB] Get:72 http://ftpmaster.internal/ubuntu xenial/main amd64 libxdamage1 amd64 1:1.1.4-2 [6946 B] Get:73 http://ftpmaster.internal/ubuntu xenial/main amd64 libxshmfence1 amd64 1.2-1 [5042 B] Get:74 http://ftpmaster.internal/ubuntu xenial/main amd64 libxv1 amd64 2:1.0.10-1 [10.3 kB] Get:75 http://ftpmaster.internal/ubuntu xenial/main amd64 libpython2.7-minimal amd64 2.7.11-2 [334 kB] Get:76 http://ftpmaster.internal/ubuntu xenial/main amd64 python2.7-minimal amd64 2.7.11-2 [1259 kB] Get:77 http://ftpmaster.internal/ubuntu xenial/main amd64 python-minimal amd64 2.7.11-1 [28.2 kB] Get:78 http://ftpmaster.internal/ubuntu xenial/main amd64 libpython2.7-stdlib amd64 2.7.11-2 [1875 kB] Get:79 http://ftpmaster.internal/ubuntu xenial/main amd64 python2.7 amd64 2.7.11-2 [216 kB] Get:80 http://ftpmaster.internal/ubuntu xenial/main amd64 libpython-stdlib amd64 2.7.11-1 [7656 B] Get:81 http://ftpmaster.internal/ubuntu xenial/main amd64 python amd64 2.7.11-1 [137 kB] Get:82 http://ftpmaster.internal/ubuntu xenial/main amd64 libmagic1 amd64 1:5.25-2ubuntu1 [216 kB] Get:83 http://ftpmaster.internal/ubuntu xenial/main amd64 file amd64 1:5.25-2ubuntu1 [21.2 kB] Get:84 http://ftpmaster.internal/ubuntu xenial/main amd64 distro-info-data all 0.28 [3856 B] Get:85 http://ftpmaster.internal/ubuntu xenial/main amd64 lsb-release all 9.20150917ubuntu1 [11.0 kB] Get:86 http://ftpmaster.internal/ubuntu xenial/main amd64 libasprintf0v5 amd64 0.19.6-1ubuntu1 [6924 B] Get:87 http://ftpmaster.internal/ubuntu xenial/main amd64 gettext-base amd64 0.19.6-1ubuntu1 [48.6 kB] Get:88 http://ftpmaster.internal/ubuntu xenial/main amd64 libglib2.0-0 amd64 2.47.3-3 [1114 kB] Get:89 http://ftpmaster.internal/ubuntu xenial/main amd64 libglib2.0-data all 2.47.3-3 [129 kB] Get:90 http://ftpmaster.internal/ubuntu xenial/main amd64 libicu55 amd64 55.1-6ubuntu1 [7643 kB] Get:91 http://ftpmaster.internal/ubuntu xenial/main amd64 libxml2 amd64 2.9.2+zdfsg1-4ubuntu2 [696 kB] Get:92 http://ftpmaster.internal/ubuntu xenial/main amd64 libcroco3 amd64 0.6.11-1 [81.6 kB] Get:93 http://ftpmaster.internal/ubuntu xenial/main amd64 gettext amd64 0.19.6-1ubuntu1 [1063 kB] Get:94 http://ftpmaster.internal/ubuntu xenial/main amd64 intltool-debian all 0.35.0+20060710.4 [24.9 kB] Get:95 http://ftpmaster.internal/ubuntu xenial/main amd64 po-debconf all 1.0.19 [234 kB] Get:96 http://ftpmaster.internal/ubuntu xenial/main amd64 libarchive-zip-perl all 1.56-2 [84.1 kB] Get:97 http://ftpmaster.internal/ubuntu xenial/main amd64 libfile-stripnondeterminism-perl all 0.014-1 [10.1 kB] Get:98 http://ftpmaster.internal/ubuntu xenial/main amd64 libtimedate-perl all 2.3000-2 [37.5 kB] Get:99 http://ftpmaster.internal/ubuntu xenial/main amd64 dh-strip-nondeterminism all 0.014-1 [5596 B] Get:100 http://ftpmaster.internal/ubuntu xenial/main amd64 debhelper all 9.20151225ubuntu1 [744 kB] Get:101 http://ftpmaster.internal/ubuntu xenial/main amd64 libasound2-dev amd64 1.1.0-0ubuntu1 [114 kB] Get:102 http://ftpmaster.internal/ubuntu xenial/main amd64 libboost-system1.58.0 amd64 1.58.0+dfsg-4.1ubuntu1 [9222 B] Get:103 http://ftpmaster.internal/ubuntu xenial/main amd64 libboost-filesystem1.58.0 amd64 1.58.0+dfsg-4.1ubuntu1 [37.7 kB] Get:104 http://ftpmaster.internal/ubuntu xenial/main amd64 libcurl4-gnutls-dev amd64 7.45.0-1ubuntu1 [259 kB] Get:105 http://ftpmaster.internal/ubuntu xenial/main amd64 pkg-config amd64 0.29-2ubuntu2 [44.0 kB] Get:106 http://ftpmaster.internal/ubuntu xenial/main amd64 libdbus-1-dev amd64 1.10.6-1ubuntu1 [161 kB] Get:107 http://ftpmaster.internal/ubuntu xenial/main amd64 libdrm-dev amd64 2.4.65-3 [197 kB] Get:108 http://ftpmaster.internal/ubuntu xenial/main amd64 x11proto-dri2-dev all 2.8-2 [12.6 kB] Get:109 http://ftpmaster.internal/ubuntu xenial/main amd64 x11proto-gl-dev all 1.4.17-1 [17.9 kB] Get:110 http://ftpmaster.internal/ubuntu xenial/main amd64 xorg-sgml-doctools all 1:1.11-1 [12.9 kB] Get:111 http://ftpmaster.internal/ubuntu xenial/main amd64 x11proto-core-dev all 7.0.28-0ubuntu2 [250 kB] Get:112 http://ftpmaster.internal/ubuntu xenial/main amd64 libxau-dev amd64 1:1.0.8-1 [11.1 kB] Get:113 http://ftpmaster.internal/ubuntu xenial/main amd64 libxdmcp-dev amd64 1:1.1.2-1.1 [25.1 kB] Get:114 http://ftpmaster.internal/ubuntu xenial/main amd64 x11proto-input-dev all 2.3.1-1 [118 kB] Get:115 http://ftpmaster.internal/ubuntu xenial/main amd64 x11proto-kb-dev all 1.0.7-0ubuntu1 [224 kB] Get:116 http://ftpmaster.internal/ubuntu xenial/main amd64 xtrans-dev all 1.3.5-1 [70.5 kB] Get:117 http://ftpmaster.internal/ubuntu xenial/main amd64 libpthread-stubs0-dev amd64 0.3-4 [4068 B] Get:118 http://ftpmaster.internal/ubuntu xenial/main amd64 libxcb1-dev amd64 1.11.1-1ubuntu1 [74.2 kB] Get:119 http://ftpmaster.internal/ubuntu xenial/main amd64 libx11-dev amd64 2:1.6.3-1ubuntu2 [642 kB] Get:120 http://ftpmaster.internal/ubuntu xenial/main amd64 x11proto-xext-dev all 7.3.0-1 [212 kB] Get:121 http://ftpmaster.internal/ubuntu xenial/main amd64 libxext-dev amd64 2:1.3.3-1 [82.1 kB] Get:122 http://ftpmaster.internal/ubuntu xenial/main amd64 x11proto-xf86vidmode-dev all 2.3.1-2 [6116 B] Get:123 http://ftpmaster.internal/ubuntu xenial/main amd64 libxxf86vm-dev amd64 1:1.1.4-1 [13.3 kB] Get:124 http://ftpmaster.internal/ubuntu xenial/main amd64 x11proto-fixes-dev all 1:5.0-2ubuntu2 [14.2 kB] Get:125 http://ftpmaster.internal/ubuntu xenial/main amd64 libxfixes-dev amd64 1:5.0.1-2 [10.9 kB] Get:126 http://ftpmaster.internal/ubuntu xenial/main amd64 x11proto-damage-dev all 1:1.2.1-2 [8286 B] Get:127 http://ftpmaster.internal/ubuntu xenial/main amd64 libxdamage-dev amd64 1:1.1.4-2 [5028 B] Get:128 http://ftpmaster.internal/ubuntu xenial/main amd64 libxcb-glx0 amd64 1.11.1-1ubuntu1 [20.9 kB] Get:129 http://ftpmaster.internal/ubuntu xenial/main amd64 libxcb-glx0-dev amd64 1.11.1-1ubuntu1 [26.9 kB] Get:130 http://ftpmaster.internal/ubuntu xenial/main amd64 libxcb-dri2-0-dev amd64 1.11.1-1ubuntu1 [8384 B] Get:131 http://ftpmaster.internal/ubuntu xenial/main amd64 libxcb-dri3-0 amd64 1.11.1-1ubuntu1 [5218 B] Get:132 http://ftpmaster.internal/ubuntu xenial/main amd64 libxcb-dri3-dev amd64 1.11.1-1ubuntu1 [5752 B] Get:133 http://ftpmaster.internal/ubuntu xenial/main amd64 libxcb-present0 amd64 1.11.1-1ubuntu1 [5218 B] Get:134 http://ftpmaster.internal/ubuntu xenial/main amd64 libxcb-randr0 amd64 1.11.1-1ubuntu1 [14.4 kB] Get:135 http://ftpmaster.internal/ubuntu xenial/main amd64 libxcb-render0 amd64 1.11.1-1ubuntu1 [11.4 kB] Get:136 http://ftpmaster.internal/ubuntu xenial/main amd64 libxcb-render0-dev amd64 1.11.1-1ubuntu1 [15.3 kB] Get:137 http://ftpmaster.internal/ubuntu xenial/main amd64 libxcb-randr0-dev amd64 1.11.1-1ubuntu1 [18.2 kB] Get:138 http://ftpmaster.internal/ubuntu xenial/main amd64 libxcb-shape0 amd64 1.11.1-1ubuntu1 [5756 B] Get:139 http://ftpmaster.internal/ubuntu xenial/main amd64 libxcb-shape0-dev amd64 1.11.1-1ubuntu1 [6900 B] Get:140 http://ftpmaster.internal/ubuntu xenial/main amd64 libxcb-xfixes0-dev amd64 1.11.1-1ubuntu1 [11.2 kB] Get:141 http://ftpmaster.internal/ubuntu xenial/main amd64 libxcb-sync1 amd64 1.11.1-1ubuntu1 [8324 B] Get:142 http://ftpmaster.internal/ubuntu xenial/main amd64 libxcb-sync-dev amd64 1.11.1-1ubuntu1 [10.1 kB] Get:143 http://ftpmaster.internal/ubuntu xenial/main amd64 libxcb-present-dev amd64 1.11.1-1ubuntu1 [6618 B] Get:144 http://ftpmaster.internal/ubuntu xenial/main amd64 libxshmfence-dev amd64 1.2-1 [3676 B] Get:145 http://ftpmaster.internal/ubuntu xenial/main amd64 libx11-xcb-dev amd64 2:1.6.3-1ubuntu2 [9730 B] Get:146 http://ftpmaster.internal/ubuntu xenial/main amd64 libmircommon5 amd64 0.18.0+16.04.20151216.1-0ubuntu1 [89.2 kB] Get:147 http://ftpmaster.internal/ubuntu xenial/main amd64 libprotobuf-lite9v5 amd64 2.6.1-1.3 [58.4 kB] Get:148 http://ftpmaster.internal/ubuntu xenial/main amd64 libmirprotobuf3 amd64 0.18.0+16.04.20151216.1-0ubuntu1 [96.1 kB] Get:149 http://ftpmaster.internal/ubuntu xenial/main amd64 libmirclient9 amd64 0.18.0+16.04.20151216.1-0ubuntu1 [153 kB] Get:150 http://ftpmaster.internal/ubuntu xenial/main amd64 zlib1g-dev amd64 1:1.2.8.dfsg-2ubuntu4 [168 kB] Get:151 http://ftpmaster.internal/ubuntu xenial/main amd64 libprotobuf9v5 amd64 2.6.1-1.3 [326 kB] Get:152 http://ftpmaster.internal/ubuntu xenial/main amd64 libprotobuf-dev amd64 2.6.1-1.3 [473 kB] Get:153 http://ftpmaster.internal/ubuntu xenial/main amd64 libxkbcommon-dev amd64 0.5.0-1ubuntu2 [231 kB] Get:154 http://ftpmaster.internal/ubuntu xenial/main amd64 libmircommon-dev amd64 0.18.0+16.04.20151216.1-0ubuntu1 [16.2 kB] Get:155 http://ftpmaster.internal/ubuntu xenial/main amd64 libmircookie1 amd64 0.18.0+16.04.20151216.1-0ubuntu1 [21.5 kB] Get:156 http://ftpmaster.internal/ubuntu xenial/main amd64 libmircookie-dev amd64 0.18.0+16.04.20151216.1-0ubuntu1 [4810 B] Get:157 http://ftpmaster.internal/ubuntu xenial/main amd64 libmirclient-dev amd64 0.18.0+16.04.20151216.1-0ubuntu1 [24.0 kB] Get:158 http://ftpmaster.internal/ubuntu xenial/main amd64 libwayland-dev amd64 1.9.0-1 [112 kB] Get:159 http://ftpmaster.internal/ubuntu xenial/main amd64 libegl1-mesa-dev amd64 11.0.8-1ubuntu1 [17.5 kB] Get:160 http://ftpmaster.internal/ubuntu xenial/main amd64 libfreetype6 amd64 2.5.2-4ubuntu2 [312 kB] Get:161 http://ftpmaster.internal/ubuntu xenial/main amd64 libpng12-dev amd64 1.2.54-1ubuntu1 [184 kB] Get:162 http://ftpmaster.internal/ubuntu xenial/main amd64 libfreetype6-dev amd64 2.5.2-4ubuntu2 [630 kB] Get:163 http://ftpmaster.internal/ubuntu xenial/main amd64 libglapi-mesa amd64 11.0.8-1ubuntu1 [22.4 kB] Get:164 http://ftpmaster.internal/ubuntu xenial/main amd64 libgl1-mesa-glx amd64 11.0.8-1ubuntu1 [145 kB] Get:165 http://ftpmaster.internal/ubuntu xenial/main amd64 libgles2-mesa amd64 11.0.8-1ubuntu1 [11.5 kB] Get:166 http://ftpmaster.internal/ubuntu xenial/main amd64 libgles2-mesa-dev amd64 11.0.8-1ubuntu1 [33.1 kB] Get:167 http://ftpmaster.internal/ubuntu xenial/main amd64 libglib2.0-bin amd64 2.47.3-3 [39.5 kB] Get:168 http://ftpmaster.internal/ubuntu xenial/main amd64 libpcre16-3 amd64 2:8.35-7.1ubuntu1 [141 kB] Get:169 http://ftpmaster.internal/ubuntu xenial/main amd64 libpcre32-3 amd64 2:8.35-7.1ubuntu1 [133 kB] Get:170 http://ftpmaster.internal/ubuntu xenial/main amd64 libpcre3-dev amd64 2:8.35-7.1ubuntu1 [520 kB] Get:171 http://ftpmaster.internal/ubuntu xenial/main amd64 libglib2.0-dev amd64 2.47.3-3 [1373 kB] Get:172 http://ftpmaster.internal/ubuntu xenial/main amd64 libglu1-mesa amd64 9.0.0-2.1 [168 kB] Get:173 http://ftpmaster.internal/ubuntu xenial/main amd64 mesa-common-dev amd64 11.0.8-1ubuntu1 [450 kB] Get:174 http://ftpmaster.internal/ubuntu xenial/main amd64 libgl1-mesa-dev amd64 11.0.8-1ubuntu1 [4442 B] Get:175 http://ftpmaster.internal/ubuntu xenial/main amd64 libglu1-mesa-dev amd64 9.0.0-2.1 [202 kB] Get:176 http://ftpmaster.internal/ubuntu xenial/main amd64 libice-dev amd64 2:1.0.9-1 [44.9 kB] Get:177 http://ftpmaster.internal/ubuntu xenial/main amd64 libjpeg-turbo8-dev amd64 1.4.2-0ubuntu1 [255 kB] Get:178 http://ftpmaster.internal/ubuntu xenial/main amd64 libjpeg8 amd64 8c-2ubuntu8 [2194 B] Get:179 http://ftpmaster.internal/ubuntu xenial/main amd64 libjpeg8-dev amd64 8c-2ubuntu8 [1552 B] Get:180 http://ftpmaster.internal/ubuntu xenial/main amd64 libjpeg-dev amd64 8c-2ubuntu8 [1546 B] Get:181 http://ftpmaster.internal/ubuntu xenial/universe amd64 libmodplug1 amd64 1:0.8.8.5-2 [153 kB] Get:182 http://ftpmaster.internal/ubuntu xenial/universe amd64 libmodplug-dev amd64 1:0.8.8.5-2 [14.5 kB] Get:183 http://ftpmaster.internal/ubuntu xenial/universe amd64 libode4 amd64 2:0.13.1+git20150309-2 [363 kB] Get:184 http://ftpmaster.internal/ubuntu xenial/universe amd64 libode-dev amd64 2:0.13.1+git20150309-2 [456 kB] Get:185 http://ftpmaster.internal/ubuntu xenial/main amd64 libogg-dev amd64 1.3.2-1 [156 kB] Get:186 http://ftpmaster.internal/ubuntu xenial/main amd64 libpulse-mainloop-glib0 amd64 1:7.1-1ubuntu3 [11.5 kB] Get:187 http://ftpmaster.internal/ubuntu xenial/main amd64 libpulse-dev amd64 1:7.1-1ubuntu3 [70.9 kB] Get:188 http://ftpmaster.internal/ubuntu xenial/main amd64 x11proto-render-dev all 2:0.11.1-2 [20.1 kB] Get:189 http://ftpmaster.internal/ubuntu xenial/main amd64 libxrender-dev amd64 1:0.9.9-0ubuntu1 [24.5 kB] Get:190 http://ftpmaster.internal/ubuntu xenial/main amd64 libxcursor-dev amd64 1:1.1.14-1 [29.8 kB] Get:191 http://ftpmaster.internal/ubuntu xenial/main amd64 libxi-dev amd64 2:1.7.5-1 [184 kB] Get:192 http://ftpmaster.internal/ubuntu xenial/main amd64 x11proto-xinerama-dev all 1.2.1-2 [4966 B] Get:193 http://ftpmaster.internal/ubuntu xenial/main amd64 libxinerama-dev amd64 2:1.1.3-1 [8404 B] Get:194 http://ftpmaster.internal/ubuntu xenial/main amd64 x11proto-randr-dev all 1.5.0-1 [33.7 kB] Get:195 http://ftpmaster.internal/ubuntu xenial/main amd64 libxrandr-dev amd64 2:1.5.0-1 [23.7 kB] Get:196 http://ftpmaster.internal/ubuntu xenial/main amd64 x11proto-scrnsaver-dev all 1.2.2-1 [25.0 kB] Get:197 http://ftpmaster.internal/ubuntu xenial/main amd64 libxss-dev amd64 1:1.2.2-1 [12.7 kB] Get:198 http://ftpmaster.internal/ubuntu xenial/main amd64 libxt6 amd64 1:1.1.5-0ubuntu1 [160 kB] Get:199 http://ftpmaster.internal/ubuntu xenial/main amd64 libsm-dev amd64 2:1.2.2-1 [16.2 kB] Get:200 http://ftpmaster.internal/ubuntu xenial/main amd64 libxt-dev amd64 1:1.1.5-0ubuntu1 [394 kB] Get:201 http://ftpmaster.internal/ubuntu xenial/main amd64 x11proto-video-dev all 2.3.2-1 [17.5 kB] Get:202 http://ftpmaster.internal/ubuntu xenial/main amd64 libxv-dev amd64 2:1.0.10-1 [32.4 kB] Get:203 http://ftpmaster.internal/ubuntu xenial/universe amd64 libsdl2-dev amd64 2.0.2+dfsg1-6ubuntu2 [1116 kB] Get:204 http://ftpmaster.internal/ubuntu xenial/main amd64 libtheora0 amd64 1.1.1+dfsg.1-7 [162 kB] Get:205 http://ftpmaster.internal/ubuntu xenial/main amd64 libtheora-dev amd64 1.1.1+dfsg.1-7 [178 kB] Get:206 http://ftpmaster.internal/ubuntu xenial/main amd64 libvorbisfile3 amd64 1.3.4-3 [15.9 kB] Get:207 http://ftpmaster.internal/ubuntu xenial/main amd64 libvorbis-dev amd64 1.3.4-3 [335 kB] debconf: delaying package configuration, since apt-utils is not installed Fetched 52.4 MB in 2s (18.1 MB/s) Selecting previously unselected package libjson-c2:amd64. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 13330 files and directories currently installed.) Preparing to unpack .../libjson-c2_0.11-4ubuntu2_amd64.deb ... Unpacking libjson-c2:amd64 (0.11-4ubuntu2) ... Selecting previously unselected package libmpdec2:amd64. Preparing to unpack .../libmpdec2_2.4.1-1_amd64.deb ... Unpacking libmpdec2:amd64 (2.4.1-1) ... Selecting previously unselected package libpython3.5-minimal:amd64. Preparing to unpack .../libpython3.5-minimal_3.5.1-3_amd64.deb ... Unpacking libpython3.5-minimal:amd64 (3.5.1-3) ... Selecting previously unselected package libexpat1:amd64. Preparing to unpack .../libexpat1_2.1.0-7_amd64.deb ... Unpacking libexpat1:amd64 (2.1.0-7) ... Selecting previously unselected package python3.5-minimal. Preparing to unpack .../python3.5-minimal_3.5.1-3_amd64.deb ... Unpacking python3.5-minimal (3.5.1-3) ... Selecting previously unselected package python3-minimal. Preparing to unpack .../python3-minimal_3.5.0-2_amd64.deb ... Unpacking python3-minimal (3.5.0-2) ... Selecting previously unselected package mime-support. Preparing to unpack .../mime-support_3.59ubuntu1_all.deb ... Unpacking mime-support (3.59ubuntu1) ... Selecting previously unselected package libpython3.5-stdlib:amd64. Preparing to unpack .../libpython3.5-stdlib_3.5.1-3_amd64.deb ... Unpacking libpython3.5-stdlib:amd64 (3.5.1-3) ... Selecting previously unselected package python3.5. Preparing to unpack .../python3.5_3.5.1-3_amd64.deb ... Unpacking python3.5 (3.5.1-3) ... Selecting previously unselected package libpython3-stdlib:amd64. Preparing to unpack .../libpython3-stdlib_3.5.0-2_amd64.deb ... Unpacking libpython3-stdlib:amd64 (3.5.0-2) ... Selecting previously unselected package dh-python. Preparing to unpack .../dh-python_2.20151103ubuntu1_all.deb ... Unpacking dh-python (2.20151103ubuntu1) ... Setting up libpython3.5-minimal:amd64 (3.5.1-3) ... Setting up libexpat1:amd64 (2.1.0-7) ... Setting up python3.5-minimal (3.5.1-3) ... Setting up python3-minimal (3.5.0-2) ... Processing triggers for libc-bin (2.21-0ubuntu5) ... Selecting previously unselected package python3. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 14288 files and directories currently installed.) Preparing to unpack .../python3_3.5.0-2_amd64.deb ... Unpacking python3 (3.5.0-2) ... Selecting previously unselected package libxau6:amd64. Preparing to unpack .../libxau6_1%3a1.0.8-1_amd64.deb ... Unpacking libxau6:amd64 (1:1.0.8-1) ... Selecting previously unselected package libxdmcp6:amd64. Preparing to unpack .../libxdmcp6_1%3a1.1.2-1.1_amd64.deb ... Unpacking libxdmcp6:amd64 (1:1.1.2-1.1) ... Selecting previously unselected package libxcb1:amd64. Preparing to unpack .../libxcb1_1.11.1-1ubuntu1_amd64.deb ... Unpacking libxcb1:amd64 (1.11.1-1ubuntu1) ... Selecting previously unselected package libx11-data. Preparing to unpack .../libx11-data_2%3a1.6.3-1ubuntu2_all.deb ... Unpacking libx11-data (2:1.6.3-1ubuntu2) ... Selecting previously unselected package libx11-6:amd64. Preparing to unpack .../libx11-6_2%3a1.6.3-1ubuntu2_amd64.deb ... Unpacking libx11-6:amd64 (2:1.6.3-1ubuntu2) ... Selecting previously unselected package libxext6:amd64. Preparing to unpack .../libxext6_2%3a1.3.3-1_amd64.deb ... Unpacking libxext6:amd64 (2:1.3.3-1) ... Selecting previously unselected package groff-base. Preparing to unpack .../groff-base_1.22.3-5_amd64.deb ... Unpacking groff-base (1.22.3-5) ... Selecting previously unselected package bsdmainutils. Preparing to unpack .../bsdmainutils_9.0.6ubuntu1_amd64.deb ... Unpacking bsdmainutils (9.0.6ubuntu1) ... Selecting previously unselected package libpipeline1:amd64. Preparing to unpack .../libpipeline1_1.4.1-2_amd64.deb ... Unpacking libpipeline1:amd64 (1.4.1-2) ... Selecting previously unselected package man-db. Preparing to unpack .../man-db_2.7.5-1_amd64.deb ... Unpacking man-db (2.7.5-1) ... Selecting previously unselected package libasyncns0:amd64. Preparing to unpack .../libasyncns0_0.8-5build1_amd64.deb ... Unpacking libasyncns0:amd64 (0.8-5build1) ... Selecting previously unselected package x11-common. Preparing to unpack .../x11-common_1%3a7.7+12ubuntu1_all.deb ... Unpacking x11-common (1:7.7+12ubuntu1) ... Selecting previously unselected package libice6:amd64. Preparing to unpack .../libice6_2%3a1.0.9-1_amd64.deb ... Unpacking libice6:amd64 (2:1.0.9-1) ... Selecting previously unselected package libjpeg-turbo8:amd64. Preparing to unpack .../libjpeg-turbo8_1.4.2-0ubuntu1_amd64.deb ... Unpacking libjpeg-turbo8:amd64 (1.4.2-0ubuntu1) ... Selecting previously unselected package libogg0:amd64. Preparing to unpack .../libogg0_1.3.2-1_amd64.deb ... Unpacking libogg0:amd64 (1.3.2-1) ... Selecting previously unselected package libpcrecpp0v5:amd64. Preparing to unpack .../libpcrecpp0v5_2%3a8.35-7.1ubuntu1_amd64.deb ... Unpacking libpcrecpp0v5:amd64 (2:8.35-7.1ubuntu1) ... Selecting previously unselected package libasound2-data. Preparing to unpack .../libasound2-data_1.1.0-0ubuntu1_all.deb ... Unpacking libasound2-data (1.1.0-0ubuntu1) ... Selecting previously unselected package libasound2:amd64. Preparing to unpack .../libasound2_1.1.0-0ubuntu1_amd64.deb ... Unpacking libasound2:amd64 (1.1.0-0ubuntu1) ... Selecting previously unselected package libflac8:amd64. Preparing to unpack .../libflac8_1.3.1-4_amd64.deb ... Unpacking libflac8:amd64 (1.3.1-4) ... Selecting previously unselected package libvorbis0a:amd64. Preparing to unpack .../libvorbis0a_1.3.4-3_amd64.deb ... Unpacking libvorbis0a:amd64 (1.3.4-3) ... Selecting previously unselected package libvorbisenc2:amd64. Preparing to unpack .../libvorbisenc2_1.3.4-3_amd64.deb ... Unpacking libvorbisenc2:amd64 (1.3.4-3) ... Selecting previously unselected package libsndfile1:amd64. Preparing to unpack .../libsndfile1_1.0.25-10_amd64.deb ... Unpacking libsndfile1:amd64 (1.0.25-10) ... Selecting previously unselected package libwrap0:amd64. Preparing to unpack .../libwrap0_7.6.q-25_amd64.deb ... Unpacking libwrap0:amd64 (7.6.q-25) ... Selecting previously unselected package libpulse0:amd64. Preparing to unpack .../libpulse0_1%3a7.1-1ubuntu3_amd64.deb ... Unpacking libpulse0:amd64 (1:7.1-1ubuntu3) ... Selecting previously unselected package libwayland-client0:amd64. Preparing to unpack .../libwayland-client0_1.9.0-1_amd64.deb ... Unpacking libwayland-client0:amd64 (1.9.0-1) ... Selecting previously unselected package libwayland-cursor0:amd64. Preparing to unpack .../libwayland-cursor0_1.9.0-1_amd64.deb ... Unpacking libwayland-cursor0:amd64 (1.9.0-1) ... Selecting previously unselected package libdrm2:amd64. Preparing to unpack .../libdrm2_2.4.65-3_amd64.deb ... Unpacking libdrm2:amd64 (2.4.65-3) ... Selecting previously unselected package libwayland-server0:amd64. Preparing to unpack .../libwayland-server0_1.9.0-1_amd64.deb ... Unpacking libwayland-server0:amd64 (1.9.0-1) ... Selecting previously unselected package libdrm-amdgpu1:amd64. Preparing to unpack .../libdrm-amdgpu1_2.4.65-3_amd64.deb ... Unpacking libdrm-amdgpu1:amd64 (2.4.65-3) ... Selecting previously unselected package libpciaccess0:amd64. Preparing to unpack .../libpciaccess0_0.13.4-1_amd64.deb ... Unpacking libpciaccess0:amd64 (0.13.4-1) ... Selecting previously unselected package libdrm-intel1:amd64. Preparing to unpack .../libdrm-intel1_2.4.65-3_amd64.deb ... Unpacking libdrm-intel1:amd64 (2.4.65-3) ... Selecting previously unselected package libdrm-nouveau2:amd64. Preparing to unpack .../libdrm-nouveau2_2.4.65-3_amd64.deb ... Unpacking libdrm-nouveau2:amd64 (2.4.65-3) ... Selecting previously unselected package libdrm-radeon1:amd64. Preparing to unpack .../libdrm-radeon1_2.4.65-3_amd64.deb ... Unpacking libdrm-radeon1:amd64 (2.4.65-3) ... Selecting previously unselected package libelf1:amd64. Preparing to unpack .../libelf1_0.164-1_amd64.deb ... Unpacking libelf1:amd64 (0.164-1) ... Selecting previously unselected package libbsd0:amd64. Preparing to unpack .../libbsd0_0.8.1-1_amd64.deb ... Unpacking libbsd0:amd64 (0.8.1-1) ... Selecting previously unselected package libedit2:amd64. Preparing to unpack .../libedit2_3.1-20150325-1ubuntu1_amd64.deb ... Unpacking libedit2:amd64 (3.1-20150325-1ubuntu1) ... Selecting previously unselected package libllvm3.6v5:amd64. Preparing to unpack .../libllvm3.6v5_1%3a3.6.2-3ubuntu1_amd64.deb ... Unpacking libllvm3.6v5:amd64 (1:3.6.2-3ubuntu1) ... Selecting previously unselected package libgl1-mesa-dri:amd64. Preparing to unpack .../libgl1-mesa-dri_11.0.8-1ubuntu1_amd64.deb ... Unpacking libgl1-mesa-dri:amd64 (11.0.8-1ubuntu1) ... Selecting previously unselected package libgbm1:amd64. Preparing to unpack .../libgbm1_11.0.8-1ubuntu1_amd64.deb ... Unpacking libgbm1:amd64 (11.0.8-1ubuntu1) ... Selecting previously unselected package libx11-xcb1:amd64. Preparing to unpack .../libx11-xcb1_2%3a1.6.3-1ubuntu2_amd64.deb ... Unpacking libx11-xcb1:amd64 (2:1.6.3-1ubuntu2) ... Selecting previously unselected package libxcb-dri2-0:amd64. Preparing to unpack .../libxcb-dri2-0_1.11.1-1ubuntu1_amd64.deb ... Unpacking libxcb-dri2-0:amd64 (1.11.1-1ubuntu1) ... Selecting previously unselected package libxcb-xfixes0:amd64. Preparing to unpack .../libxcb-xfixes0_1.11.1-1ubuntu1_amd64.deb ... Unpacking libxcb-xfixes0:amd64 (1.11.1-1ubuntu1) ... Selecting previously unselected package libegl1-mesa:amd64. Preparing to unpack .../libegl1-mesa_11.0.8-1ubuntu1_amd64.deb ... Unpacking libegl1-mesa:amd64 (11.0.8-1ubuntu1) ... Selecting previously unselected package libwayland-egl1-mesa:amd64. Preparing to unpack .../libwayland-egl1-mesa_11.0.8-1ubuntu1_amd64.deb ... Unpacking libwayland-egl1-mesa:amd64 (11.0.8-1ubuntu1) ... Selecting previously unselected package libxfixes3:amd64. Preparing to unpack .../libxfixes3_1%3a5.0.1-2_amd64.deb ... Unpacking libxfixes3:amd64 (1:5.0.1-2) ... Selecting previously unselected package libxrender1:amd64. Preparing to unpack .../libxrender1_1%3a0.9.9-0ubuntu1_amd64.deb ... Unpacking libxrender1:amd64 (1:0.9.9-0ubuntu1) ... Selecting previously unselected package libxcursor1:amd64. Preparing to unpack .../libxcursor1_1%3a1.1.14-1_amd64.deb ... Unpacking libxcursor1:amd64 (1:1.1.14-1) ... Selecting previously unselected package libxi6:amd64. Preparing to unpack .../libxi6_2%3a1.7.5-1_amd64.deb ... Unpacking libxi6:amd64 (2:1.7.5-1) ... Selecting previously unselected package libxinerama1:amd64. Preparing to unpack .../libxinerama1_2%3a1.1.3-1_amd64.deb ... Unpacking libxinerama1:amd64 (2:1.1.3-1) ... Selecting previously unselected package xkb-data. Preparing to unpack .../xkb-data_2.12-1ubuntu1_all.deb ... Unpacking xkb-data (2.12-1ubuntu1) ... Selecting previously unselected package libxkbcommon0:amd64. Preparing to unpack .../libxkbcommon0_0.5.0-1ubuntu2_amd64.deb ... Unpacking libxkbcommon0:amd64 (0.5.0-1ubuntu2) ... Selecting previously unselected package libxrandr2:amd64. Preparing to unpack .../libxrandr2_2%3a1.5.0-1_amd64.deb ... Unpacking libxrandr2:amd64 (2:1.5.0-1) ... Selecting previously unselected package libxss1:amd64. Preparing to unpack .../libxss1_1%3a1.2.2-1_amd64.deb ... Unpacking libxss1:amd64 (1:1.2.2-1) ... Selecting previously unselected package libxxf86vm1:amd64. Preparing to unpack .../libxxf86vm1_1%3a1.1.4-1_amd64.deb ... Unpacking libxxf86vm1:amd64 (1:1.1.4-1) ... Selecting previously unselected package libsdl2-2.0-0:amd64. Preparing to unpack .../libsdl2-2.0-0_2.0.2+dfsg1-6ubuntu2_amd64.deb ... Unpacking libsdl2-2.0-0:amd64 (2.0.2+dfsg1-6ubuntu2) ... Selecting previously unselected package libsm6:amd64. Preparing to unpack .../libsm6_2%3a1.2.2-1_amd64.deb ... Unpacking libsm6:amd64 (2:1.2.2-1) ... Selecting previously unselected package libudev-dev:amd64. Preparing to unpack .../libudev-dev_228-3ubuntu1_amd64.deb ... Unpacking libudev-dev:amd64 (228-3ubuntu1) ... Selecting previously unselected package libunistring0:amd64. Preparing to unpack .../libunistring0_0.9.3-5.2ubuntu1_amd64.deb ... Unpacking libunistring0:amd64 (0.9.3-5.2ubuntu1) ... Selecting previously unselected package libxdamage1:amd64. Preparing to unpack .../libxdamage1_1%3a1.1.4-2_amd64.deb ... Unpacking libxdamage1:amd64 (1:1.1.4-2) ... Selecting previously unselected package libxshmfence1:amd64. Preparing to unpack .../libxshmfence1_1.2-1_amd64.deb ... Unpacking libxshmfence1:amd64 (1.2-1) ... Selecting previously unselected package libxv1:amd64. Preparing to unpack .../libxv1_2%3a1.0.10-1_amd64.deb ... Unpacking libxv1:amd64 (2:1.0.10-1) ... Selecting previously unselected package libpython2.7-minimal:amd64. Preparing to unpack .../libpython2.7-minimal_2.7.11-2_amd64.deb ... Unpacking libpython2.7-minimal:amd64 (2.7.11-2) ... Selecting previously unselected package python2.7-minimal. Preparing to unpack .../python2.7-minimal_2.7.11-2_amd64.deb ... Unpacking python2.7-minimal (2.7.11-2) ... Selecting previously unselected package python-minimal. Preparing to unpack .../python-minimal_2.7.11-1_amd64.deb ... Unpacking python-minimal (2.7.11-1) ... Selecting previously unselected package libpython2.7-stdlib:amd64. Preparing to unpack .../libpython2.7-stdlib_2.7.11-2_amd64.deb ... Unpacking libpython2.7-stdlib:amd64 (2.7.11-2) ... Selecting previously unselected package python2.7. Preparing to unpack .../python2.7_2.7.11-2_amd64.deb ... Unpacking python2.7 (2.7.11-2) ... Selecting previously unselected package libpython-stdlib:amd64. Preparing to unpack .../libpython-stdlib_2.7.11-1_amd64.deb ... Unpacking libpython-stdlib:amd64 (2.7.11-1) ... Processing triggers for libc-bin (2.21-0ubuntu5) ... Processing triggers for systemd (228-3ubuntu1) ... Setting up libpython2.7-minimal:amd64 (2.7.11-2) ... Setting up python2.7-minimal (2.7.11-2) ... Setting up python-minimal (2.7.11-1) ... Selecting previously unselected package python. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 16696 files and directories currently installed.) Preparing to unpack .../python_2.7.11-1_amd64.deb ... Unpacking python (2.7.11-1) ... Selecting previously unselected package libmagic1:amd64. Preparing to unpack .../libmagic1_1%3a5.25-2ubuntu1_amd64.deb ... Unpacking libmagic1:amd64 (1:5.25-2ubuntu1) ... Selecting previously unselected package file. Preparing to unpack .../file_1%3a5.25-2ubuntu1_amd64.deb ... Unpacking file (1:5.25-2ubuntu1) ... Selecting previously unselected package distro-info-data. Preparing to unpack .../distro-info-data_0.28_all.deb ... Unpacking distro-info-data (0.28) ... Selecting previously unselected package lsb-release. Preparing to unpack .../lsb-release_9.20150917ubuntu1_all.deb ... Unpacking lsb-release (9.20150917ubuntu1) ... Selecting previously unselected package libasprintf0v5:amd64. Preparing to unpack .../libasprintf0v5_0.19.6-1ubuntu1_amd64.deb ... Unpacking libasprintf0v5:amd64 (0.19.6-1ubuntu1) ... Selecting previously unselected package gettext-base. Preparing to unpack .../gettext-base_0.19.6-1ubuntu1_amd64.deb ... Unpacking gettext-base (0.19.6-1ubuntu1) ... Selecting previously unselected package libglib2.0-0:amd64. Preparing to unpack .../libglib2.0-0_2.47.3-3_amd64.deb ... Unpacking libglib2.0-0:amd64 (2.47.3-3) ... Selecting previously unselected package libglib2.0-data. Preparing to unpack .../libglib2.0-data_2.47.3-3_all.deb ... Unpacking libglib2.0-data (2.47.3-3) ... Selecting previously unselected package libicu55:amd64. Preparing to unpack .../libicu55_55.1-6ubuntu1_amd64.deb ... Unpacking libicu55:amd64 (55.1-6ubuntu1) ... Selecting previously unselected package libxml2:amd64. Preparing to unpack .../libxml2_2.9.2+zdfsg1-4ubuntu2_amd64.deb ... Unpacking libxml2:amd64 (2.9.2+zdfsg1-4ubuntu2) ... Selecting previously unselected package libcroco3:amd64. Preparing to unpack .../libcroco3_0.6.11-1_amd64.deb ... Unpacking libcroco3:amd64 (0.6.11-1) ... Selecting previously unselected package gettext. Preparing to unpack .../gettext_0.19.6-1ubuntu1_amd64.deb ... Unpacking gettext (0.19.6-1ubuntu1) ... Selecting previously unselected package intltool-debian. Preparing to unpack .../intltool-debian_0.35.0+20060710.4_all.deb ... Unpacking intltool-debian (0.35.0+20060710.4) ... Selecting previously unselected package po-debconf. Preparing to unpack .../po-debconf_1.0.19_all.deb ... Unpacking po-debconf (1.0.19) ... Selecting previously unselected package libarchive-zip-perl. Preparing to unpack .../libarchive-zip-perl_1.56-2_all.deb ... Unpacking libarchive-zip-perl (1.56-2) ... Selecting previously unselected package libfile-stripnondeterminism-perl. Preparing to unpack .../libfile-stripnondeterminism-perl_0.014-1_all.deb ... Unpacking libfile-stripnondeterminism-perl (0.014-1) ... Selecting previously unselected package libtimedate-perl. Preparing to unpack .../libtimedate-perl_2.3000-2_all.deb ... Unpacking libtimedate-perl (2.3000-2) ... Selecting previously unselected package dh-strip-nondeterminism. Preparing to unpack .../dh-strip-nondeterminism_0.014-1_all.deb ... Unpacking dh-strip-nondeterminism (0.014-1) ... Selecting previously unselected package debhelper. Preparing to unpack .../debhelper_9.20151225ubuntu1_all.deb ... Unpacking debhelper (9.20151225ubuntu1) ... Selecting previously unselected package libasound2-dev:amd64. Preparing to unpack .../libasound2-dev_1.1.0-0ubuntu1_amd64.deb ... Unpacking libasound2-dev:amd64 (1.1.0-0ubuntu1) ... Selecting previously unselected package libboost-system1.58.0:amd64. Preparing to unpack .../libboost-system1.58.0_1.58.0+dfsg-4.1ubuntu1_amd64.deb ... Unpacking libboost-system1.58.0:amd64 (1.58.0+dfsg-4.1ubuntu1) ... Selecting previously unselected package libboost-filesystem1.58.0:amd64. Preparing to unpack .../libboost-filesystem1.58.0_1.58.0+dfsg-4.1ubuntu1_amd64.deb ... Unpacking libboost-filesystem1.58.0:amd64 (1.58.0+dfsg-4.1ubuntu1) ... Selecting previously unselected package libcurl4-gnutls-dev:amd64. Preparing to unpack .../libcurl4-gnutls-dev_7.45.0-1ubuntu1_amd64.deb ... Unpacking libcurl4-gnutls-dev:amd64 (7.45.0-1ubuntu1) ... Selecting previously unselected package pkg-config. Preparing to unpack .../pkg-config_0.29-2ubuntu2_amd64.deb ... Unpacking pkg-config (0.29-2ubuntu2) ... Selecting previously unselected package libdbus-1-dev:amd64. Preparing to unpack .../libdbus-1-dev_1.10.6-1ubuntu1_amd64.deb ... Unpacking libdbus-1-dev:amd64 (1.10.6-1ubuntu1) ... Selecting previously unselected package libdrm-dev:amd64. Preparing to unpack .../libdrm-dev_2.4.65-3_amd64.deb ... Unpacking libdrm-dev:amd64 (2.4.65-3) ... Selecting previously unselected package x11proto-dri2-dev. Preparing to unpack .../x11proto-dri2-dev_2.8-2_all.deb ... Unpacking x11proto-dri2-dev (2.8-2) ... Selecting previously unselected package x11proto-gl-dev. Preparing to unpack .../x11proto-gl-dev_1.4.17-1_all.deb ... Unpacking x11proto-gl-dev (1.4.17-1) ... Selecting previously unselected package xorg-sgml-doctools. Preparing to unpack .../xorg-sgml-doctools_1%3a1.11-1_all.deb ... Unpacking xorg-sgml-doctools (1:1.11-1) ... Selecting previously unselected package x11proto-core-dev. Preparing to unpack .../x11proto-core-dev_7.0.28-0ubuntu2_all.deb ... Unpacking x11proto-core-dev (7.0.28-0ubuntu2) ... Selecting previously unselected package libxau-dev:amd64. Preparing to unpack .../libxau-dev_1%3a1.0.8-1_amd64.deb ... Unpacking libxau-dev:amd64 (1:1.0.8-1) ... Selecting previously unselected package libxdmcp-dev:amd64. Preparing to unpack .../libxdmcp-dev_1%3a1.1.2-1.1_amd64.deb ... Unpacking libxdmcp-dev:amd64 (1:1.1.2-1.1) ... Selecting previously unselected package x11proto-input-dev. Preparing to unpack .../x11proto-input-dev_2.3.1-1_all.deb ... Unpacking x11proto-input-dev (2.3.1-1) ... Selecting previously unselected package x11proto-kb-dev. Preparing to unpack .../x11proto-kb-dev_1.0.7-0ubuntu1_all.deb ... Unpacking x11proto-kb-dev (1.0.7-0ubuntu1) ... Selecting previously unselected package xtrans-dev. Preparing to unpack .../xtrans-dev_1.3.5-1_all.deb ... Unpacking xtrans-dev (1.3.5-1) ... Selecting previously unselected package libpthread-stubs0-dev:amd64. Preparing to unpack .../libpthread-stubs0-dev_0.3-4_amd64.deb ... Unpacking libpthread-stubs0-dev:amd64 (0.3-4) ... Selecting previously unselected package libxcb1-dev:amd64. Preparing to unpack .../libxcb1-dev_1.11.1-1ubuntu1_amd64.deb ... Unpacking libxcb1-dev:amd64 (1.11.1-1ubuntu1) ... Selecting previously unselected package libx11-dev:amd64. Preparing to unpack .../libx11-dev_2%3a1.6.3-1ubuntu2_amd64.deb ... Unpacking libx11-dev:amd64 (2:1.6.3-1ubuntu2) ... Selecting previously unselected package x11proto-xext-dev. Preparing to unpack .../x11proto-xext-dev_7.3.0-1_all.deb ... Unpacking x11proto-xext-dev (7.3.0-1) ... Selecting previously unselected package libxext-dev:amd64. Preparing to unpack .../libxext-dev_2%3a1.3.3-1_amd64.deb ... Unpacking libxext-dev:amd64 (2:1.3.3-1) ... Selecting previously unselected package x11proto-xf86vidmode-dev. Preparing to unpack .../x11proto-xf86vidmode-dev_2.3.1-2_all.deb ... Unpacking x11proto-xf86vidmode-dev (2.3.1-2) ... Selecting previously unselected package libxxf86vm-dev:amd64. Preparing to unpack .../libxxf86vm-dev_1%3a1.1.4-1_amd64.deb ... Unpacking libxxf86vm-dev:amd64 (1:1.1.4-1) ... Selecting previously unselected package x11proto-fixes-dev. Preparing to unpack .../x11proto-fixes-dev_1%3a5.0-2ubuntu2_all.deb ... Unpacking x11proto-fixes-dev (1:5.0-2ubuntu2) ... Selecting previously unselected package libxfixes-dev:amd64. Preparing to unpack .../libxfixes-dev_1%3a5.0.1-2_amd64.deb ... Unpacking libxfixes-dev:amd64 (1:5.0.1-2) ... Selecting previously unselected package x11proto-damage-dev. Preparing to unpack .../x11proto-damage-dev_1%3a1.2.1-2_all.deb ... Unpacking x11proto-damage-dev (1:1.2.1-2) ... Selecting previously unselected package libxdamage-dev:amd64. Preparing to unpack .../libxdamage-dev_1%3a1.1.4-2_amd64.deb ... Unpacking libxdamage-dev:amd64 (1:1.1.4-2) ... Selecting previously unselected package libxcb-glx0:amd64. Preparing to unpack .../libxcb-glx0_1.11.1-1ubuntu1_amd64.deb ... Unpacking libxcb-glx0:amd64 (1.11.1-1ubuntu1) ... Selecting previously unselected package libxcb-glx0-dev:amd64. Preparing to unpack .../libxcb-glx0-dev_1.11.1-1ubuntu1_amd64.deb ... Unpacking libxcb-glx0-dev:amd64 (1.11.1-1ubuntu1) ... Selecting previously unselected package libxcb-dri2-0-dev:amd64. Preparing to unpack .../libxcb-dri2-0-dev_1.11.1-1ubuntu1_amd64.deb ... Unpacking libxcb-dri2-0-dev:amd64 (1.11.1-1ubuntu1) ... Selecting previously unselected package libxcb-dri3-0:amd64. Preparing to unpack .../libxcb-dri3-0_1.11.1-1ubuntu1_amd64.deb ... Unpacking libxcb-dri3-0:amd64 (1.11.1-1ubuntu1) ... Selecting previously unselected package libxcb-dri3-dev:amd64. Preparing to unpack .../libxcb-dri3-dev_1.11.1-1ubuntu1_amd64.deb ... Unpacking libxcb-dri3-dev:amd64 (1.11.1-1ubuntu1) ... Selecting previously unselected package libxcb-present0:amd64. Preparing to unpack .../libxcb-present0_1.11.1-1ubuntu1_amd64.deb ... Unpacking libxcb-present0:amd64 (1.11.1-1ubuntu1) ... Selecting previously unselected package libxcb-randr0:amd64. Preparing to unpack .../libxcb-randr0_1.11.1-1ubuntu1_amd64.deb ... Unpacking libxcb-randr0:amd64 (1.11.1-1ubuntu1) ... Selecting previously unselected package libxcb-render0:amd64. Preparing to unpack .../libxcb-render0_1.11.1-1ubuntu1_amd64.deb ... Unpacking libxcb-render0:amd64 (1.11.1-1ubuntu1) ... Selecting previously unselected package libxcb-render0-dev:amd64. Preparing to unpack .../libxcb-render0-dev_1.11.1-1ubuntu1_amd64.deb ... Unpacking libxcb-render0-dev:amd64 (1.11.1-1ubuntu1) ... Selecting previously unselected package libxcb-randr0-dev:amd64. Preparing to unpack .../libxcb-randr0-dev_1.11.1-1ubuntu1_amd64.deb ... Unpacking libxcb-randr0-dev:amd64 (1.11.1-1ubuntu1) ... Selecting previously unselected package libxcb-shape0:amd64. Preparing to unpack .../libxcb-shape0_1.11.1-1ubuntu1_amd64.deb ... Unpacking libxcb-shape0:amd64 (1.11.1-1ubuntu1) ... Selecting previously unselected package libxcb-shape0-dev:amd64. Preparing to unpack .../libxcb-shape0-dev_1.11.1-1ubuntu1_amd64.deb ... Unpacking libxcb-shape0-dev:amd64 (1.11.1-1ubuntu1) ... Selecting previously unselected package libxcb-xfixes0-dev:amd64. Preparing to unpack .../libxcb-xfixes0-dev_1.11.1-1ubuntu1_amd64.deb ... Unpacking libxcb-xfixes0-dev:amd64 (1.11.1-1ubuntu1) ... Selecting previously unselected package libxcb-sync1:amd64. Preparing to unpack .../libxcb-sync1_1.11.1-1ubuntu1_amd64.deb ... Unpacking libxcb-sync1:amd64 (1.11.1-1ubuntu1) ... Selecting previously unselected package libxcb-sync-dev:amd64. Preparing to unpack .../libxcb-sync-dev_1.11.1-1ubuntu1_amd64.deb ... Unpacking libxcb-sync-dev:amd64 (1.11.1-1ubuntu1) ... Selecting previously unselected package libxcb-present-dev:amd64. Preparing to unpack .../libxcb-present-dev_1.11.1-1ubuntu1_amd64.deb ... Unpacking libxcb-present-dev:amd64 (1.11.1-1ubuntu1) ... Selecting previously unselected package libxshmfence-dev:amd64. Preparing to unpack .../libxshmfence-dev_1.2-1_amd64.deb ... Unpacking libxshmfence-dev:amd64 (1.2-1) ... Selecting previously unselected package libx11-xcb-dev:amd64. Preparing to unpack .../libx11-xcb-dev_2%3a1.6.3-1ubuntu2_amd64.deb ... Unpacking libx11-xcb-dev:amd64 (2:1.6.3-1ubuntu2) ... Selecting previously unselected package libmircommon5:amd64. Preparing to unpack .../libmircommon5_0.18.0+16.04.20151216.1-0ubuntu1_amd64.deb ... Unpacking libmircommon5:amd64 (0.18.0+16.04.20151216.1-0ubuntu1) ... Selecting previously unselected package libprotobuf-lite9v5:amd64. Preparing to unpack .../libprotobuf-lite9v5_2.6.1-1.3_amd64.deb ... Unpacking libprotobuf-lite9v5:amd64 (2.6.1-1.3) ... Selecting previously unselected package libmirprotobuf3:amd64. Preparing to unpack .../libmirprotobuf3_0.18.0+16.04.20151216.1-0ubuntu1_amd64.deb ... Unpacking libmirprotobuf3:amd64 (0.18.0+16.04.20151216.1-0ubuntu1) ... Selecting previously unselected package libmirclient9:amd64. Preparing to unpack .../libmirclient9_0.18.0+16.04.20151216.1-0ubuntu1_amd64.deb ... Unpacking libmirclient9:amd64 (0.18.0+16.04.20151216.1-0ubuntu1) ... Selecting previously unselected package zlib1g-dev:amd64. Preparing to unpack .../zlib1g-dev_1%3a1.2.8.dfsg-2ubuntu4_amd64.deb ... Unpacking zlib1g-dev:amd64 (1:1.2.8.dfsg-2ubuntu4) ... Selecting previously unselected package libprotobuf9v5:amd64. Preparing to unpack .../libprotobuf9v5_2.6.1-1.3_amd64.deb ... Unpacking libprotobuf9v5:amd64 (2.6.1-1.3) ... Selecting previously unselected package libprotobuf-dev:amd64. Preparing to unpack .../libprotobuf-dev_2.6.1-1.3_amd64.deb ... Unpacking libprotobuf-dev:amd64 (2.6.1-1.3) ... Selecting previously unselected package libxkbcommon-dev. Preparing to unpack .../libxkbcommon-dev_0.5.0-1ubuntu2_amd64.deb ... Unpacking libxkbcommon-dev (0.5.0-1ubuntu2) ... Selecting previously unselected package libmircommon-dev:amd64. Preparing to unpack .../libmircommon-dev_0.18.0+16.04.20151216.1-0ubuntu1_amd64.deb ... Unpacking libmircommon-dev:amd64 (0.18.0+16.04.20151216.1-0ubuntu1) ... Selecting previously unselected package libmircookie1:amd64. Preparing to unpack .../libmircookie1_0.18.0+16.04.20151216.1-0ubuntu1_amd64.deb ... Unpacking libmircookie1:amd64 (0.18.0+16.04.20151216.1-0ubuntu1) ... Selecting previously unselected package libmircookie-dev:amd64. Preparing to unpack .../libmircookie-dev_0.18.0+16.04.20151216.1-0ubuntu1_amd64.deb ... Unpacking libmircookie-dev:amd64 (0.18.0+16.04.20151216.1-0ubuntu1) ... Selecting previously unselected package libmirclient-dev:amd64. Preparing to unpack .../libmirclient-dev_0.18.0+16.04.20151216.1-0ubuntu1_amd64.deb ... Unpacking libmirclient-dev:amd64 (0.18.0+16.04.20151216.1-0ubuntu1) ... Selecting previously unselected package libwayland-dev. Preparing to unpack .../libwayland-dev_1.9.0-1_amd64.deb ... Unpacking libwayland-dev (1.9.0-1) ... Selecting previously unselected package libegl1-mesa-dev:amd64. Preparing to unpack .../libegl1-mesa-dev_11.0.8-1ubuntu1_amd64.deb ... Unpacking libegl1-mesa-dev:amd64 (11.0.8-1ubuntu1) ... Selecting previously unselected package libfreetype6:amd64. Preparing to unpack .../libfreetype6_2.5.2-4ubuntu2_amd64.deb ... Unpacking libfreetype6:amd64 (2.5.2-4ubuntu2) ... Selecting previously unselected package libpng12-dev:amd64. Preparing to unpack .../libpng12-dev_1.2.54-1ubuntu1_amd64.deb ... Unpacking libpng12-dev:amd64 (1.2.54-1ubuntu1) ... Selecting previously unselected package libfreetype6-dev:amd64. Preparing to unpack .../libfreetype6-dev_2.5.2-4ubuntu2_amd64.deb ... Unpacking libfreetype6-dev:amd64 (2.5.2-4ubuntu2) ... Selecting previously unselected package libglapi-mesa:amd64. Preparing to unpack .../libglapi-mesa_11.0.8-1ubuntu1_amd64.deb ... Unpacking libglapi-mesa:amd64 (11.0.8-1ubuntu1) ... Selecting previously unselected package libgl1-mesa-glx:amd64. Preparing to unpack .../libgl1-mesa-glx_11.0.8-1ubuntu1_amd64.deb ... Unpacking libgl1-mesa-glx:amd64 (11.0.8-1ubuntu1) ... Selecting previously unselected package libgles2-mesa:amd64. Preparing to unpack .../libgles2-mesa_11.0.8-1ubuntu1_amd64.deb ... Unpacking libgles2-mesa:amd64 (11.0.8-1ubuntu1) ... Selecting previously unselected package libgles2-mesa-dev:amd64. Preparing to unpack .../libgles2-mesa-dev_11.0.8-1ubuntu1_amd64.deb ... Unpacking libgles2-mesa-dev:amd64 (11.0.8-1ubuntu1) ... Selecting previously unselected package libglib2.0-bin. Preparing to unpack .../libglib2.0-bin_2.47.3-3_amd64.deb ... Unpacking libglib2.0-bin (2.47.3-3) ... Selecting previously unselected package libpcre16-3:amd64. Preparing to unpack .../libpcre16-3_2%3a8.35-7.1ubuntu1_amd64.deb ... Unpacking libpcre16-3:amd64 (2:8.35-7.1ubuntu1) ... Selecting previously unselected package libpcre32-3:amd64. Preparing to unpack .../libpcre32-3_2%3a8.35-7.1ubuntu1_amd64.deb ... Unpacking libpcre32-3:amd64 (2:8.35-7.1ubuntu1) ... Selecting previously unselected package libpcre3-dev:amd64. Preparing to unpack .../libpcre3-dev_2%3a8.35-7.1ubuntu1_amd64.deb ... Unpacking libpcre3-dev:amd64 (2:8.35-7.1ubuntu1) ... Selecting previously unselected package libglib2.0-dev. Preparing to unpack .../libglib2.0-dev_2.47.3-3_amd64.deb ... Unpacking libglib2.0-dev (2.47.3-3) ... Selecting previously unselected package libglu1-mesa:amd64. Preparing to unpack .../libglu1-mesa_9.0.0-2.1_amd64.deb ... Unpacking libglu1-mesa:amd64 (9.0.0-2.1) ... Selecting previously unselected package mesa-common-dev:amd64. Preparing to unpack .../mesa-common-dev_11.0.8-1ubuntu1_amd64.deb ... Unpacking mesa-common-dev:amd64 (11.0.8-1ubuntu1) ... Selecting previously unselected package libgl1-mesa-dev:amd64. Preparing to unpack .../libgl1-mesa-dev_11.0.8-1ubuntu1_amd64.deb ... Unpacking libgl1-mesa-dev:amd64 (11.0.8-1ubuntu1) ... Selecting previously unselected package libglu1-mesa-dev:amd64. Preparing to unpack .../libglu1-mesa-dev_9.0.0-2.1_amd64.deb ... Unpacking libglu1-mesa-dev:amd64 (9.0.0-2.1) ... Selecting previously unselected package libice-dev:amd64. Preparing to unpack .../libice-dev_2%3a1.0.9-1_amd64.deb ... Unpacking libice-dev:amd64 (2:1.0.9-1) ... Selecting previously unselected package libjpeg-turbo8-dev:amd64. Preparing to unpack .../libjpeg-turbo8-dev_1.4.2-0ubuntu1_amd64.deb ... Unpacking libjpeg-turbo8-dev:amd64 (1.4.2-0ubuntu1) ... Selecting previously unselected package libjpeg8:amd64. Preparing to unpack .../libjpeg8_8c-2ubuntu8_amd64.deb ... Unpacking libjpeg8:amd64 (8c-2ubuntu8) ... Selecting previously unselected package libjpeg8-dev:amd64. Preparing to unpack .../libjpeg8-dev_8c-2ubuntu8_amd64.deb ... Unpacking libjpeg8-dev:amd64 (8c-2ubuntu8) ... Selecting previously unselected package libjpeg-dev:amd64. Preparing to unpack .../libjpeg-dev_8c-2ubuntu8_amd64.deb ... Unpacking libjpeg-dev:amd64 (8c-2ubuntu8) ... Selecting previously unselected package libmodplug1:amd64. Preparing to unpack .../libmodplug1_1%3a0.8.8.5-2_amd64.deb ... Unpacking libmodplug1:amd64 (1:0.8.8.5-2) ... Selecting previously unselected package libmodplug-dev:amd64. Preparing to unpack .../libmodplug-dev_1%3a0.8.8.5-2_amd64.deb ... Unpacking libmodplug-dev:amd64 (1:0.8.8.5-2) ... Selecting previously unselected package libode4. Preparing to unpack .../libode4_2%3a0.13.1+git20150309-2_amd64.deb ... Unpacking libode4 (2:0.13.1+git20150309-2) ... Selecting previously unselected package libode-dev. Preparing to unpack .../libode-dev_2%3a0.13.1+git20150309-2_amd64.deb ... Unpacking libode-dev (2:0.13.1+git20150309-2) ... Selecting previously unselected package libogg-dev:amd64. Preparing to unpack .../libogg-dev_1.3.2-1_amd64.deb ... Unpacking libogg-dev:amd64 (1.3.2-1) ... Selecting previously unselected package libpulse-mainloop-glib0:amd64. Preparing to unpack .../libpulse-mainloop-glib0_1%3a7.1-1ubuntu3_amd64.deb ... Unpacking libpulse-mainloop-glib0:amd64 (1:7.1-1ubuntu3) ... Selecting previously unselected package libpulse-dev:amd64. Preparing to unpack .../libpulse-dev_1%3a7.1-1ubuntu3_amd64.deb ... Unpacking libpulse-dev:amd64 (1:7.1-1ubuntu3) ... Selecting previously unselected package x11proto-render-dev. Preparing to unpack .../x11proto-render-dev_2%3a0.11.1-2_all.deb ... Unpacking x11proto-render-dev (2:0.11.1-2) ... Selecting previously unselected package libxrender-dev:amd64. Preparing to unpack .../libxrender-dev_1%3a0.9.9-0ubuntu1_amd64.deb ... Unpacking libxrender-dev:amd64 (1:0.9.9-0ubuntu1) ... Selecting previously unselected package libxcursor-dev:amd64. Preparing to unpack .../libxcursor-dev_1%3a1.1.14-1_amd64.deb ... Unpacking libxcursor-dev:amd64 (1:1.1.14-1) ... Selecting previously unselected package libxi-dev. Preparing to unpack .../libxi-dev_2%3a1.7.5-1_amd64.deb ... Unpacking libxi-dev (2:1.7.5-1) ... Selecting previously unselected package x11proto-xinerama-dev. Preparing to unpack .../x11proto-xinerama-dev_1.2.1-2_all.deb ... Unpacking x11proto-xinerama-dev (1.2.1-2) ... Selecting previously unselected package libxinerama-dev:amd64. Preparing to unpack .../libxinerama-dev_2%3a1.1.3-1_amd64.deb ... Unpacking libxinerama-dev:amd64 (2:1.1.3-1) ... Selecting previously unselected package x11proto-randr-dev. Preparing to unpack .../x11proto-randr-dev_1.5.0-1_all.deb ... Unpacking x11proto-randr-dev (1.5.0-1) ... Selecting previously unselected package libxrandr-dev:amd64. Preparing to unpack .../libxrandr-dev_2%3a1.5.0-1_amd64.deb ... Unpacking libxrandr-dev:amd64 (2:1.5.0-1) ... Selecting previously unselected package x11proto-scrnsaver-dev. Preparing to unpack .../x11proto-scrnsaver-dev_1.2.2-1_all.deb ... Unpacking x11proto-scrnsaver-dev (1.2.2-1) ... Selecting previously unselected package libxss-dev:amd64. Preparing to unpack .../libxss-dev_1%3a1.2.2-1_amd64.deb ... Unpacking libxss-dev:amd64 (1:1.2.2-1) ... Selecting previously unselected package libxt6:amd64. Preparing to unpack .../libxt6_1%3a1.1.5-0ubuntu1_amd64.deb ... Unpacking libxt6:amd64 (1:1.1.5-0ubuntu1) ... Selecting previously unselected package libsm-dev:amd64. Preparing to unpack .../libsm-dev_2%3a1.2.2-1_amd64.deb ... Unpacking libsm-dev:amd64 (2:1.2.2-1) ... Selecting previously unselected package libxt-dev:amd64. Preparing to unpack .../libxt-dev_1%3a1.1.5-0ubuntu1_amd64.deb ... Unpacking libxt-dev:amd64 (1:1.1.5-0ubuntu1) ... Selecting previously unselected package x11proto-video-dev. Preparing to unpack .../x11proto-video-dev_2.3.2-1_all.deb ... Unpacking x11proto-video-dev (2.3.2-1) ... Selecting previously unselected package libxv-dev:amd64. Preparing to unpack .../libxv-dev_2%3a1.0.10-1_amd64.deb ... Unpacking libxv-dev:amd64 (2:1.0.10-1) ... Selecting previously unselected package libsdl2-dev. Preparing to unpack .../libsdl2-dev_2.0.2+dfsg1-6ubuntu2_amd64.deb ... Unpacking libsdl2-dev (2.0.2+dfsg1-6ubuntu2) ... Selecting previously unselected package libtheora0:amd64. Preparing to unpack .../libtheora0_1.1.1+dfsg.1-7_amd64.deb ... Unpacking libtheora0:amd64 (1.1.1+dfsg.1-7) ... Selecting previously unselected package libtheora-dev:amd64. Preparing to unpack .../libtheora-dev_1.1.1+dfsg.1-7_amd64.deb ... Unpacking libtheora-dev:amd64 (1.1.1+dfsg.1-7) ... Selecting previously unselected package libvorbisfile3:amd64. Preparing to unpack .../libvorbisfile3_1.3.4-3_amd64.deb ... Unpacking libvorbisfile3:amd64 (1.3.4-3) ... Selecting previously unselected package libvorbis-dev:amd64. Preparing to unpack .../libvorbis-dev_1.3.4-3_amd64.deb ... Unpacking libvorbis-dev:amd64 (1.3.4-3) ... Selecting previously unselected package sbuild-build-depends-darkplaces-dummy. Preparing to unpack .../sbuild-build-depends-darkplaces-dummy.deb ... Unpacking sbuild-build-depends-darkplaces-dummy (0.invalid.0) ... Processing triggers for libc-bin (2.21-0ubuntu5) ... Setting up libjson-c2:amd64 (0.11-4ubuntu2) ... Setting up libmpdec2:amd64 (2.4.1-1) ... Setting up mime-support (3.59ubuntu1) ... Setting up libpython3.5-stdlib:amd64 (3.5.1-3) ... Setting up python3.5 (3.5.1-3) ... Setting up libpython3-stdlib:amd64 (3.5.0-2) ... Setting up libxau6:amd64 (1:1.0.8-1) ... Setting up libxdmcp6:amd64 (1:1.1.2-1.1) ... Setting up libxcb1:amd64 (1.11.1-1ubuntu1) ... Setting up libx11-data (2:1.6.3-1ubuntu2) ... Setting up libx11-6:amd64 (2:1.6.3-1ubuntu2) ... Setting up libxext6:amd64 (2:1.3.3-1) ... Setting up groff-base (1.22.3-5) ... Setting up bsdmainutils (9.0.6ubuntu1) ... update-alternatives: using /usr/bin/bsd-write to provide /usr/bin/write (write) in auto mode update-alternatives: using /usr/bin/bsd-from to provide /usr/bin/from (from) in auto mode Setting up libpipeline1:amd64 (1.4.1-2) ... Setting up man-db (2.7.5-1) ... Not building database; man-db/auto-update is not 'true'. Setting up libasyncns0:amd64 (0.8-5build1) ... Setting up x11-common (1:7.7+12ubuntu1) ... update-rc.d: warning: start and stop actions are no longer supported; falling back to defaults Running in chroot, ignoring request. invoke-rc.d: policy-rc.d denied execution of start. Setting up libice6:amd64 (2:1.0.9-1) ... Setting up libjpeg-turbo8:amd64 (1.4.2-0ubuntu1) ... Setting up libogg0:amd64 (1.3.2-1) ... Setting up libpcrecpp0v5:amd64 (2:8.35-7.1ubuntu1) ... Setting up libasound2-data (1.1.0-0ubuntu1) ... Setting up libasound2:amd64 (1.1.0-0ubuntu1) ... Setting up libflac8:amd64 (1.3.1-4) ... Setting up libvorbis0a:amd64 (1.3.4-3) ... Setting up libvorbisenc2:amd64 (1.3.4-3) ... Setting up libsndfile1:amd64 (1.0.25-10) ... Setting up libwrap0:amd64 (7.6.q-25) ... Setting up libpulse0:amd64 (1:7.1-1ubuntu3) ... Setting up libwayland-client0:amd64 (1.9.0-1) ... Setting up libwayland-cursor0:amd64 (1.9.0-1) ... Setting up libdrm2:amd64 (2.4.65-3) ... Setting up libwayland-server0:amd64 (1.9.0-1) ... Setting up libdrm-amdgpu1:amd64 (2.4.65-3) ... Setting up libpciaccess0:amd64 (0.13.4-1) ... Setting up libdrm-intel1:amd64 (2.4.65-3) ... Setting up libdrm-nouveau2:amd64 (2.4.65-3) ... Setting up libdrm-radeon1:amd64 (2.4.65-3) ... Setting up libelf1:amd64 (0.164-1) ... Setting up libbsd0:amd64 (0.8.1-1) ... Setting up libedit2:amd64 (3.1-20150325-1ubuntu1) ... Setting up libllvm3.6v5:amd64 (1:3.6.2-3ubuntu1) ... Setting up libgl1-mesa-dri:amd64 (11.0.8-1ubuntu1) ... Setting up libgbm1:amd64 (11.0.8-1ubuntu1) ... Setting up libx11-xcb1:amd64 (2:1.6.3-1ubuntu2) ... Setting up libxcb-dri2-0:amd64 (1.11.1-1ubuntu1) ... Setting up libxcb-xfixes0:amd64 (1.11.1-1ubuntu1) ... Setting up libegl1-mesa:amd64 (11.0.8-1ubuntu1) ... update-alternatives: using /usr/lib/x86_64-linux-gnu/mesa-egl/ld.so.conf to provide /etc/ld.so.conf.d/x86_64-linux-gnu_EGL.conf (x86_64-linux-gnu_egl_conf) in auto mode Setting up libwayland-egl1-mesa:amd64 (11.0.8-1ubuntu1) ... Setting up libxfixes3:amd64 (1:5.0.1-2) ... Setting up libxrender1:amd64 (1:0.9.9-0ubuntu1) ... Setting up libxcursor1:amd64 (1:1.1.14-1) ... Setting up libxi6:amd64 (2:1.7.5-1) ... Setting up libxinerama1:amd64 (2:1.1.3-1) ... Setting up xkb-data (2.12-1ubuntu1) ... Setting up libxkbcommon0:amd64 (0.5.0-1ubuntu2) ... Setting up libxrandr2:amd64 (2:1.5.0-1) ... Setting up libxss1:amd64 (1:1.2.2-1) ... Setting up libxxf86vm1:amd64 (1:1.1.4-1) ... Setting up libsdl2-2.0-0:amd64 (2.0.2+dfsg1-6ubuntu2) ... Setting up libsm6:amd64 (2:1.2.2-1) ... Setting up libudev-dev:amd64 (228-3ubuntu1) ... Setting up libunistring0:amd64 (0.9.3-5.2ubuntu1) ... Setting up libxdamage1:amd64 (1:1.1.4-2) ... Setting up libxshmfence1:amd64 (1.2-1) ... Setting up libxv1:amd64 (2:1.0.10-1) ... Setting up libpython2.7-stdlib:amd64 (2.7.11-2) ... Setting up python2.7 (2.7.11-2) ... Setting up libpython-stdlib:amd64 (2.7.11-1) ... Setting up python (2.7.11-1) ... Setting up libmagic1:amd64 (1:5.25-2ubuntu1) ... Setting up file (1:5.25-2ubuntu1) ... Setting up distro-info-data (0.28) ... Setting up libasprintf0v5:amd64 (0.19.6-1ubuntu1) ... Setting up gettext-base (0.19.6-1ubuntu1) ... Setting up libglib2.0-0:amd64 (2.47.3-3) ... No schema files found: doing nothing. Setting up libglib2.0-data (2.47.3-3) ... Setting up libicu55:amd64 (55.1-6ubuntu1) ... Setting up libxml2:amd64 (2.9.2+zdfsg1-4ubuntu2) ... Setting up libcroco3:amd64 (0.6.11-1) ... Setting up gettext (0.19.6-1ubuntu1) ... Setting up intltool-debian (0.35.0+20060710.4) ... Setting up po-debconf (1.0.19) ... Setting up libarchive-zip-perl (1.56-2) ... Setting up libfile-stripnondeterminism-perl (0.014-1) ... Setting up libtimedate-perl (2.3000-2) ... Setting up libasound2-dev:amd64 (1.1.0-0ubuntu1) ... Setting up libboost-system1.58.0:amd64 (1.58.0+dfsg-4.1ubuntu1) ... Setting up libboost-filesystem1.58.0:amd64 (1.58.0+dfsg-4.1ubuntu1) ... Setting up libcurl4-gnutls-dev:amd64 (7.45.0-1ubuntu1) ... Setting up pkg-config (0.29-2ubuntu2) ... Setting up libdbus-1-dev:amd64 (1.10.6-1ubuntu1) ... Setting up libdrm-dev:amd64 (2.4.65-3) ... Setting up x11proto-dri2-dev (2.8-2) ... Setting up x11proto-gl-dev (1.4.17-1) ... Setting up xorg-sgml-doctools (1:1.11-1) ... Setting up x11proto-core-dev (7.0.28-0ubuntu2) ... Setting up libxau-dev:amd64 (1:1.0.8-1) ... Setting up libxdmcp-dev:amd64 (1:1.1.2-1.1) ... Setting up x11proto-input-dev (2.3.1-1) ... Setting up x11proto-kb-dev (1.0.7-0ubuntu1) ... Setting up xtrans-dev (1.3.5-1) ... Setting up libpthread-stubs0-dev:amd64 (0.3-4) ... Setting up libxcb1-dev:amd64 (1.11.1-1ubuntu1) ... Setting up libx11-dev:amd64 (2:1.6.3-1ubuntu2) ... Setting up x11proto-xext-dev (7.3.0-1) ... Setting up libxext-dev:amd64 (2:1.3.3-1) ... Setting up x11proto-xf86vidmode-dev (2.3.1-2) ... Setting up libxxf86vm-dev:amd64 (1:1.1.4-1) ... Setting up x11proto-fixes-dev (1:5.0-2ubuntu2) ... Setting up libxfixes-dev:amd64 (1:5.0.1-2) ... Setting up x11proto-damage-dev (1:1.2.1-2) ... Setting up libxdamage-dev:amd64 (1:1.1.4-2) ... Setting up libxcb-glx0:amd64 (1.11.1-1ubuntu1) ... Setting up libxcb-glx0-dev:amd64 (1.11.1-1ubuntu1) ... Setting up libxcb-dri2-0-dev:amd64 (1.11.1-1ubuntu1) ... Setting up libxcb-dri3-0:amd64 (1.11.1-1ubuntu1) ... Setting up libxcb-dri3-dev:amd64 (1.11.1-1ubuntu1) ... Setting up libxcb-present0:amd64 (1.11.1-1ubuntu1) ... Setting up libxcb-randr0:amd64 (1.11.1-1ubuntu1) ... Setting up libxcb-render0:amd64 (1.11.1-1ubuntu1) ... Setting up libxcb-render0-dev:amd64 (1.11.1-1ubuntu1) ... Setting up libxcb-randr0-dev:amd64 (1.11.1-1ubuntu1) ... Setting up libxcb-shape0:amd64 (1.11.1-1ubuntu1) ... Setting up libxcb-shape0-dev:amd64 (1.11.1-1ubuntu1) ... Setting up libxcb-xfixes0-dev:amd64 (1.11.1-1ubuntu1) ... Setting up libxcb-sync1:amd64 (1.11.1-1ubuntu1) ... Setting up libxcb-sync-dev:amd64 (1.11.1-1ubuntu1) ... Setting up libxcb-present-dev:amd64 (1.11.1-1ubuntu1) ... Setting up libxshmfence-dev:amd64 (1.2-1) ... Setting up libx11-xcb-dev:amd64 (2:1.6.3-1ubuntu2) ... Setting up libmircommon5:amd64 (0.18.0+16.04.20151216.1-0ubuntu1) ... Setting up libprotobuf-lite9v5:amd64 (2.6.1-1.3) ... Setting up libmirprotobuf3:amd64 (0.18.0+16.04.20151216.1-0ubuntu1) ... Setting up libmirclient9:amd64 (0.18.0+16.04.20151216.1-0ubuntu1) ... Setting up zlib1g-dev:amd64 (1:1.2.8.dfsg-2ubuntu4) ... Setting up libprotobuf9v5:amd64 (2.6.1-1.3) ... Setting up libprotobuf-dev:amd64 (2.6.1-1.3) ... Setting up libxkbcommon-dev (0.5.0-1ubuntu2) ... Setting up libmircommon-dev:amd64 (0.18.0+16.04.20151216.1-0ubuntu1) ... Setting up libmircookie1:amd64 (0.18.0+16.04.20151216.1-0ubuntu1) ... Setting up libmircookie-dev:amd64 (0.18.0+16.04.20151216.1-0ubuntu1) ... Setting up libmirclient-dev:amd64 (0.18.0+16.04.20151216.1-0ubuntu1) ... Setting up libwayland-dev (1.9.0-1) ... Setting up libegl1-mesa-dev:amd64 (11.0.8-1ubuntu1) ... Setting up libfreetype6:amd64 (2.5.2-4ubuntu2) ... Setting up libpng12-dev:amd64 (1.2.54-1ubuntu1) ... Setting up libfreetype6-dev:amd64 (2.5.2-4ubuntu2) ... Setting up libglapi-mesa:amd64 (11.0.8-1ubuntu1) ... Setting up libgl1-mesa-glx:amd64 (11.0.8-1ubuntu1) ... update-alternatives: using /usr/lib/x86_64-linux-gnu/mesa/ld.so.conf to provide /etc/ld.so.conf.d/x86_64-linux-gnu_GL.conf (x86_64-linux-gnu_gl_conf) in auto mode Setting up libgles2-mesa:amd64 (11.0.8-1ubuntu1) ... Setting up libgles2-mesa-dev:amd64 (11.0.8-1ubuntu1) ... Setting up libglib2.0-bin (2.47.3-3) ... Setting up libpcre16-3:amd64 (2:8.35-7.1ubuntu1) ... Setting up libpcre32-3:amd64 (2:8.35-7.1ubuntu1) ... Setting up libpcre3-dev:amd64 (2:8.35-7.1ubuntu1) ... Setting up libglib2.0-dev (2.47.3-3) ... Setting up libglu1-mesa:amd64 (9.0.0-2.1) ... Setting up mesa-common-dev:amd64 (11.0.8-1ubuntu1) ... Setting up libgl1-mesa-dev:amd64 (11.0.8-1ubuntu1) ... Setting up libglu1-mesa-dev:amd64 (9.0.0-2.1) ... Setting up libice-dev:amd64 (2:1.0.9-1) ... Setting up libjpeg-turbo8-dev:amd64 (1.4.2-0ubuntu1) ... Setting up libjpeg8:amd64 (8c-2ubuntu8) ... Setting up libjpeg8-dev:amd64 (8c-2ubuntu8) ... Setting up libjpeg-dev:amd64 (8c-2ubuntu8) ... Setting up libmodplug1:amd64 (1:0.8.8.5-2) ... Setting up libmodplug-dev:amd64 (1:0.8.8.5-2) ... Setting up libode4 (2:0.13.1+git20150309-2) ... Setting up libode-dev (2:0.13.1+git20150309-2) ... Setting up libogg-dev:amd64 (1.3.2-1) ... Setting up libpulse-mainloop-glib0:amd64 (1:7.1-1ubuntu3) ... Setting up libpulse-dev:amd64 (1:7.1-1ubuntu3) ... Setting up x11proto-render-dev (2:0.11.1-2) ... Setting up libxrender-dev:amd64 (1:0.9.9-0ubuntu1) ... Setting up libxcursor-dev:amd64 (1:1.1.14-1) ... Setting up libxi-dev (2:1.7.5-1) ... Setting up x11proto-xinerama-dev (1.2.1-2) ... Setting up libxinerama-dev:amd64 (2:1.1.3-1) ... Setting up x11proto-randr-dev (1.5.0-1) ... Setting up libxrandr-dev:amd64 (2:1.5.0-1) ... Setting up x11proto-scrnsaver-dev (1.2.2-1) ... Setting up libxss-dev:amd64 (1:1.2.2-1) ... Setting up libxt6:amd64 (1:1.1.5-0ubuntu1) ... Setting up libsm-dev:amd64 (2:1.2.2-1) ... Setting up libxt-dev:amd64 (1:1.1.5-0ubuntu1) ... Setting up x11proto-video-dev (2.3.2-1) ... Setting up libxv-dev:amd64 (2:1.0.10-1) ... Setting up libsdl2-dev (2.0.2+dfsg1-6ubuntu2) ... Setting up libtheora0:amd64 (1.1.1+dfsg.1-7) ... Setting up libtheora-dev:amd64 (1.1.1+dfsg.1-7) ... Setting up libvorbisfile3:amd64 (1.3.4-3) ... Setting up libvorbis-dev:amd64 (1.3.4-3) ... Setting up dh-python (2.20151103ubuntu1) ... Setting up python3 (3.5.0-2) ... Setting up lsb-release (9.20150917ubuntu1) ... Setting up debhelper (9.20151225ubuntu1) ... Setting up sbuild-build-depends-darkplaces-dummy (0.invalid.0) ... Setting up dh-strip-nondeterminism (0.014-1) ... Processing triggers for libc-bin (2.21-0ubuntu5) ... Processing triggers for systemd (228-3ubuntu1) ... ┌──────────────────────────────────────────────────────────────────────────────┐ │ Build environment │ └──────────────────────────────────────────────────────────────────────────────┘ Kernel: Linux 3.13.0-74-generic amd64 (x86_64) Toolchain package versions: binutils_2.25.90.20160101-1ubuntu2 dpkg-dev_1.18.3ubuntu1 g++-5_5.3.1-5ubuntu2 g++-6_6-20160109-1ubuntu1 gcc-5_5.3.1-5ubuntu2 gcc-6_6-20160109-1ubuntu1 libc6-dev_2.21-0ubuntu5 libstdc++-5-dev_5.3.1-5ubuntu2 libstdc++-6-dev_6-20160109-1ubuntu1 libstdc++6_6-20160109-1ubuntu1 linux-libc-dev_4.3.0-5.16 Package versions: adduser_3.113+nmu3ubuntu4 advancecomp_1.20-1 apt_1.1.10 apt-transport-https_1.1.10 base-files_9.4ubuntu3 base-passwd_3.5.39 bash_4.3-14ubuntu1 binutils_2.25.90.20160101-1ubuntu2 bsdmainutils_9.0.6ubuntu1 bsdutils_1:2.27.1-1ubuntu3 build-essential_12.1ubuntu2 bzip2_1.0.6-8 ca-certificates_20150426ubuntu1 coreutils_8.23-4ubuntu2 cpp_4:6-20160101-1ubuntu4 cpp-5_5.3.1-5ubuntu2 cpp-6_6-20160109-1ubuntu1 dash_0.5.7-4ubuntu2 debconf_1.5.58ubuntu1 debhelper_9.20151225ubuntu1 debianutils_4.5.1 dh-python_2.20151103ubuntu1 dh-strip-nondeterminism_0.014-1 diffutils_1:3.3-3 distro-info-data_0.28 dmsetup_2:1.02.110-1ubuntu2 dpkg_1.18.3ubuntu1 dpkg-dev_1.18.3ubuntu1 e2fslibs_1.42.13-1ubuntu1 e2fsprogs_1.42.13-1ubuntu1 fakeroot_1.20.2-1ubuntu1 file_1:5.25-2ubuntu1 findutils_4.4.2-10 g++_4:6-20160101-1ubuntu4 g++-5_5.3.1-5ubuntu2 g++-6_6-20160109-1ubuntu1 gcc_4:6-20160101-1ubuntu4 gcc-5_5.3.1-5ubuntu2 gcc-5-base_5.3.1-5ubuntu2 gcc-6_6-20160109-1ubuntu1 gcc-6-base_6-20160109-1ubuntu1 gettext_0.19.6-1ubuntu1 gettext-base_0.19.6-1ubuntu1 gnupg_1.4.19-6ubuntu1 gpgv_1.4.19-6ubuntu1 grep_2.21-2 groff-base_1.22.3-5 gzip_1.6-4ubuntu1 hostname_3.16ubuntu2 init_1.24ubuntu2 initscripts_2.88dsf-59.2ubuntu3 insserv_1.14.0-5ubuntu3 intltool-debian_0.35.0+20060710.4 libacl1_2.2.52-2 libapparmor1_2.10-0ubuntu10 libapt-pkg4.16_1.0.10.2ubuntu1 libapt-pkg5.0_1.1.10 libarchive-zip-perl_1.56-2 libasan2_5.3.1-5ubuntu2 libasan3_6-20160109-1ubuntu1 libasn1-8-heimdal_1.6~rc2+dfsg-10ubuntu1 libasound2_1.1.0-0ubuntu1 libasound2-data_1.1.0-0ubuntu1 libasound2-dev_1.1.0-0ubuntu1 libasprintf0v5_0.19.6-1ubuntu1 libasyncns0_0.8-5build1 libatomic1_6-20160109-1ubuntu1 libattr1_1:2.4.47-2 libaudit-common_1:2.4.4-4ubuntu1 libaudit1_1:2.4.4-4ubuntu1 libblkid1_2.27.1-1ubuntu3 libboost-filesystem1.58.0_1.58.0+dfsg-4.1ubuntu1 libboost-system1.58.0_1.58.0+dfsg-4.1ubuntu1 libbsd0_0.8.1-1 libbz2-1.0_1.0.6-8 libc-bin_2.21-0ubuntu5 libc-dev-bin_2.21-0ubuntu5 libc6_2.21-0ubuntu5 libc6-dev_2.21-0ubuntu5 libcap2_1:2.24-12 libcap2-bin_1:2.24-12 libcc1-0_6-20160109-1ubuntu1 libcilkrts5_6-20160109-1ubuntu1 libcomerr2_1.42.13-1ubuntu1 libcroco3_0.6.11-1 libcryptsetup4_2:1.6.6-5ubuntu2 libcurl3-gnutls_7.45.0-1ubuntu1 libcurl4-gnutls-dev_7.45.0-1ubuntu1 libdb5.3_5.3.28-11 libdbus-1-3_1.10.6-1ubuntu1 libdbus-1-dev_1.10.6-1ubuntu1 libdebconfclient0_0.198ubuntu1 libdevmapper1.02.1_2:1.02.110-1ubuntu2 libdpkg-perl_1.18.3ubuntu1 libdrm-amdgpu1_2.4.65-3 libdrm-dev_2.4.65-3 libdrm-intel1_2.4.65-3 libdrm-nouveau2_2.4.65-3 libdrm-radeon1_2.4.65-3 libdrm2_2.4.65-3 libedit2_3.1-20150325-1ubuntu1 libegl1-mesa_11.0.8-1ubuntu1 libegl1-mesa-dev_11.0.8-1ubuntu1 libelf1_0.164-1 libexpat1_2.1.0-7 libfakeroot_1.20.2-1ubuntu1 libfdisk1_2.27.1-1ubuntu3 libffi6_3.2.1-4 libfile-stripnondeterminism-perl_0.014-1 libflac8_1.3.1-4 libfreetype6_2.5.2-4ubuntu2 libfreetype6-dev_2.5.2-4ubuntu2 libgbm1_11.0.8-1ubuntu1 libgcc-5-dev_5.3.1-5ubuntu2 libgcc-6-dev_6-20160109-1ubuntu1 libgcc1_1:6-20160109-1ubuntu1 libgcrypt20_1.6.4-4 libgdbm3_1.8.3-13.1 libgl1-mesa-dev_11.0.8-1ubuntu1 libgl1-mesa-dri_11.0.8-1ubuntu1 libgl1-mesa-glx_11.0.8-1ubuntu1 libglapi-mesa_11.0.8-1ubuntu1 libgles2-mesa_11.0.8-1ubuntu1 libgles2-mesa-dev_11.0.8-1ubuntu1 libglib2.0-0_2.47.3-3 libglib2.0-bin_2.47.3-3 libglib2.0-data_2.47.3-3 libglib2.0-dev_2.47.3-3 libglu1-mesa_9.0.0-2.1 libglu1-mesa-dev_9.0.0-2.1 libgmp10_2:6.1.0+dfsg-2 libgnutls-deb0-28_3.3.18-1ubuntu1 libgomp1_6-20160109-1ubuntu1 libgpg-error0_1.21-1 libgssapi-krb5-2_1.13.2+dfsg-4 libgssapi3-heimdal_1.6~rc2+dfsg-10ubuntu1 libhcrypto4-heimdal_1.6~rc2+dfsg-10ubuntu1 libheimbase1-heimdal_1.6~rc2+dfsg-10ubuntu1 libheimntlm0-heimdal_1.6~rc2+dfsg-10ubuntu1 libhogweed4_3.1.1-4 libhx509-5-heimdal_1.6~rc2+dfsg-10ubuntu1 libice-dev_2:1.0.9-1 libice6_2:1.0.9-1 libicu55_55.1-6ubuntu1 libidn11_1.32-3ubuntu1 libisl13_0.14-2 libisl15_0.15-3 libitm1_6-20160109-1ubuntu1 libjpeg-dev_8c-2ubuntu8 libjpeg-turbo8_1.4.2-0ubuntu1 libjpeg-turbo8-dev_1.4.2-0ubuntu1 libjpeg8_8c-2ubuntu8 libjpeg8-dev_8c-2ubuntu8 libjson-c2_0.11-4ubuntu2 libk5crypto3_1.13.2+dfsg-4 libkeyutils1_1.5.9-8ubuntu1 libkmod2_21-1ubuntu1 libkrb5-26-heimdal_1.6~rc2+dfsg-10ubuntu1 libkrb5-3_1.13.2+dfsg-4 libkrb5support0_1.13.2+dfsg-4 libldap-2.4-2_2.4.41+dfsg-1ubuntu3 libllvm3.6v5_1:3.6.2-3ubuntu1 liblockfile-bin_1.09-6ubuntu1 liblockfile1_1.09-6ubuntu1 liblsan0_6-20160109-1ubuntu1 liblzma5_5.1.1alpha+20120614-2ubuntu2 libmagic1_1:5.25-2ubuntu1 libmirclient-dev_0.18.0+16.04.20151216.1-0ubuntu1 libmirclient9_0.18.0+16.04.20151216.1-0ubuntu1 libmircommon-dev_0.18.0+16.04.20151216.1-0ubuntu1 libmircommon5_0.18.0+16.04.20151216.1-0ubuntu1 libmircookie-dev_0.18.0+16.04.20151216.1-0ubuntu1 libmircookie1_0.18.0+16.04.20151216.1-0ubuntu1 libmirprotobuf3_0.18.0+16.04.20151216.1-0ubuntu1 libmodplug-dev_1:0.8.8.5-2 libmodplug1_1:0.8.8.5-2 libmount1_2.27.1-1ubuntu3 libmpc3_1.0.3-1 libmpdec2_2.4.1-1 libmpfr4_3.1.3-2 libmpx0_6-20160109-1ubuntu1 libncurses5_6.0+20151024-2ubuntu1 libncursesw5_6.0+20151024-2ubuntu1 libnettle6_3.1.1-4 libnih-dbus1_1.0.3-4.3ubuntu1 libnih1_1.0.3-4.3ubuntu1 libode-dev_2:0.13.1+git20150309-2 libode4_2:0.13.1+git20150309-2 libogg-dev_1.3.2-1 libogg0_1.3.2-1 libp11-kit0_0.23.2-3 libpam-modules_1.1.8-3.1ubuntu3 libpam-modules-bin_1.1.8-3.1ubuntu3 libpam-runtime_1.1.8-3.1ubuntu3 libpam0g_1.1.8-3.1ubuntu3 libpciaccess0_0.13.4-1 libpcre16-3_2:8.35-7.1ubuntu1 libpcre3_2:8.35-7.1ubuntu1 libpcre3-dev_2:8.35-7.1ubuntu1 libpcre32-3_2:8.35-7.1ubuntu1 libpcrecpp0v5_2:8.35-7.1ubuntu1 libperl5.22_5.22.1-3 libpipeline1_1.4.1-2 libpng12-0_1.2.54-1ubuntu1 libpng12-dev_1.2.54-1ubuntu1 libprocps3_1:3.3.9-1ubuntu8 libprocps4_2:3.3.10-4ubuntu1 libprotobuf-dev_2.6.1-1.3 libprotobuf-lite9v5_2.6.1-1.3 libprotobuf9v5_2.6.1-1.3 libpthread-stubs0-dev_0.3-4 libpulse-dev_1:7.1-1ubuntu3 libpulse-mainloop-glib0_1:7.1-1ubuntu3 libpulse0_1:7.1-1ubuntu3 libpython-stdlib_2.7.11-1 libpython2.7-minimal_2.7.11-2 libpython2.7-stdlib_2.7.11-2 libpython3-stdlib_3.5.0-2 libpython3.5-minimal_3.5.1-3 libpython3.5-stdlib_3.5.1-3 libquadmath0_6-20160109-1ubuntu1 libreadline6_6.3-8ubuntu1 libroken18-heimdal_1.6~rc2+dfsg-10ubuntu1 librtmp1_2.4+20150115.gita107cef-1build1 libsasl2-2_2.1.26.dfsg1-14 libsasl2-modules-db_2.1.26.dfsg1-14 libsdl2-2.0-0_2.0.2+dfsg1-6ubuntu2 libsdl2-dev_2.0.2+dfsg1-6ubuntu2 libseccomp2_2.2.3-2ubuntu3 libselinux1_2.4-3 libsemanage-common_2.3-1build2 libsemanage1_2.3-1build2 libsepol1_2.4-2 libslang2_2.3.0-2ubuntu1 libsm-dev_2:1.2.2-1 libsm6_2:1.2.2-1 libsmartcols1_2.27.1-1ubuntu3 libsndfile1_1.0.25-10 libsqlite3-0_3.10.0-1 libss2_1.42.13-1ubuntu1 libssl1.0.0_1.0.2e-1ubuntu1 libstdc++-5-dev_5.3.1-5ubuntu2 libstdc++-6-dev_6-20160109-1ubuntu1 libstdc++6_6-20160109-1ubuntu1 libsystemd0_228-3ubuntu1 libtasn1-6_4.7-3 libtheora-dev_1.1.1+dfsg.1-7 libtheora0_1.1.1+dfsg.1-7 libtimedate-perl_2.3000-2 libtinfo5_6.0+20151024-2ubuntu1 libtsan0_6-20160109-1ubuntu1 libubsan0_6-20160109-1ubuntu1 libudev-dev_228-3ubuntu1 libudev1_228-3ubuntu1 libunistring0_0.9.3-5.2ubuntu1 libusb-0.1-4_2:0.1.12-28 libustr-1.0-1_1.0.4-5 libuuid1_2.27.1-1ubuntu3 libvorbis-dev_1.3.4-3 libvorbis0a_1.3.4-3 libvorbisenc2_1.3.4-3 libvorbisfile3_1.3.4-3 libwayland-client0_1.9.0-1 libwayland-cursor0_1.9.0-1 libwayland-dev_1.9.0-1 libwayland-egl1-mesa_11.0.8-1ubuntu1 libwayland-server0_1.9.0-1 libwind0-heimdal_1.6~rc2+dfsg-10ubuntu1 libwrap0_7.6.q-25 libx11-6_2:1.6.3-1ubuntu2 libx11-data_2:1.6.3-1ubuntu2 libx11-dev_2:1.6.3-1ubuntu2 libx11-xcb-dev_2:1.6.3-1ubuntu2 libx11-xcb1_2:1.6.3-1ubuntu2 libxau-dev_1:1.0.8-1 libxau6_1:1.0.8-1 libxcb-dri2-0_1.11.1-1ubuntu1 libxcb-dri2-0-dev_1.11.1-1ubuntu1 libxcb-dri3-0_1.11.1-1ubuntu1 libxcb-dri3-dev_1.11.1-1ubuntu1 libxcb-glx0_1.11.1-1ubuntu1 libxcb-glx0-dev_1.11.1-1ubuntu1 libxcb-present-dev_1.11.1-1ubuntu1 libxcb-present0_1.11.1-1ubuntu1 libxcb-randr0_1.11.1-1ubuntu1 libxcb-randr0-dev_1.11.1-1ubuntu1 libxcb-render0_1.11.1-1ubuntu1 libxcb-render0-dev_1.11.1-1ubuntu1 libxcb-shape0_1.11.1-1ubuntu1 libxcb-shape0-dev_1.11.1-1ubuntu1 libxcb-sync-dev_1.11.1-1ubuntu1 libxcb-sync1_1.11.1-1ubuntu1 libxcb-xfixes0_1.11.1-1ubuntu1 libxcb-xfixes0-dev_1.11.1-1ubuntu1 libxcb1_1.11.1-1ubuntu1 libxcb1-dev_1.11.1-1ubuntu1 libxcursor-dev_1:1.1.14-1 libxcursor1_1:1.1.14-1 libxdamage-dev_1:1.1.4-2 libxdamage1_1:1.1.4-2 libxdmcp-dev_1:1.1.2-1.1 libxdmcp6_1:1.1.2-1.1 libxext-dev_2:1.3.3-1 libxext6_2:1.3.3-1 libxfixes-dev_1:5.0.1-2 libxfixes3_1:5.0.1-2 libxi-dev_2:1.7.5-1 libxi6_2:1.7.5-1 libxinerama-dev_2:1.1.3-1 libxinerama1_2:1.1.3-1 libxkbcommon-dev_0.5.0-1ubuntu2 libxkbcommon0_0.5.0-1ubuntu2 libxml2_2.9.2+zdfsg1-4ubuntu2 libxrandr-dev_2:1.5.0-1 libxrandr2_2:1.5.0-1 libxrender-dev_1:0.9.9-0ubuntu1 libxrender1_1:0.9.9-0ubuntu1 libxshmfence-dev_1.2-1 libxshmfence1_1.2-1 libxss-dev_1:1.2.2-1 libxss1_1:1.2.2-1 libxt-dev_1:1.1.5-0ubuntu1 libxt6_1:1.1.5-0ubuntu1 libxv-dev_2:1.0.10-1 libxv1_2:1.0.10-1 libxxf86vm-dev_1:1.1.4-1 libxxf86vm1_1:1.1.4-1 linux-libc-dev_4.3.0-5.16 lockfile-progs_0.1.17 login_1:4.1.5.1-1.1ubuntu7 lsb-base_9.20150917ubuntu1 lsb-release_9.20150917ubuntu1 make_4.0-8.2 man-db_2.7.5-1 mawk_1.3.3-17ubuntu2 mesa-common-dev_11.0.8-1ubuntu1 mime-support_3.59ubuntu1 mount_2.27.1-1ubuntu3 multiarch-support_2.21-0ubuntu5 ncurses-base_6.0+20151024-2ubuntu1 ncurses-bin_6.0+20151024-2ubuntu1 openssl_1.0.2e-1ubuntu1 optipng_0.7.5-1 passwd_1:4.1.5.1-1.1ubuntu7 patch_2.7.5-1 perl_5.22.1-3 perl-base_5.22.1-3 perl-modules-5.22_5.22.1-3 pkg-config_0.29-2ubuntu2 pkg-create-dbgsym_0.70 pkgbinarymangler_128 po-debconf_1.0.19 policyrcd-script-zg2_0.1-2 procps_2:3.3.10-4ubuntu1 python_2.7.11-1 python-minimal_2.7.11-1 python2.7_2.7.11-2 python2.7-minimal_2.7.11-2 python3_3.5.0-2 python3-minimal_3.5.0-2 python3.5_3.5.1-3 python3.5-minimal_3.5.1-3 readline-common_6.3-8ubuntu1 sbuild-build-depends-core-dummy_0.invalid.0 sbuild-build-depends-darkplaces-dummy_0.invalid.0 sed_4.2.2-6.1 sensible-utils_0.0.9 systemd_228-3ubuntu1 systemd-sysv_228-3ubuntu1 sysv-rc_2.88dsf-59.2ubuntu3 sysvinit-utils_2.88dsf-59.2ubuntu3 tar_1.28-2.1 tzdata_2015g-1 ubuntu-keyring_2012.05.19 udev_228-3ubuntu1 util-linux_2.27.1-1ubuntu3 x11-common_1:7.7+12ubuntu1 x11proto-core-dev_7.0.28-0ubuntu2 x11proto-damage-dev_1:1.2.1-2 x11proto-dri2-dev_2.8-2 x11proto-fixes-dev_1:5.0-2ubuntu2 x11proto-gl-dev_1.4.17-1 x11proto-input-dev_2.3.1-1 x11proto-kb-dev_1.0.7-0ubuntu1 x11proto-randr-dev_1.5.0-1 x11proto-render-dev_2:0.11.1-2 x11proto-scrnsaver-dev_1.2.2-1 x11proto-video-dev_2.3.2-1 x11proto-xext-dev_7.3.0-1 x11proto-xf86vidmode-dev_2.3.1-2 x11proto-xinerama-dev_1.2.1-2 xkb-data_2.12-1ubuntu1 xorg-sgml-doctools_1:1.11-1 xtrans-dev_1.3.5-1 xz-utils_5.1.1alpha+20120614-2ubuntu2 zlib1g_1:1.2.8.dfsg-2ubuntu4 zlib1g-dev_1:1.2.8.dfsg-2ubuntu4 ┌──────────────────────────────────────────────────────────────────────────────┐ │ Build │ └──────────────────────────────────────────────────────────────────────────────┘ Unpack source ───────────── gpgv: Signature made Thu Nov 12 12:02:03 2015 UTC using RSA key ID 1C5041D4 gpgv: Can't check signature: public key not found dpkg-source: warning: failed to verify signature on ./darkplaces_0~20140513+svn12208-2build1.dsc dpkg-source: info: extracting darkplaces in darkplaces-0~20140513+svn12208 dpkg-source: info: unpacking darkplaces_0~20140513+svn12208.orig.tar.gz dpkg-source: info: unpacking darkplaces_0~20140513+svn12208-2build1.debian.tar.xz dpkg-source: info: applying Add-support-for-DP_LINK_VORBIS-make-variable.patch dpkg-source: info: applying Add-support-for-DP_LINK_THEORA-shared-default-is-dlo.patch dpkg-source: info: applying image_png.h-change-name-of-multiple-inclusion-guard-.patch dpkg-source: info: applying Be-a-bit-more-type-safe-about-using-libpng.patch dpkg-source: info: applying Add-support-for-DP_LINK_PNG-shared-default-is-dlopen.patch dpkg-source: info: applying add-DP_LINK_CURL-option.patch dpkg-source: info: applying Add-DP_LINK_FREETYPE2-option.patch dpkg-source: info: applying Add-support-for-forcing-d0_blind_id-and-d0_rijndael-.patch dpkg-source: info: applying Add-support-for-disabling-libavw.patch dpkg-source: info: applying Disable-dlopen-support-and-warn-if-it-gets-compiled-.patch dpkg-source: info: applying Fix-OS-detection-of-darkplaces-makefile-to-not-think.patch dpkg-source: info: applying Fix-various-typos-dont-don-t-doesnt-doesn-t-arguemen.patch dpkg-source: info: applying Don-t-build-SSE-only-software-rasterizer-on-non-x86-.patch dpkg-source: info: applying Disable-gpu-skinning-for-skeletal-models.patch Check disc space ──────────────── Sufficient free space for build User Environment ──────────────── DEB_BUILD_OPTIONS=parallel=4 HOME=/home/buildd LANG=C LOGNAME=buildd MAIL=/var/mail/buildd OLDPWD=/ PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games PWD=/«BUILDDIR»/darkplaces-0~20140513+svn12208 SHELL=/bin/sh SUDO_COMMAND=/usr/sbin/chroot /«CHROOT» su buildd -s /bin/sh -c cd '/«BUILDDIR»/darkplaces-0~20140513+svn12208' && 'env' SUDO_GID=2501 SUDO_UID=2001 SUDO_USER=buildd TERM=unknown USER=buildd USERNAME=root dpkg-buildpackage ───────────────── dpkg-buildpackage: source package darkplaces dpkg-buildpackage: source version 0~20140513+svn12208-2build1 dpkg-buildpackage: source distribution xenial dpkg-source --before-build darkplaces-0~20140513+svn12208 dpkg-buildpackage: host architecture amd64 fakeroot debian/rules clean dh clean dh_testdir dh_auto_clean make -j1 clean make[1]: Entering directory '/«BUILDDIR»/darkplaces-0~20140513+svn12208' rm -rf darkplaces-glx rm -rf darkplaces-dedicated rm -rf darkplaces-sdl rm -rf nexuiz-glx rm -rf nexuiz-dedicated rm -rf nexuiz-sdl rm -rf *.o rm -rf *.d rm -rf build-obj/ make[1]: Leaving directory '/«BUILDDIR»/darkplaces-0~20140513+svn12208' dh_clean debian/rules build dh build dh_testdir dh_auto_configure debian/rules override_dh_auto_build make[1]: Entering directory '/«BUILDDIR»/darkplaces-0~20140513+svn12208' /usr/bin/make \ CFLAGS_RELEASE="-D_FORTIFY_SOURCE=2 -DSVNREVISION=0~20140513+svn12208-2build1 -DBUILDTYPE=Ubuntu -DNO_BUILD_TIMESTAMPS -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wextra -Wstrict-prototypes -Wsign-compare -Wnested-externs -Wpointer-arith -Wformat-security -Winit-self -Wno-missing-field-initializers -Wno-unused-parameter -fno-strict-aliasing " \ CFLAGS_DEBUG="-D_FORTIFY_SOURCE=2 -DSVNREVISION=0~20140513+svn12208-2build1 -DBUILDTYPE=Ubuntu -DNO_BUILD_TIMESTAMPS -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wextra -Wstrict-prototypes -Wsign-compare -Wnested-externs -Wpointer-arith -Wformat-security -Winit-self -Wno-missing-field-initializers -Wno-unused-parameter -fno-strict-aliasing " \ LDFLAGS_RELEASE="-D_FORTIFY_SOURCE=2 -DSVNREVISION=0~20140513+svn12208-2build1 -DBUILDTYPE=Ubuntu -DNO_BUILD_TIMESTAMPS -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wextra -Wstrict-prototypes -Wsign-compare -Wnested-externs -Wpointer-arith -Wformat-security -Winit-self -Wno-missing-field-initializers -Wno-unused-parameter -fno-strict-aliasing -Wl,-Bsymbolic-functions -Wl,-z,relro" \ LDFLAGS_DEBUG="-D_FORTIFY_SOURCE=2 -DSVNREVISION=0~20140513+svn12208-2build1 -DBUILDTYPE=Ubuntu -DNO_BUILD_TIMESTAMPS -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wextra -Wstrict-prototypes -Wsign-compare -Wnested-externs -Wpointer-arith -Wformat-security -Winit-self -Wno-missing-field-initializers -Wno-unused-parameter -fno-strict-aliasing -Wl,-Bsymbolic-functions -Wl,-z,relro" \ DP_LINK_CURL=shared \ DP_LINK_FREETYPE2=shared \ DP_LINK_JPEG=shared \ DP_LINK_VORBIS=shared \ DP_LINK_ODE=shared \ DP_LINK_PNG=shared\ DP_LINK_THEORA=shared \ DP_LINK_ZLIB=shared \ DISABLE_OFFSCREEN_GECKO=1 \ DP_LINK_CRYPTO=never \ DP_LINK_CRYPTO_RIJNDAEL=never \ DP_LINK_AVW=never \ STRIP=": do not strip" \ sdl2-release sv-release make[2]: Entering directory '/«BUILDDIR»/darkplaces-0~20140513+svn12208' /usr/bin/make SDL_CONFIG=sdl2-config sdl-release make[3]: Entering directory '/«BUILDDIR»/darkplaces-0~20140513+svn12208' /usr/bin/make bin-release \ DP_MAKE_TARGET=linux DP_SOUND_API=ALSA \ EXE='darkplaces-sdl' CFLAGS_FEATURES='-DCONFIG_MENU -DCONFIG_CD -DCONFIG_VIDEO_CAPTURE' LDFLAGS_COMMON='-lm `ode-config --libs` -lz -ljpeg `pkg-config --libs libpng` `pkg-config --libs libcurl` `pkg-config --libs freetype2` -lrt -ldl `sdl2-config --libs` -lX11 `pkg-config --libs vorbisfile` `pkg-config --libs theora vorbis vorbisenc ogg`' LEVEL=1 make[4]: Entering directory '/«BUILDDIR»/darkplaces-0~20140513+svn12208' ========== darkplaces-sdl (release) ========== /usr/bin/make prepare BUILD_DIR=build-obj/release/darkplaces-sdl make[5]: Entering directory '/«BUILDDIR»/darkplaces-0~20140513+svn12208' mkdir -p build-obj/release/darkplaces-sdl cp -f makefile.inc build-obj/release/darkplaces-sdl/ cp -f makefile build-obj/release/darkplaces-sdl/ make[5]: Leaving directory '/«BUILDDIR»/darkplaces-0~20140513+svn12208' /usr/bin/make -C build-obj/release/darkplaces-sdl darkplaces-sdl \ DP_MAKE_TARGET=linux DP_SOUND_API=ALSA \ CFLAGS='-MMD -Wall -Wold-style-definition -Wstrict-prototypes -Wsign-compare -Wdeclaration-after-statement -Wmissing-prototypes -DLINK_TO_ZLIB -DLINK_TO_LIBJPEG -DLINK_TO_LIBVORBIS `pkg-config --cflags vorbisfile` -DLINK_TO_THEORA `pkg-config --cflags theora vorbis vorbisenc ogg` -DLINK_TO_PNG `pkg-config --cflags libpng` -DLINK_TO_CURL `pkg-config --cflags libcurl` -DLINK_TO_FREETYPE2 `pkg-config --cflags freetype2` -DDISABLE_AVW -D_FILE_OFFSET_BITS=64 -D__KERNEL_STRICT_NAMES -I../../../ -DCONFIG_MENU -DCONFIG_CD -DCONFIG_VIDEO_CAPTURE -D_FORTIFY_SOURCE=2 -DSVNREVISION=0~20140513+svn12208-2build1 -DBUILDTYPE=Ubuntu -DNO_BUILD_TIMESTAMPS -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wextra -Wstrict-prototypes -Wsign-compare -Wnested-externs -Wpointer-arith -Wformat-security -Winit-self -Wno-missing-field-initializers -Wno-unused-parameter -fno-strict-aliasing -O3 -fno-strict-aliasing -fno-math-errno -ffinite-math-only -fno-rounding-math -fno-signaling-nans -fno-trapping-math'\ LDFLAGS='-D_FORTIFY_SOURCE=2 -DSVNREVISION=0~20140513+svn12208-2build1 -DBUILDTYPE=Ubuntu -DNO_BUILD_TIMESTAMPS -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wextra -Wstrict-prototypes -Wsign-compare -Wnested-externs -Wpointer-arith -Wformat-security -Winit-self -Wno-missing-field-initializers -Wno-unused-parameter -fno-strict-aliasing -Wl,-Bsymbolic-functions -Wl,-z,relro -lm `ode-config --libs` -lz -ljpeg `pkg-config --libs libpng` `pkg-config --libs libcurl` `pkg-config --libs freetype2` -lrt -ldl `sdl2-config --libs` -lX11 `pkg-config --libs vorbisfile` `pkg-config --libs theora vorbis vorbisenc ogg`' LEVEL=2 make[5]: Entering directory '/«BUILDDIR»/darkplaces-0~20140513+svn12208/build-obj/release/darkplaces-sdl' cc -MMD -Wall -Wold-style-definition -Wstrict-prototypes -Wsign-compare -Wdeclaration-after-statement -Wmissing-prototypes -DLINK_TO_ZLIB -DLINK_TO_LIBJPEG -DLINK_TO_LIBVORBIS `pkg-config --cflags vorbisfile` -DLINK_TO_THEORA `pkg-config --cflags theora vorbis vorbisenc ogg` -DLINK_TO_PNG `pkg-config --cflags libpng` -DLINK_TO_CURL `pkg-config --cflags libcurl` -DLINK_TO_FREETYPE2 `pkg-config --cflags freetype2` -DDISABLE_AVW -D_FILE_OFFSET_BITS=64 -D__KERNEL_STRICT_NAMES -I../../../ -DCONFIG_MENU -DCONFIG_CD -DCONFIG_VIDEO_CAPTURE -D_FORTIFY_SOURCE=2 -DSVNREVISION=0~20140513+svn12208-2build1 -DBUILDTYPE=Ubuntu -DNO_BUILD_TIMESTAMPS -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wextra -Wstrict-prototypes -Wsign-compare -Wnested-externs -Wpointer-arith -Wformat-security -Winit-self -Wno-missing-field-initializers -Wno-unused-parameter -fno-strict-aliasing -O3 -fno-strict-aliasing -fno-math-errno -ffinite-math-only -fno-rounding-math -fno-signaling-nans -fno-trapping-math -c ../../../sys_sdl.c -o sys_sdl.o `sdl2-config --cflags` cc -MMD -Wall -Wold-style-definition -Wstrict-prototypes -Wsign-compare -Wdeclaration-after-statement -Wmissing-prototypes -DLINK_TO_ZLIB -DLINK_TO_LIBJPEG -DLINK_TO_LIBVORBIS `pkg-config --cflags vorbisfile` -DLINK_TO_THEORA `pkg-config --cflags theora vorbis vorbisenc ogg` -DLINK_TO_PNG `pkg-config --cflags libpng` -DLINK_TO_CURL `pkg-config --cflags libcurl` -DLINK_TO_FREETYPE2 `pkg-config --cflags freetype2` -DDISABLE_AVW -D_FILE_OFFSET_BITS=64 -D__KERNEL_STRICT_NAMES -I../../../ -DCONFIG_MENU -DCONFIG_CD -DCONFIG_VIDEO_CAPTURE -D_FORTIFY_SOURCE=2 -DSVNREVISION=0~20140513+svn12208-2build1 -DBUILDTYPE=Ubuntu -DNO_BUILD_TIMESTAMPS -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wextra -Wstrict-prototypes -Wsign-compare -Wnested-externs -Wpointer-arith -Wformat-security -Winit-self -Wno-missing-field-initializers -Wno-unused-parameter -fno-strict-aliasing -O3 -fno-strict-aliasing -fno-math-errno -ffinite-math-only -fno-rounding-math -fno-signaling-nans -fno-trapping-math -c ../../../vid_sdl.c -o vid_sdl.o `sdl2-config --cflags` cc -MMD -Wall -Wold-style-definition -Wstrict-prototypes -Wsign-compare -Wdeclaration-after-statement -Wmissing-prototypes -DLINK_TO_ZLIB -DLINK_TO_LIBJPEG -DLINK_TO_LIBVORBIS `pkg-config --cflags vorbisfile` -DLINK_TO_THEORA `pkg-config --cflags theora vorbis vorbisenc ogg` -DLINK_TO_PNG `pkg-config --cflags libpng` -DLINK_TO_CURL `pkg-config --cflags libcurl` -DLINK_TO_FREETYPE2 `pkg-config --cflags freetype2` -DDISABLE_AVW -D_FILE_OFFSET_BITS=64 -D__KERNEL_STRICT_NAMES -I../../../ -DCONFIG_MENU -DCONFIG_CD -DCONFIG_VIDEO_CAPTURE -D_FORTIFY_SOURCE=2 -DSVNREVISION=0~20140513+svn12208-2build1 -DBUILDTYPE=Ubuntu -DNO_BUILD_TIMESTAMPS -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wextra -Wstrict-prototypes -Wsign-compare -Wnested-externs -Wpointer-arith -Wformat-security -Winit-self -Wno-missing-field-initializers -Wno-unused-parameter -fno-strict-aliasing -O3 -fno-strict-aliasing -fno-math-errno -ffinite-math-only -fno-rounding-math -fno-signaling-nans -fno-trapping-math -c ../../../thread_sdl.c -o thread_sdl.o `sdl2-config --cflags` cc -MMD -Wall -Wold-style-definition -Wstrict-prototypes -Wsign-compare -Wdeclaration-after-statement -Wmissing-prototypes -DLINK_TO_ZLIB -DLINK_TO_LIBJPEG -DLINK_TO_LIBVORBIS `pkg-config --cflags vorbisfile` -DLINK_TO_THEORA `pkg-config --cflags theora vorbis vorbisenc ogg` -DLINK_TO_PNG `pkg-config --cflags libpng` -DLINK_TO_CURL `pkg-config --cflags libcurl` -DLINK_TO_FREETYPE2 `pkg-config --cflags freetype2` -DDISABLE_AVW -D_FILE_OFFSET_BITS=64 -D__KERNEL_STRICT_NAMES -I../../../ -DCONFIG_MENU -DCONFIG_CD -DCONFIG_VIDEO_CAPTURE -D_FORTIFY_SOURCE=2 -DSVNREVISION=0~20140513+svn12208-2build1 -DBUILDTYPE=Ubuntu -DNO_BUILD_TIMESTAMPS -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wextra -Wstrict-prototypes -Wsign-compare -Wnested-externs -Wpointer-arith -Wformat-security -Winit-self -Wno-missing-field-initializers -Wno-unused-parameter -fno-strict-aliasing -O3 -fno-strict-aliasing -fno-math-errno -ffinite-math-only -fno-rounding-math -fno-signaling-nans -fno-trapping-math -c ../../../menu.c -o menu.o cc -MMD -Wall -Wold-style-definition -Wstrict-prototypes -Wsign-compare -Wdeclaration-after-statement -Wmissing-prototypes -DLINK_TO_ZLIB -DLINK_TO_LIBJPEG -DLINK_TO_LIBVORBIS `pkg-config --cflags vorbisfile` -DLINK_TO_THEORA `pkg-config --cflags theora vorbis vorbisenc ogg` -DLINK_TO_PNG `pkg-config --cflags libpng` -DLINK_TO_CURL `pkg-config --cflags libcurl` -DLINK_TO_FREETYPE2 `pkg-config --cflags freetype2` -DDISABLE_AVW -D_FILE_OFFSET_BITS=64 -D__KERNEL_STRICT_NAMES -I../../../ -DCONFIG_MENU -DCONFIG_CD -DCONFIG_VIDEO_CAPTURE -D_FORTIFY_SOURCE=2 -DSVNREVISION=0~20140513+svn12208-2build1 -DBUILDTYPE=Ubuntu -DNO_BUILD_TIMESTAMPS -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wextra -Wstrict-prototypes -Wsign-compare -Wnested-externs -Wpointer-arith -Wformat-security -Winit-self -Wno-missing-field-initializers -Wno-unused-parameter -fno-strict-aliasing -O3 -fno-strict-aliasing -fno-math-errno -ffinite-math-only -fno-rounding-math -fno-signaling-nans -fno-trapping-math -c ../../../mvm_cmds.c -o mvm_cmds.o cc -MMD -Wall -Wold-style-definition -Wstrict-prototypes -Wsign-compare -Wdeclaration-after-statement -Wmissing-prototypes -DLINK_TO_ZLIB -DLINK_TO_LIBJPEG -DLINK_TO_LIBVORBIS `pkg-config --cflags vorbisfile` -DLINK_TO_THEORA `pkg-config --cflags theora vorbis vorbisenc ogg` -DLINK_TO_PNG `pkg-config --cflags libpng` -DLINK_TO_CURL `pkg-config --cflags libcurl` -DLINK_TO_FREETYPE2 `pkg-config --cflags freetype2` -DDISABLE_AVW -D_FILE_OFFSET_BITS=64 -D__KERNEL_STRICT_NAMES -I../../../ -DCONFIG_MENU -DCONFIG_CD -DCONFIG_VIDEO_CAPTURE -D_FORTIFY_SOURCE=2 -DSVNREVISION=0~20140513+svn12208-2build1 -DBUILDTYPE=Ubuntu -DNO_BUILD_TIMESTAMPS -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wextra -Wstrict-prototypes -Wsign-compare -Wnested-externs -Wpointer-arith -Wformat-security -Winit-self -Wno-missing-field-initializers -Wno-unused-parameter -fno-strict-aliasing -O3 -fno-strict-aliasing -fno-math-errno -ffinite-math-only -fno-rounding-math -fno-signaling-nans -fno-trapping-math -c ../../../snd_main.c -o snd_main.o cc -MMD -Wall -Wold-style-definition -Wstrict-prototypes -Wsign-compare -Wdeclaration-after-statement -Wmissing-prototypes -DLINK_TO_ZLIB -DLINK_TO_LIBJPEG -DLINK_TO_LIBVORBIS `pkg-config --cflags vorbisfile` -DLINK_TO_THEORA `pkg-config --cflags theora vorbis vorbisenc ogg` -DLINK_TO_PNG `pkg-config --cflags libpng` -DLINK_TO_CURL `pkg-config --cflags libcurl` -DLINK_TO_FREETYPE2 `pkg-config --cflags freetype2` -DDISABLE_AVW -D_FILE_OFFSET_BITS=64 -D__KERNEL_STRICT_NAMES -I../../../ -DCONFIG_MENU -DCONFIG_CD -DCONFIG_VIDEO_CAPTURE -D_FORTIFY_SOURCE=2 -DSVNREVISION=0~20140513+svn12208-2build1 -DBUILDTYPE=Ubuntu -DNO_BUILD_TIMESTAMPS -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wextra -Wstrict-prototypes -Wsign-compare -Wnested-externs -Wpointer-arith -Wformat-security -Winit-self -Wno-missing-field-initializers -Wno-unused-parameter -fno-strict-aliasing -O3 -fno-strict-aliasing -fno-math-errno -ffinite-math-only -fno-rounding-math -fno-signaling-nans -fno-trapping-math -c ../../../snd_mem.c -o snd_mem.o cc -MMD -Wall -Wold-style-definition -Wstrict-prototypes -Wsign-compare -Wdeclaration-after-statement -Wmissing-prototypes -DLINK_TO_ZLIB -DLINK_TO_LIBJPEG -DLINK_TO_LIBVORBIS `pkg-config --cflags vorbisfile` -DLINK_TO_THEORA `pkg-config --cflags theora vorbis vorbisenc ogg` -DLINK_TO_PNG `pkg-config --cflags libpng` -DLINK_TO_CURL `pkg-config --cflags libcurl` -DLINK_TO_FREETYPE2 `pkg-config --cflags freetype2` -DDISABLE_AVW -D_FILE_OFFSET_BITS=64 -D__KERNEL_STRICT_NAMES -I../../../ -DCONFIG_MENU -DCONFIG_CD -DCONFIG_VIDEO_CAPTURE -D_FORTIFY_SOURCE=2 -DSVNREVISION=0~20140513+svn12208-2build1 -DBUILDTYPE=Ubuntu -DNO_BUILD_TIMESTAMPS -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wextra -Wstrict-prototypes -Wsign-compare -Wnested-externs -Wpointer-arith -Wformat-security -Winit-self -Wno-missing-field-initializers -Wno-unused-parameter -fno-strict-aliasing -O3 -fno-strict-aliasing -fno-math-errno -ffinite-math-only -fno-rounding-math -fno-signaling-nans -fno-trapping-math -c ../../../snd_mix.c -o snd_mix.o cc -MMD -Wall -Wold-style-definition -Wstrict-prototypes -Wsign-compare -Wdeclaration-after-statement -Wmissing-prototypes -DLINK_TO_ZLIB -DLINK_TO_LIBJPEG -DLINK_TO_LIBVORBIS `pkg-config --cflags vorbisfile` -DLINK_TO_THEORA `pkg-config --cflags theora vorbis vorbisenc ogg` -DLINK_TO_PNG `pkg-config --cflags libpng` -DLINK_TO_CURL `pkg-config --cflags libcurl` -DLINK_TO_FREETYPE2 `pkg-config --cflags freetype2` -DDISABLE_AVW -D_FILE_OFFSET_BITS=64 -D__KERNEL_STRICT_NAMES -I../../../ -DCONFIG_MENU -DCONFIG_CD -DCONFIG_VIDEO_CAPTURE -D_FORTIFY_SOURCE=2 -DSVNREVISION=0~20140513+svn12208-2build1 -DBUILDTYPE=Ubuntu -DNO_BUILD_TIMESTAMPS -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wextra -Wstrict-prototypes -Wsign-compare -Wnested-externs -Wpointer-arith -Wformat-security -Winit-self -Wno-missing-field-initializers -Wno-unused-parameter -fno-strict-aliasing -O3 -fno-strict-aliasing -fno-math-errno -ffinite-math-only -fno-rounding-math -fno-signaling-nans -fno-trapping-math -c ../../../snd_ogg.c -o snd_ogg.o cc -MMD -Wall -Wold-style-definition -Wstrict-prototypes -Wsign-compare -Wdeclaration-after-statement -Wmissing-prototypes -DLINK_TO_ZLIB -DLINK_TO_LIBJPEG -DLINK_TO_LIBVORBIS `pkg-config --cflags vorbisfile` -DLINK_TO_THEORA `pkg-config --cflags theora vorbis vorbisenc ogg` -DLINK_TO_PNG `pkg-config --cflags libpng` -DLINK_TO_CURL `pkg-config --cflags libcurl` -DLINK_TO_FREETYPE2 `pkg-config --cflags freetype2` -DDISABLE_AVW -D_FILE_OFFSET_BITS=64 -D__KERNEL_STRICT_NAMES -I../../../ -DCONFIG_MENU -DCONFIG_CD -DCONFIG_VIDEO_CAPTURE -D_FORTIFY_SOURCE=2 -DSVNREVISION=0~20140513+svn12208-2build1 -DBUILDTYPE=Ubuntu -DNO_BUILD_TIMESTAMPS -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wextra -Wstrict-prototypes -Wsign-compare -Wnested-externs -Wpointer-arith -Wformat-security -Winit-self -Wno-missing-field-initializers -Wno-unused-parameter -fno-strict-aliasing -O3 -fno-strict-aliasing -fno-math-errno -ffinite-math-only -fno-rounding-math -fno-signaling-nans -fno-trapping-math -c ../../../snd_wav.c -o snd_wav.o cc -MMD -Wall -Wold-style-definition -Wstrict-prototypes -Wsign-compare -Wdeclaration-after-statement -Wmissing-prototypes -DLINK_TO_ZLIB -DLINK_TO_LIBJPEG -DLINK_TO_LIBVORBIS `pkg-config --cflags vorbisfile` -DLINK_TO_THEORA `pkg-config --cflags theora vorbis vorbisenc ogg` -DLINK_TO_PNG `pkg-config --cflags libpng` -DLINK_TO_CURL `pkg-config --cflags libcurl` -DLINK_TO_FREETYPE2 `pkg-config --cflags freetype2` -DDISABLE_AVW -D_FILE_OFFSET_BITS=64 -D__KERNEL_STRICT_NAMES -I../../../ -DCONFIG_MENU -DCONFIG_CD -DCONFIG_VIDEO_CAPTURE -D_FORTIFY_SOURCE=2 -DSVNREVISION=0~20140513+svn12208-2build1 -DBUILDTYPE=Ubuntu -DNO_BUILD_TIMESTAMPS -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wextra -Wstrict-prototypes -Wsign-compare -Wnested-externs -Wpointer-arith -Wformat-security -Winit-self -Wno-missing-field-initializers -Wno-unused-parameter -fno-strict-aliasing -O3 -fno-strict-aliasing -fno-math-errno -ffinite-math-only -fno-rounding-math -fno-signaling-nans -fno-trapping-math -c ../../../snd_sdl.c -o snd_sdl.o `sdl2-config --cflags` cc -MMD -Wall -Wold-style-definition -Wstrict-prototypes -Wsign-compare -Wdeclaration-after-statement -Wmissing-prototypes -DLINK_TO_ZLIB -DLINK_TO_LIBJPEG -DLINK_TO_LIBVORBIS `pkg-config --cflags vorbisfile` -DLINK_TO_THEORA `pkg-config --cflags theora vorbis vorbisenc ogg` -DLINK_TO_PNG `pkg-config --cflags libpng` -DLINK_TO_CURL `pkg-config --cflags libcurl` -DLINK_TO_FREETYPE2 `pkg-config --cflags freetype2` -DDISABLE_AVW -D_FILE_OFFSET_BITS=64 -D__KERNEL_STRICT_NAMES -I../../../ -DCONFIG_MENU -DCONFIG_CD -DCONFIG_VIDEO_CAPTURE -D_FORTIFY_SOURCE=2 -DSVNREVISION=0~20140513+svn12208-2build1 -DBUILDTYPE=Ubuntu -DNO_BUILD_TIMESTAMPS -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wextra -Wstrict-prototypes -Wsign-compare -Wnested-externs -Wpointer-arith -Wformat-security -Winit-self -Wno-missing-field-initializers -Wno-unused-parameter -fno-strict-aliasing -O3 -fno-strict-aliasing -fno-math-errno -ffinite-math-only -fno-rounding-math -fno-signaling-nans -fno-trapping-math -c ../../../cd_shared.c -o cd_shared.o cc -MMD -Wall -Wold-style-definition -Wstrict-prototypes -Wsign-compare -Wdeclaration-after-statement -Wmissing-prototypes -DLINK_TO_ZLIB -DLINK_TO_LIBJPEG -DLINK_TO_LIBVORBIS `pkg-config --cflags vorbisfile` -DLINK_TO_THEORA `pkg-config --cflags theora vorbis vorbisenc ogg` -DLINK_TO_PNG `pkg-config --cflags libpng` -DLINK_TO_CURL `pkg-config --cflags libcurl` -DLINK_TO_FREETYPE2 `pkg-config --cflags freetype2` -DDISABLE_AVW -D_FILE_OFFSET_BITS=64 -D__KERNEL_STRICT_NAMES -I../../../ -DCONFIG_MENU -DCONFIG_CD -DCONFIG_VIDEO_CAPTURE -D_FORTIFY_SOURCE=2 -DSVNREVISION=0~20140513+svn12208-2build1 -DBUILDTYPE=Ubuntu -DNO_BUILD_TIMESTAMPS -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wextra -Wstrict-prototypes -Wsign-compare -Wnested-externs -Wpointer-arith -Wformat-security -Winit-self -Wno-missing-field-initializers -Wno-unused-parameter -fno-strict-aliasing -O3 -fno-strict-aliasing -fno-math-errno -ffinite-math-only -fno-rounding-math -fno-signaling-nans -fno-trapping-math -c ../../../cd_sdl.c -o cd_sdl.o `sdl2-config --cflags` cc -MMD -Wall -Wold-style-definition -Wstrict-prototypes -Wsign-compare -Wdeclaration-after-statement -Wmissing-prototypes -DLINK_TO_ZLIB -DLINK_TO_LIBJPEG -DLINK_TO_LIBVORBIS `pkg-config --cflags vorbisfile` -DLINK_TO_THEORA `pkg-config --cflags theora vorbis vorbisenc ogg` -DLINK_TO_PNG `pkg-config --cflags libpng` -DLINK_TO_CURL `pkg-config --cflags libcurl` -DLINK_TO_FREETYPE2 `pkg-config --cflags freetype2` -DDISABLE_AVW -D_FILE_OFFSET_BITS=64 -D__KERNEL_STRICT_NAMES -I../../../ -DCONFIG_MENU -DCONFIG_CD -DCONFIG_VIDEO_CAPTURE -D_FORTIFY_SOURCE=2 -DSVNREVISION=0~20140513+svn12208-2build1 -DBUILDTYPE=Ubuntu -DNO_BUILD_TIMESTAMPS -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wextra -Wstrict-prototypes -Wsign-compare -Wnested-externs -Wpointer-arith -Wformat-security -Winit-self -Wno-missing-field-initializers -Wno-unused-parameter -fno-strict-aliasing -O3 -fno-strict-aliasing -fno-math-errno -ffinite-math-only -fno-rounding-math -fno-signaling-nans -fno-trapping-math -c ../../../cap_avi.c -o cap_avi.o cc -MMD -Wall -Wold-style-definition -Wstrict-prototypes -Wsign-compare -Wdeclaration-after-statement -Wmissing-prototypes -DLINK_TO_ZLIB -DLINK_TO_LIBJPEG -DLINK_TO_LIBVORBIS `pkg-config --cflags vorbisfile` -DLINK_TO_THEORA `pkg-config --cflags theora vorbis vorbisenc ogg` -DLINK_TO_PNG `pkg-config --cflags libpng` -DLINK_TO_CURL `pkg-config --cflags libcurl` -DLINK_TO_FREETYPE2 `pkg-config --cflags freetype2` -DDISABLE_AVW -D_FILE_OFFSET_BITS=64 -D__KERNEL_STRICT_NAMES -I../../../ -DCONFIG_MENU -DCONFIG_CD -DCONFIG_VIDEO_CAPTURE -D_FORTIFY_SOURCE=2 -DSVNREVISION=0~20140513+svn12208-2build1 -DBUILDTYPE=Ubuntu -DNO_BUILD_TIMESTAMPS -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wextra -Wstrict-prototypes -Wsign-compare -Wnested-externs -Wpointer-arith -Wformat-security -Winit-self -Wno-missing-field-initializers -Wno-unused-parameter -fno-strict-aliasing -O3 -fno-strict-aliasing -fno-math-errno -ffinite-math-only -fno-rounding-math -fno-signaling-nans -fno-trapping-math -c ../../../cap_ogg.c -o cap_ogg.o cc -MMD -Wall -Wold-style-definition -Wstrict-prototypes -Wsign-compare -Wdeclaration-after-statement -Wmissing-prototypes -DLINK_TO_ZLIB -DLINK_TO_LIBJPEG -DLINK_TO_LIBVORBIS `pkg-config --cflags vorbisfile` -DLINK_TO_THEORA `pkg-config --cflags theora vorbis vorbisenc ogg` -DLINK_TO_PNG `pkg-config --cflags libpng` -DLINK_TO_CURL `pkg-config --cflags libcurl` -DLINK_TO_FREETYPE2 `pkg-config --cflags freetype2` -DDISABLE_AVW -D_FILE_OFFSET_BITS=64 -D__KERNEL_STRICT_NAMES -I../../../ -DCONFIG_MENU -DCONFIG_CD -DCONFIG_VIDEO_CAPTURE -D_FORTIFY_SOURCE=2 -DSVNREVISION=0~20140513+svn12208-2build1 -DBUILDTYPE=Ubuntu -DNO_BUILD_TIMESTAMPS -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wextra -Wstrict-prototypes -Wsign-compare -Wnested-externs -Wpointer-arith -Wformat-security -Winit-self -Wno-missing-field-initializers -Wno-unused-parameter -fno-strict-aliasing -O3 -fno-strict-aliasing -fno-math-errno -ffinite-math-only -fno-rounding-math -fno-signaling-nans -fno-trapping-math -c ../../../bih.c -o bih.o cc -MMD -Wall -Wold-style-definition -Wstrict-prototypes -Wsign-compare -Wdeclaration-after-statement -Wmissing-prototypes -DLINK_TO_ZLIB -DLINK_TO_LIBJPEG -DLINK_TO_LIBVORBIS `pkg-config --cflags vorbisfile` -DLINK_TO_THEORA `pkg-config --cflags theora vorbis vorbisenc ogg` -DLINK_TO_PNG `pkg-config --cflags libpng` -DLINK_TO_CURL `pkg-config --cflags libcurl` -DLINK_TO_FREETYPE2 `pkg-config --cflags freetype2` -DDISABLE_AVW -D_FILE_OFFSET_BITS=64 -D__KERNEL_STRICT_NAMES -I../../../ -DCONFIG_MENU -DCONFIG_CD -DCONFIG_VIDEO_CAPTURE -D_FORTIFY_SOURCE=2 -DSVNREVISION=0~20140513+svn12208-2build1 -DBUILDTYPE=Ubuntu -DNO_BUILD_TIMESTAMPS -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wextra -Wstrict-prototypes -Wsign-compare -Wnested-externs -Wpointer-arith -Wformat-security -Winit-self -Wno-missing-field-initializers -Wno-unused-parameter -fno-strict-aliasing -O3 -fno-strict-aliasing -fno-math-errno -ffinite-math-only -fno-rounding-math -fno-signaling-nans -fno-trapping-math -c ../../../crypto.c -o crypto.o -DDISABLE_CRYPTO -DDISABLE_CRYPTO_RIJNDAEL cc -MMD -Wall -Wold-style-definition -Wstrict-prototypes -Wsign-compare -Wdeclaration-after-statement -Wmissing-prototypes -DLINK_TO_ZLIB -DLINK_TO_LIBJPEG -DLINK_TO_LIBVORBIS `pkg-config --cflags vorbisfile` -DLINK_TO_THEORA `pkg-config --cflags theora vorbis vorbisenc ogg` -DLINK_TO_PNG `pkg-config --cflags libpng` -DLINK_TO_CURL `pkg-config --cflags libcurl` -DLINK_TO_FREETYPE2 `pkg-config --cflags freetype2` -DDISABLE_AVW -D_FILE_OFFSET_BITS=64 -D__KERNEL_STRICT_NAMES -I../../../ -DCONFIG_MENU -DCONFIG_CD -DCONFIG_VIDEO_CAPTURE -D_FORTIFY_SOURCE=2 -DSVNREVISION=0~20140513+svn12208-2build1 -DBUILDTYPE=Ubuntu -DNO_BUILD_TIMESTAMPS -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wextra -Wstrict-prototypes -Wsign-compare -Wnested-externs -Wpointer-arith -Wformat-security -Winit-self -Wno-missing-field-initializers -Wno-unused-parameter -fno-strict-aliasing -O3 -fno-strict-aliasing -fno-math-errno -ffinite-math-only -fno-rounding-math -fno-signaling-nans -fno-trapping-math -c ../../../cl_collision.c -o cl_collision.o cc -MMD -Wall -Wold-style-definition -Wstrict-prototypes -Wsign-compare -Wdeclaration-after-statement -Wmissing-prototypes -DLINK_TO_ZLIB -DLINK_TO_LIBJPEG -DLINK_TO_LIBVORBIS `pkg-config --cflags vorbisfile` -DLINK_TO_THEORA `pkg-config --cflags theora vorbis vorbisenc ogg` -DLINK_TO_PNG `pkg-config --cflags libpng` -DLINK_TO_CURL `pkg-config --cflags libcurl` -DLINK_TO_FREETYPE2 `pkg-config --cflags freetype2` -DDISABLE_AVW -D_FILE_OFFSET_BITS=64 -D__KERNEL_STRICT_NAMES -I../../../ -DCONFIG_MENU -DCONFIG_CD -DCONFIG_VIDEO_CAPTURE -D_FORTIFY_SOURCE=2 -DSVNREVISION=0~20140513+svn12208-2build1 -DBUILDTYPE=Ubuntu -DNO_BUILD_TIMESTAMPS -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wextra -Wstrict-prototypes -Wsign-compare -Wnested-externs -Wpointer-arith -Wformat-security -Winit-self -Wno-missing-field-initializers -Wno-unused-parameter -fno-strict-aliasing -O3 -fno-strict-aliasing -fno-math-errno -ffinite-math-only -fno-rounding-math -fno-signaling-nans -fno-trapping-math -c ../../../cl_demo.c -o cl_demo.o cc -MMD -Wall -Wold-style-definition -Wstrict-prototypes -Wsign-compare -Wdeclaration-after-statement -Wmissing-prototypes -DLINK_TO_ZLIB -DLINK_TO_LIBJPEG -DLINK_TO_LIBVORBIS `pkg-config --cflags vorbisfile` -DLINK_TO_THEORA `pkg-config --cflags theora vorbis vorbisenc ogg` -DLINK_TO_PNG `pkg-config --cflags libpng` -DLINK_TO_CURL `pkg-config --cflags libcurl` -DLINK_TO_FREETYPE2 `pkg-config --cflags freetype2` -DDISABLE_AVW -D_FILE_OFFSET_BITS=64 -D__KERNEL_STRICT_NAMES -I../../../ -DCONFIG_MENU -DCONFIG_CD -DCONFIG_VIDEO_CAPTURE -D_FORTIFY_SOURCE=2 -DSVNREVISION=0~20140513+svn12208-2build1 -DBUILDTYPE=Ubuntu -DNO_BUILD_TIMESTAMPS -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wextra -Wstrict-prototypes -Wsign-compare -Wnested-externs -Wpointer-arith -Wformat-security -Winit-self -Wno-missing-field-initializers -Wno-unused-parameter -fno-strict-aliasing -O3 -fno-strict-aliasing -fno-math-errno -ffinite-math-only -fno-rounding-math -fno-signaling-nans -fno-trapping-math -c ../../../cl_dyntexture.c -o cl_dyntexture.o cc -MMD -Wall -Wold-style-definition -Wstrict-prototypes -Wsign-compare -Wdeclaration-after-statement -Wmissing-prototypes -DLINK_TO_ZLIB -DLINK_TO_LIBJPEG -DLINK_TO_LIBVORBIS `pkg-config --cflags vorbisfile` -DLINK_TO_THEORA `pkg-config --cflags theora vorbis vorbisenc ogg` -DLINK_TO_PNG `pkg-config --cflags libpng` -DLINK_TO_CURL `pkg-config --cflags libcurl` -DLINK_TO_FREETYPE2 `pkg-config --cflags freetype2` -DDISABLE_AVW -D_FILE_OFFSET_BITS=64 -D__KERNEL_STRICT_NAMES -I../../../ -DCONFIG_MENU -DCONFIG_CD -DCONFIG_VIDEO_CAPTURE -D_FORTIFY_SOURCE=2 -DSVNREVISION=0~20140513+svn12208-2build1 -DBUILDTYPE=Ubuntu -DNO_BUILD_TIMESTAMPS -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wextra -Wstrict-prototypes -Wsign-compare -Wnested-externs -Wpointer-arith -Wformat-security -Winit-self -Wno-missing-field-initializers -Wno-unused-parameter -fno-strict-aliasing -O3 -fno-strict-aliasing -fno-math-errno -ffinite-math-only -fno-rounding-math -fno-signaling-nans -fno-trapping-math -c ../../../cl_input.c -o cl_input.o cc -MMD -Wall -Wold-style-definition -Wstrict-prototypes -Wsign-compare -Wdeclaration-after-statement -Wmissing-prototypes -DLINK_TO_ZLIB -DLINK_TO_LIBJPEG -DLINK_TO_LIBVORBIS `pkg-config --cflags vorbisfile` -DLINK_TO_THEORA `pkg-config --cflags theora vorbis vorbisenc ogg` -DLINK_TO_PNG `pkg-config --cflags libpng` -DLINK_TO_CURL `pkg-config --cflags libcurl` -DLINK_TO_FREETYPE2 `pkg-config --cflags freetype2` -DDISABLE_AVW -D_FILE_OFFSET_BITS=64 -D__KERNEL_STRICT_NAMES -I../../../ -DCONFIG_MENU -DCONFIG_CD -DCONFIG_VIDEO_CAPTURE -D_FORTIFY_SOURCE=2 -DSVNREVISION=0~20140513+svn12208-2build1 -DBUILDTYPE=Ubuntu -DNO_BUILD_TIMESTAMPS -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wextra -Wstrict-prototypes -Wsign-compare -Wnested-externs -Wpointer-arith -Wformat-security -Winit-self -Wno-missing-field-initializers -Wno-unused-parameter -fno-strict-aliasing -O3 -fno-strict-aliasing -fno-math-errno -ffinite-math-only -fno-rounding-math -fno-signaling-nans -fno-trapping-math -c ../../../cl_main.c -o cl_main.o cc -MMD -Wall -Wold-style-definition -Wstrict-prototypes -Wsign-compare -Wdeclaration-after-statement -Wmissing-prototypes -DLINK_TO_ZLIB -DLINK_TO_LIBJPEG -DLINK_TO_LIBVORBIS `pkg-config --cflags vorbisfile` -DLINK_TO_THEORA `pkg-config --cflags theora vorbis vorbisenc ogg` -DLINK_TO_PNG `pkg-config --cflags libpng` -DLINK_TO_CURL `pkg-config --cflags libcurl` -DLINK_TO_FREETYPE2 `pkg-config --cflags freetype2` -DDISABLE_AVW -D_FILE_OFFSET_BITS=64 -D__KERNEL_STRICT_NAMES -I../../../ -DCONFIG_MENU -DCONFIG_CD -DCONFIG_VIDEO_CAPTURE -D_FORTIFY_SOURCE=2 -DSVNREVISION=0~20140513+svn12208-2build1 -DBUILDTYPE=Ubuntu -DNO_BUILD_TIMESTAMPS -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wextra -Wstrict-prototypes -Wsign-compare -Wnested-externs -Wpointer-arith -Wformat-security -Winit-self -Wno-missing-field-initializers -Wno-unused-parameter -fno-strict-aliasing -O3 -fno-strict-aliasing -fno-math-errno -ffinite-math-only -fno-rounding-math -fno-signaling-nans -fno-trapping-math -c ../../../cl_parse.c -o cl_parse.o cc -MMD -Wall -Wold-style-definition -Wstrict-prototypes -Wsign-compare -Wdeclaration-after-statement -Wmissing-prototypes -DLINK_TO_ZLIB -DLINK_TO_LIBJPEG -DLINK_TO_LIBVORBIS `pkg-config --cflags vorbisfile` -DLINK_TO_THEORA `pkg-config --cflags theora vorbis vorbisenc ogg` -DLINK_TO_PNG `pkg-config --cflags libpng` -DLINK_TO_CURL `pkg-config --cflags libcurl` -DLINK_TO_FREETYPE2 `pkg-config --cflags freetype2` -DDISABLE_AVW -D_FILE_OFFSET_BITS=64 -D__KERNEL_STRICT_NAMES -I../../../ -DCONFIG_MENU -DCONFIG_CD -DCONFIG_VIDEO_CAPTURE -D_FORTIFY_SOURCE=2 -DSVNREVISION=0~20140513+svn12208-2build1 -DBUILDTYPE=Ubuntu -DNO_BUILD_TIMESTAMPS -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wextra -Wstrict-prototypes -Wsign-compare -Wnested-externs -Wpointer-arith -Wformat-security -Winit-self -Wno-missing-field-initializers -Wno-unused-parameter -fno-strict-aliasing -O3 -fno-strict-aliasing -fno-math-errno -ffinite-math-only -fno-rounding-math -fno-signaling-nans -fno-trapping-math -c ../../../cl_particles.c -o cl_particles.o In file included from ../../../quakedef.h:380:0, from ../../../cl_particles.c:21: ../../../cl_particles.c: In function 'R_DrawDecals': ../../../mathlib.h:51:35: warning: comparison of unsigned expression >= 0 is always true [-Wtype-limits] #define bound(min,num,max) ((num) >= (min) ? ((num) < (max) ? (num) : (max)) : (min)) ^ ../../../cl_particles.c:2576:49: note: in expansion of macro 'bound' unsigned int killsequence = cl.decalsequence - bound(0, (unsigned int) cl_decals_max.integer, cl.decalsequence); ^~~~~ cc -MMD -Wall -Wold-style-definition -Wstrict-prototypes -Wsign-compare -Wdeclaration-after-statement -Wmissing-prototypes -DLINK_TO_ZLIB -DLINK_TO_LIBJPEG -DLINK_TO_LIBVORBIS `pkg-config --cflags vorbisfile` -DLINK_TO_THEORA `pkg-config --cflags theora vorbis vorbisenc ogg` -DLINK_TO_PNG `pkg-config --cflags libpng` -DLINK_TO_CURL `pkg-config --cflags libcurl` -DLINK_TO_FREETYPE2 `pkg-config --cflags freetype2` -DDISABLE_AVW -D_FILE_OFFSET_BITS=64 -D__KERNEL_STRICT_NAMES -I../../../ -DCONFIG_MENU -DCONFIG_CD -DCONFIG_VIDEO_CAPTURE -D_FORTIFY_SOURCE=2 -DSVNREVISION=0~20140513+svn12208-2build1 -DBUILDTYPE=Ubuntu -DNO_BUILD_TIMESTAMPS -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wextra -Wstrict-prototypes -Wsign-compare -Wnested-externs -Wpointer-arith -Wformat-security -Winit-self -Wno-missing-field-initializers -Wno-unused-parameter -fno-strict-aliasing -O3 -fno-strict-aliasing -fno-math-errno -ffinite-math-only -fno-rounding-math -fno-signaling-nans -fno-trapping-math -c ../../../cl_screen.c -o cl_screen.o cc -MMD -Wall -Wold-style-definition -Wstrict-prototypes -Wsign-compare -Wdeclaration-after-statement -Wmissing-prototypes -DLINK_TO_ZLIB -DLINK_TO_LIBJPEG -DLINK_TO_LIBVORBIS `pkg-config --cflags vorbisfile` -DLINK_TO_THEORA `pkg-config --cflags theora vorbis vorbisenc ogg` -DLINK_TO_PNG `pkg-config --cflags libpng` -DLINK_TO_CURL `pkg-config --cflags libcurl` -DLINK_TO_FREETYPE2 `pkg-config --cflags freetype2` -DDISABLE_AVW -D_FILE_OFFSET_BITS=64 -D__KERNEL_STRICT_NAMES -I../../../ -DCONFIG_MENU -DCONFIG_CD -DCONFIG_VIDEO_CAPTURE -D_FORTIFY_SOURCE=2 -DSVNREVISION=0~20140513+svn12208-2build1 -DBUILDTYPE=Ubuntu -DNO_BUILD_TIMESTAMPS -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wextra -Wstrict-prototypes -Wsign-compare -Wnested-externs -Wpointer-arith -Wformat-security -Winit-self -Wno-missing-field-initializers -Wno-unused-parameter -fno-strict-aliasing -O3 -fno-strict-aliasing -fno-math-errno -ffinite-math-only -fno-rounding-math -fno-signaling-nans -fno-trapping-math -c ../../../cl_video.c -o cl_video.o cc -MMD -Wall -Wold-style-definition -Wstrict-prototypes -Wsign-compare -Wdeclaration-after-statement -Wmissing-prototypes -DLINK_TO_ZLIB -DLINK_TO_LIBJPEG -DLINK_TO_LIBVORBIS `pkg-config --cflags vorbisfile` -DLINK_TO_THEORA `pkg-config --cflags theora vorbis vorbisenc ogg` -DLINK_TO_PNG `pkg-config --cflags libpng` -DLINK_TO_CURL `pkg-config --cflags libcurl` -DLINK_TO_FREETYPE2 `pkg-config --cflags freetype2` -DDISABLE_AVW -D_FILE_OFFSET_BITS=64 -D__KERNEL_STRICT_NAMES -I../../../ -DCONFIG_MENU -DCONFIG_CD -DCONFIG_VIDEO_CAPTURE -D_FORTIFY_SOURCE=2 -DSVNREVISION=0~20140513+svn12208-2build1 -DBUILDTYPE=Ubuntu -DNO_BUILD_TIMESTAMPS -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wextra -Wstrict-prototypes -Wsign-compare -Wnested-externs -Wpointer-arith -Wformat-security -Winit-self -Wno-missing-field-initializers -Wno-unused-parameter -fno-strict-aliasing -O3 -fno-strict-aliasing -fno-math-errno -ffinite-math-only -fno-rounding-math -fno-signaling-nans -fno-trapping-math -c ../../../clvm_cmds.c -o clvm_cmds.o ../../../clvm_cmds.c: In function 'CSQC_R_RecalcView': ../../../clvm_cmds.c:724:2: warning: nested extern declaration of 'viewmodelmatrix_nobob' [-Wnested-externs] extern matrix4x4_t viewmodelmatrix_nobob; ^~~~~~ ../../../clvm_cmds.c:725:2: warning: nested extern declaration of 'viewmodelmatrix_withbob' [-Wnested-externs] extern matrix4x4_t viewmodelmatrix_withbob; ^~~~~~ cc -MMD -Wall -Wold-style-definition -Wstrict-prototypes -Wsign-compare -Wdeclaration-after-statement -Wmissing-prototypes -DLINK_TO_ZLIB -DLINK_TO_LIBJPEG -DLINK_TO_LIBVORBIS `pkg-config --cflags vorbisfile` -DLINK_TO_THEORA `pkg-config --cflags theora vorbis vorbisenc ogg` -DLINK_TO_PNG `pkg-config --cflags libpng` -DLINK_TO_CURL `pkg-config --cflags libcurl` -DLINK_TO_FREETYPE2 `pkg-config --cflags freetype2` -DDISABLE_AVW -D_FILE_OFFSET_BITS=64 -D__KERNEL_STRICT_NAMES -I../../../ -DCONFIG_MENU -DCONFIG_CD -DCONFIG_VIDEO_CAPTURE -D_FORTIFY_SOURCE=2 -DSVNREVISION=0~20140513+svn12208-2build1 -DBUILDTYPE=Ubuntu -DNO_BUILD_TIMESTAMPS -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wextra -Wstrict-prototypes -Wsign-compare -Wnested-externs -Wpointer-arith -Wformat-security -Winit-self -Wno-missing-field-initializers -Wno-unused-parameter -fno-strict-aliasing -O3 -fno-strict-aliasing -fno-math-errno -ffinite-math-only -fno-rounding-math -fno-signaling-nans -fno-trapping-math -c ../../../cmd.c -o cmd.o cc -MMD -Wall -Wold-style-definition -Wstrict-prototypes -Wsign-compare -Wdeclaration-after-statement -Wmissing-prototypes -DLINK_TO_ZLIB -DLINK_TO_LIBJPEG -DLINK_TO_LIBVORBIS `pkg-config --cflags vorbisfile` -DLINK_TO_THEORA `pkg-config --cflags theora vorbis vorbisenc ogg` -DLINK_TO_PNG `pkg-config --cflags libpng` -DLINK_TO_CURL `pkg-config --cflags libcurl` -DLINK_TO_FREETYPE2 `pkg-config --cflags freetype2` -DDISABLE_AVW -D_FILE_OFFSET_BITS=64 -D__KERNEL_STRICT_NAMES -I../../../ -DCONFIG_MENU -DCONFIG_CD -DCONFIG_VIDEO_CAPTURE -D_FORTIFY_SOURCE=2 -DSVNREVISION=0~20140513+svn12208-2build1 -DBUILDTYPE=Ubuntu -DNO_BUILD_TIMESTAMPS -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wextra -Wstrict-prototypes -Wsign-compare -Wnested-externs -Wpointer-arith -Wformat-security -Winit-self -Wno-missing-field-initializers -Wno-unused-parameter -fno-strict-aliasing -O3 -fno-strict-aliasing -fno-math-errno -ffinite-math-only -fno-rounding-math -fno-signaling-nans -fno-trapping-math -c ../../../collision.c -o collision.o cc -MMD -Wall -Wold-style-definition -Wstrict-prototypes -Wsign-compare -Wdeclaration-after-statement -Wmissing-prototypes -DLINK_TO_ZLIB -DLINK_TO_LIBJPEG -DLINK_TO_LIBVORBIS `pkg-config --cflags vorbisfile` -DLINK_TO_THEORA `pkg-config --cflags theora vorbis vorbisenc ogg` -DLINK_TO_PNG `pkg-config --cflags libpng` -DLINK_TO_CURL `pkg-config --cflags libcurl` -DLINK_TO_FREETYPE2 `pkg-config --cflags freetype2` -DDISABLE_AVW -D_FILE_OFFSET_BITS=64 -D__KERNEL_STRICT_NAMES -I../../../ -DCONFIG_MENU -DCONFIG_CD -DCONFIG_VIDEO_CAPTURE -D_FORTIFY_SOURCE=2 -DSVNREVISION=0~20140513+svn12208-2build1 -DBUILDTYPE=Ubuntu -DNO_BUILD_TIMESTAMPS -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wextra -Wstrict-prototypes -Wsign-compare -Wnested-externs -Wpointer-arith -Wformat-security -Winit-self -Wno-missing-field-initializers -Wno-unused-parameter -fno-strict-aliasing -O3 -fno-strict-aliasing -fno-math-errno -ffinite-math-only -fno-rounding-math -fno-signaling-nans -fno-trapping-math -c ../../../common.c -o common.o cc -MMD -Wall -Wold-style-definition -Wstrict-prototypes -Wsign-compare -Wdeclaration-after-statement -Wmissing-prototypes -DLINK_TO_ZLIB -DLINK_TO_LIBJPEG -DLINK_TO_LIBVORBIS `pkg-config --cflags vorbisfile` -DLINK_TO_THEORA `pkg-config --cflags theora vorbis vorbisenc ogg` -DLINK_TO_PNG `pkg-config --cflags libpng` -DLINK_TO_CURL `pkg-config --cflags libcurl` -DLINK_TO_FREETYPE2 `pkg-config --cflags freetype2` -DDISABLE_AVW -D_FILE_OFFSET_BITS=64 -D__KERNEL_STRICT_NAMES -I../../../ -DCONFIG_MENU -DCONFIG_CD -DCONFIG_VIDEO_CAPTURE -D_FORTIFY_SOURCE=2 -DSVNREVISION=0~20140513+svn12208-2build1 -DBUILDTYPE=Ubuntu -DNO_BUILD_TIMESTAMPS -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wextra -Wstrict-prototypes -Wsign-compare -Wnested-externs -Wpointer-arith -Wformat-security -Winit-self -Wno-missing-field-initializers -Wno-unused-parameter -fno-strict-aliasing -O3 -fno-strict-aliasing -fno-math-errno -ffinite-math-only -fno-rounding-math -fno-signaling-nans -fno-trapping-math -c ../../../console.c -o console.o cc -MMD -Wall -Wold-style-definition -Wstrict-prototypes -Wsign-compare -Wdeclaration-after-statement -Wmissing-prototypes -DLINK_TO_ZLIB -DLINK_TO_LIBJPEG -DLINK_TO_LIBVORBIS `pkg-config --cflags vorbisfile` -DLINK_TO_THEORA `pkg-config --cflags theora vorbis vorbisenc ogg` -DLINK_TO_PNG `pkg-config --cflags libpng` -DLINK_TO_CURL `pkg-config --cflags libcurl` -DLINK_TO_FREETYPE2 `pkg-config --cflags freetype2` -DDISABLE_AVW -D_FILE_OFFSET_BITS=64 -D__KERNEL_STRICT_NAMES -I../../../ -DCONFIG_MENU -DCONFIG_CD -DCONFIG_VIDEO_CAPTURE -D_FORTIFY_SOURCE=2 -DSVNREVISION=0~20140513+svn12208-2build1 -DBUILDTYPE=Ubuntu -DNO_BUILD_TIMESTAMPS -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wextra -Wstrict-prototypes -Wsign-compare -Wnested-externs -Wpointer-arith -Wformat-security -Winit-self -Wno-missing-field-initializers -Wno-unused-parameter -fno-strict-aliasing -O3 -fno-strict-aliasing -fno-math-errno -ffinite-math-only -fno-rounding-math -fno-signaling-nans -fno-trapping-math -c ../../../csprogs.c -o csprogs.o ../../../csprogs.c: In function 'CL_VM_PreventInformationLeaks': ../../../csprogs.c:24:3: warning: statement is indented as if it were guarded by... [-Wmisleading-indentation] VM_ClearTraceGlobals(prog); ^~~~~~~~~~~~~~~~~~~~ ../../../csprogs.c:21:2: note: ...this 'if' clause, but it is not if(!cl.csqc_loaded) ^~ ../../../csprogs.c: In function 'CL_VM_InputEvent': ../../../csprogs.c:446:3: warning: statement is indented as if it were guarded by... [-Wmisleading-indentation] if (!PRVM_clientfunction(CSQC_InputEvent)) ^~ ../../../csprogs.c:442:2: note: ...this 'if' clause, but it is not if(!cl.csqc_loaded) ^~ ../../../csprogs.c: In function 'CL_VM_ShutDown': ../../../csprogs.c:1166:3: warning: statement is indented as if it were guarded by... [-Wmisleading-indentation] if (prog->loaded) ^~ ../../../csprogs.c:1163:2: note: ...this 'if' clause, but it is not if(!cl.csqc_loaded) ^~ cc -MMD -Wall -Wold-style-definition -Wstrict-prototypes -Wsign-compare -Wdeclaration-after-statement -Wmissing-prototypes -DLINK_TO_ZLIB -DLINK_TO_LIBJPEG -DLINK_TO_LIBVORBIS `pkg-config --cflags vorbisfile` -DLINK_TO_THEORA `pkg-config --cflags theora vorbis vorbisenc ogg` -DLINK_TO_PNG `pkg-config --cflags libpng` -DLINK_TO_CURL `pkg-config --cflags libcurl` -DLINK_TO_FREETYPE2 `pkg-config --cflags freetype2` -DDISABLE_AVW -D_FILE_OFFSET_BITS=64 -D__KERNEL_STRICT_NAMES -I../../../ -DCONFIG_MENU -DCONFIG_CD -DCONFIG_VIDEO_CAPTURE -D_FORTIFY_SOURCE=2 -DSVNREVISION=0~20140513+svn12208-2build1 -DBUILDTYPE=Ubuntu -DNO_BUILD_TIMESTAMPS -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wextra -Wstrict-prototypes -Wsign-compare -Wnested-externs -Wpointer-arith -Wformat-security -Winit-self -Wno-missing-field-initializers -Wno-unused-parameter -fno-strict-aliasing -O3 -fno-strict-aliasing -fno-math-errno -ffinite-math-only -fno-rounding-math -fno-signaling-nans -fno-trapping-math -c ../../../curves.c -o curves.o cc -MMD -Wall -Wold-style-definition -Wstrict-prototypes -Wsign-compare -Wdeclaration-after-statement -Wmissing-prototypes -DLINK_TO_ZLIB -DLINK_TO_LIBJPEG -DLINK_TO_LIBVORBIS `pkg-config --cflags vorbisfile` -DLINK_TO_THEORA `pkg-config --cflags theora vorbis vorbisenc ogg` -DLINK_TO_PNG `pkg-config --cflags libpng` -DLINK_TO_CURL `pkg-config --cflags libcurl` -DLINK_TO_FREETYPE2 `pkg-config --cflags freetype2` -DDISABLE_AVW -D_FILE_OFFSET_BITS=64 -D__KERNEL_STRICT_NAMES -I../../../ -DCONFIG_MENU -DCONFIG_CD -DCONFIG_VIDEO_CAPTURE -D_FORTIFY_SOURCE=2 -DSVNREVISION=0~20140513+svn12208-2build1 -DBUILDTYPE=Ubuntu -DNO_BUILD_TIMESTAMPS -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wextra -Wstrict-prototypes -Wsign-compare -Wnested-externs -Wpointer-arith -Wformat-security -Winit-self -Wno-missing-field-initializers -Wno-unused-parameter -fno-strict-aliasing -O3 -fno-strict-aliasing -fno-math-errno -ffinite-math-only -fno-rounding-math -fno-signaling-nans -fno-trapping-math -c ../../../cvar.c -o cvar.o cc -MMD -Wall -Wold-style-definition -Wstrict-prototypes -Wsign-compare -Wdeclaration-after-statement -Wmissing-prototypes -DLINK_TO_ZLIB -DLINK_TO_LIBJPEG -DLINK_TO_LIBVORBIS `pkg-config --cflags vorbisfile` -DLINK_TO_THEORA `pkg-config --cflags theora vorbis vorbisenc ogg` -DLINK_TO_PNG `pkg-config --cflags libpng` -DLINK_TO_CURL `pkg-config --cflags libcurl` -DLINK_TO_FREETYPE2 `pkg-config --cflags freetype2` -DDISABLE_AVW -D_FILE_OFFSET_BITS=64 -D__KERNEL_STRICT_NAMES -I../../../ -DCONFIG_MENU -DCONFIG_CD -DCONFIG_VIDEO_CAPTURE -D_FORTIFY_SOURCE=2 -DSVNREVISION=0~20140513+svn12208-2build1 -DBUILDTYPE=Ubuntu -DNO_BUILD_TIMESTAMPS -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wextra -Wstrict-prototypes -Wsign-compare -Wnested-externs -Wpointer-arith -Wformat-security -Winit-self -Wno-missing-field-initializers -Wno-unused-parameter -fno-strict-aliasing -O3 -fno-strict-aliasing -fno-math-errno -ffinite-math-only -fno-rounding-math -fno-signaling-nans -fno-trapping-math -c ../../../dpvsimpledecode.c -o dpvsimpledecode.o cc -MMD -Wall -Wold-style-definition -Wstrict-prototypes -Wsign-compare -Wdeclaration-after-statement -Wmissing-prototypes -DLINK_TO_ZLIB -DLINK_TO_LIBJPEG -DLINK_TO_LIBVORBIS `pkg-config --cflags vorbisfile` -DLINK_TO_THEORA `pkg-config --cflags theora vorbis vorbisenc ogg` -DLINK_TO_PNG `pkg-config --cflags libpng` -DLINK_TO_CURL `pkg-config --cflags libcurl` -DLINK_TO_FREETYPE2 `pkg-config --cflags freetype2` -DDISABLE_AVW -D_FILE_OFFSET_BITS=64 -D__KERNEL_STRICT_NAMES -I../../../ -DCONFIG_MENU -DCONFIG_CD -DCONFIG_VIDEO_CAPTURE -D_FORTIFY_SOURCE=2 -DSVNREVISION=0~20140513+svn12208-2build1 -DBUILDTYPE=Ubuntu -DNO_BUILD_TIMESTAMPS -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wextra -Wstrict-prototypes -Wsign-compare -Wnested-externs -Wpointer-arith -Wformat-security -Winit-self -Wno-missing-field-initializers -Wno-unused-parameter -fno-strict-aliasing -O3 -fno-strict-aliasing -fno-math-errno -ffinite-math-only -fno-rounding-math -fno-signaling-nans -fno-trapping-math -c ../../../filematch.c -o filematch.o cc -MMD -Wall -Wold-style-definition -Wstrict-prototypes -Wsign-compare -Wdeclaration-after-statement -Wmissing-prototypes -DLINK_TO_ZLIB -DLINK_TO_LIBJPEG -DLINK_TO_LIBVORBIS `pkg-config --cflags vorbisfile` -DLINK_TO_THEORA `pkg-config --cflags theora vorbis vorbisenc ogg` -DLINK_TO_PNG `pkg-config --cflags libpng` -DLINK_TO_CURL `pkg-config --cflags libcurl` -DLINK_TO_FREETYPE2 `pkg-config --cflags freetype2` -DDISABLE_AVW -D_FILE_OFFSET_BITS=64 -D__KERNEL_STRICT_NAMES -I../../../ -DCONFIG_MENU -DCONFIG_CD -DCONFIG_VIDEO_CAPTURE -D_FORTIFY_SOURCE=2 -DSVNREVISION=0~20140513+svn12208-2build1 -DBUILDTYPE=Ubuntu -DNO_BUILD_TIMESTAMPS -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wextra -Wstrict-prototypes -Wsign-compare -Wnested-externs -Wpointer-arith -Wformat-security -Winit-self -Wno-missing-field-initializers -Wno-unused-parameter -fno-strict-aliasing -O3 -fno-strict-aliasing -fno-math-errno -ffinite-math-only -fno-rounding-math -fno-signaling-nans -fno-trapping-math -c ../../../fractalnoise.c -o fractalnoise.o cc -MMD -Wall -Wold-style-definition -Wstrict-prototypes -Wsign-compare -Wdeclaration-after-statement -Wmissing-prototypes -DLINK_TO_ZLIB -DLINK_TO_LIBJPEG -DLINK_TO_LIBVORBIS `pkg-config --cflags vorbisfile` -DLINK_TO_THEORA `pkg-config --cflags theora vorbis vorbisenc ogg` -DLINK_TO_PNG `pkg-config --cflags libpng` -DLINK_TO_CURL `pkg-config --cflags libcurl` -DLINK_TO_FREETYPE2 `pkg-config --cflags freetype2` -DDISABLE_AVW -D_FILE_OFFSET_BITS=64 -D__KERNEL_STRICT_NAMES -I../../../ -DCONFIG_MENU -DCONFIG_CD -DCONFIG_VIDEO_CAPTURE -D_FORTIFY_SOURCE=2 -DSVNREVISION=0~20140513+svn12208-2build1 -DBUILDTYPE=Ubuntu -DNO_BUILD_TIMESTAMPS -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wextra -Wstrict-prototypes -Wsign-compare -Wnested-externs -Wpointer-arith -Wformat-security -Winit-self -Wno-missing-field-initializers -Wno-unused-parameter -fno-strict-aliasing -O3 -fno-strict-aliasing -fno-math-errno -ffinite-math-only -fno-rounding-math -fno-signaling-nans -fno-trapping-math -c ../../../fs.c -o fs.o cc -MMD -Wall -Wold-style-definition -Wstrict-prototypes -Wsign-compare -Wdeclaration-after-statement -Wmissing-prototypes -DLINK_TO_ZLIB -DLINK_TO_LIBJPEG -DLINK_TO_LIBVORBIS `pkg-config --cflags vorbisfile` -DLINK_TO_THEORA `pkg-config --cflags theora vorbis vorbisenc ogg` -DLINK_TO_PNG `pkg-config --cflags libpng` -DLINK_TO_CURL `pkg-config --cflags libcurl` -DLINK_TO_FREETYPE2 `pkg-config --cflags freetype2` -DDISABLE_AVW -D_FILE_OFFSET_BITS=64 -D__KERNEL_STRICT_NAMES -I../../../ -DCONFIG_MENU -DCONFIG_CD -DCONFIG_VIDEO_CAPTURE -D_FORTIFY_SOURCE=2 -DSVNREVISION=0~20140513+svn12208-2build1 -DBUILDTYPE=Ubuntu -DNO_BUILD_TIMESTAMPS -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wextra -Wstrict-prototypes -Wsign-compare -Wnested-externs -Wpointer-arith -Wformat-security -Winit-self -Wno-missing-field-initializers -Wno-unused-parameter -fno-strict-aliasing -O3 -fno-strict-aliasing -fno-math-errno -ffinite-math-only -fno-rounding-math -fno-signaling-nans -fno-trapping-math -c ../../../ft2.c -o ft2.o ../../../ft2.c: In function 'Font_LoadMap': ../../../ft2.c:1532:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for (x = 0; x < bmp->width; x += 8) ^ ../../../ft2.c:1547:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for (x = 0; x < bmp->width; x += 4) ^ ../../../ft2.c:1558:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for (x = 0; x < bmp->width; x += 2) ^ cc -MMD -Wall -Wold-style-definition -Wstrict-prototypes -Wsign-compare -Wdeclaration-after-statement -Wmissing-prototypes -DLINK_TO_ZLIB -DLINK_TO_LIBJPEG -DLINK_TO_LIBVORBIS `pkg-config --cflags vorbisfile` -DLINK_TO_THEORA `pkg-config --cflags theora vorbis vorbisenc ogg` -DLINK_TO_PNG `pkg-config --cflags libpng` -DLINK_TO_CURL `pkg-config --cflags libcurl` -DLINK_TO_FREETYPE2 `pkg-config --cflags freetype2` -DDISABLE_AVW -D_FILE_OFFSET_BITS=64 -D__KERNEL_STRICT_NAMES -I../../../ -DCONFIG_MENU -DCONFIG_CD -DCONFIG_VIDEO_CAPTURE -D_FORTIFY_SOURCE=2 -DSVNREVISION=0~20140513+svn12208-2build1 -DBUILDTYPE=Ubuntu -DNO_BUILD_TIMESTAMPS -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wextra -Wstrict-prototypes -Wsign-compare -Wnested-externs -Wpointer-arith -Wformat-security -Winit-self -Wno-missing-field-initializers -Wno-unused-parameter -fno-strict-aliasing -O3 -fno-strict-aliasing -fno-math-errno -ffinite-math-only -fno-rounding-math -fno-signaling-nans -fno-trapping-math -c ../../../utf8lib.c -o utf8lib.o cc -MMD -Wall -Wold-style-definition -Wstrict-prototypes -Wsign-compare -Wdeclaration-after-statement -Wmissing-prototypes -DLINK_TO_ZLIB -DLINK_TO_LIBJPEG -DLINK_TO_LIBVORBIS `pkg-config --cflags vorbisfile` -DLINK_TO_THEORA `pkg-config --cflags theora vorbis vorbisenc ogg` -DLINK_TO_PNG `pkg-config --cflags libpng` -DLINK_TO_CURL `pkg-config --cflags libcurl` -DLINK_TO_FREETYPE2 `pkg-config --cflags freetype2` -DDISABLE_AVW -D_FILE_OFFSET_BITS=64 -D__KERNEL_STRICT_NAMES -I../../../ -DCONFIG_MENU -DCONFIG_CD -DCONFIG_VIDEO_CAPTURE -D_FORTIFY_SOURCE=2 -DSVNREVISION=0~20140513+svn12208-2build1 -DBUILDTYPE=Ubuntu -DNO_BUILD_TIMESTAMPS -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wextra -Wstrict-prototypes -Wsign-compare -Wnested-externs -Wpointer-arith -Wformat-security -Winit-self -Wno-missing-field-initializers -Wno-unused-parameter -fno-strict-aliasing -O3 -fno-strict-aliasing -fno-math-errno -ffinite-math-only -fno-rounding-math -fno-signaling-nans -fno-trapping-math -c ../../../gl_backend.c -o gl_backend.o cc -MMD -Wall -Wold-style-definition -Wstrict-prototypes -Wsign-compare -Wdeclaration-after-statement -Wmissing-prototypes -DLINK_TO_ZLIB -DLINK_TO_LIBJPEG -DLINK_TO_LIBVORBIS `pkg-config --cflags vorbisfile` -DLINK_TO_THEORA `pkg-config --cflags theora vorbis vorbisenc ogg` -DLINK_TO_PNG `pkg-config --cflags libpng` -DLINK_TO_CURL `pkg-config --cflags libcurl` -DLINK_TO_FREETYPE2 `pkg-config --cflags freetype2` -DDISABLE_AVW -D_FILE_OFFSET_BITS=64 -D__KERNEL_STRICT_NAMES -I../../../ -DCONFIG_MENU -DCONFIG_CD -DCONFIG_VIDEO_CAPTURE -D_FORTIFY_SOURCE=2 -DSVNREVISION=0~20140513+svn12208-2build1 -DBUILDTYPE=Ubuntu -DNO_BUILD_TIMESTAMPS -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wextra -Wstrict-prototypes -Wsign-compare -Wnested-externs -Wpointer-arith -Wformat-security -Winit-self -Wno-missing-field-initializers -Wno-unused-parameter -fno-strict-aliasing -O3 -fno-strict-aliasing -fno-math-errno -ffinite-math-only -fno-rounding-math -fno-signaling-nans -fno-trapping-math -c ../../../gl_draw.c -o gl_draw.o cc -MMD -Wall -Wold-style-definition -Wstrict-prototypes -Wsign-compare -Wdeclaration-after-statement -Wmissing-prototypes -DLINK_TO_ZLIB -DLINK_TO_LIBJPEG -DLINK_TO_LIBVORBIS `pkg-config --cflags vorbisfile` -DLINK_TO_THEORA `pkg-config --cflags theora vorbis vorbisenc ogg` -DLINK_TO_PNG `pkg-config --cflags libpng` -DLINK_TO_CURL `pkg-config --cflags libcurl` -DLINK_TO_FREETYPE2 `pkg-config --cflags freetype2` -DDISABLE_AVW -D_FILE_OFFSET_BITS=64 -D__KERNEL_STRICT_NAMES -I../../../ -DCONFIG_MENU -DCONFIG_CD -DCONFIG_VIDEO_CAPTURE -D_FORTIFY_SOURCE=2 -DSVNREVISION=0~20140513+svn12208-2build1 -DBUILDTYPE=Ubuntu -DNO_BUILD_TIMESTAMPS -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wextra -Wstrict-prototypes -Wsign-compare -Wnested-externs -Wpointer-arith -Wformat-security -Winit-self -Wno-missing-field-initializers -Wno-unused-parameter -fno-strict-aliasing -O3 -fno-strict-aliasing -fno-math-errno -ffinite-math-only -fno-rounding-math -fno-signaling-nans -fno-trapping-math -c ../../../gl_rmain.c -o gl_rmain.o ../../../gl_rmain.c: In function 'gl_main_start': ../../../gl_rmain.c:4064:4: warning: statement is indented as if it were guarded by... [-Wmisleading-indentation] break; ^~~~~ ../../../gl_rmain.c:4061:3: note: ...this 'if' clause, but it is not if (vid.support.arb_uniform_buffer_object) ^~ cc -MMD -Wall -Wold-style-definition -Wstrict-prototypes -Wsign-compare -Wdeclaration-after-statement -Wmissing-prototypes -DLINK_TO_ZLIB -DLINK_TO_LIBJPEG -DLINK_TO_LIBVORBIS `pkg-config --cflags vorbisfile` -DLINK_TO_THEORA `pkg-config --cflags theora vorbis vorbisenc ogg` -DLINK_TO_PNG `pkg-config --cflags libpng` -DLINK_TO_CURL `pkg-config --cflags libcurl` -DLINK_TO_FREETYPE2 `pkg-config --cflags freetype2` -DDISABLE_AVW -D_FILE_OFFSET_BITS=64 -D__KERNEL_STRICT_NAMES -I../../../ -DCONFIG_MENU -DCONFIG_CD -DCONFIG_VIDEO_CAPTURE -D_FORTIFY_SOURCE=2 -DSVNREVISION=0~20140513+svn12208-2build1 -DBUILDTYPE=Ubuntu -DNO_BUILD_TIMESTAMPS -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wextra -Wstrict-prototypes -Wsign-compare -Wnested-externs -Wpointer-arith -Wformat-security -Winit-self -Wno-missing-field-initializers -Wno-unused-parameter -fno-strict-aliasing -O3 -fno-strict-aliasing -fno-math-errno -ffinite-math-only -fno-rounding-math -fno-signaling-nans -fno-trapping-math -c ../../../gl_rsurf.c -o gl_rsurf.o ../../../gl_rsurf.c: In function 'R_Q1BSP_CallRecursiveGetLightInfo': ../../../gl_rsurf.c:1105:2: warning: nested extern declaration of 'r_shadow_usebihculling' [-Wnested-externs] extern cvar_t r_shadow_usebihculling; ^~~~~~ cc -MMD -Wall -Wold-style-definition -Wstrict-prototypes -Wsign-compare -Wdeclaration-after-statement -Wmissing-prototypes -DLINK_TO_ZLIB -DLINK_TO_LIBJPEG -DLINK_TO_LIBVORBIS `pkg-config --cflags vorbisfile` -DLINK_TO_THEORA `pkg-config --cflags theora vorbis vorbisenc ogg` -DLINK_TO_PNG `pkg-config --cflags libpng` -DLINK_TO_CURL `pkg-config --cflags libcurl` -DLINK_TO_FREETYPE2 `pkg-config --cflags freetype2` -DDISABLE_AVW -D_FILE_OFFSET_BITS=64 -D__KERNEL_STRICT_NAMES -I../../../ -DCONFIG_MENU -DCONFIG_CD -DCONFIG_VIDEO_CAPTURE -D_FORTIFY_SOURCE=2 -DSVNREVISION=0~20140513+svn12208-2build1 -DBUILDTYPE=Ubuntu -DNO_BUILD_TIMESTAMPS -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wextra -Wstrict-prototypes -Wsign-compare -Wnested-externs -Wpointer-arith -Wformat-security -Winit-self -Wno-missing-field-initializers -Wno-unused-parameter -fno-strict-aliasing -O3 -fno-strict-aliasing -fno-math-errno -ffinite-math-only -fno-rounding-math -fno-signaling-nans -fno-trapping-math -c ../../../gl_textures.c -o gl_textures.o cc -MMD -Wall -Wold-style-definition -Wstrict-prototypes -Wsign-compare -Wdeclaration-after-statement -Wmissing-prototypes -DLINK_TO_ZLIB -DLINK_TO_LIBJPEG -DLINK_TO_LIBVORBIS `pkg-config --cflags vorbisfile` -DLINK_TO_THEORA `pkg-config --cflags theora vorbis vorbisenc ogg` -DLINK_TO_PNG `pkg-config --cflags libpng` -DLINK_TO_CURL `pkg-config --cflags libcurl` -DLINK_TO_FREETYPE2 `pkg-config --cflags freetype2` -DDISABLE_AVW -D_FILE_OFFSET_BITS=64 -D__KERNEL_STRICT_NAMES -I../../../ -DCONFIG_MENU -DCONFIG_CD -DCONFIG_VIDEO_CAPTURE -D_FORTIFY_SOURCE=2 -DSVNREVISION=0~20140513+svn12208-2build1 -DBUILDTYPE=Ubuntu -DNO_BUILD_TIMESTAMPS -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wextra -Wstrict-prototypes -Wsign-compare -Wnested-externs -Wpointer-arith -Wformat-security -Winit-self -Wno-missing-field-initializers -Wno-unused-parameter -fno-strict-aliasing -O3 -fno-strict-aliasing -fno-math-errno -ffinite-math-only -fno-rounding-math -fno-signaling-nans -fno-trapping-math -c ../../../hmac.c -o hmac.o cc -MMD -Wall -Wold-style-definition -Wstrict-prototypes -Wsign-compare -Wdeclaration-after-statement -Wmissing-prototypes -DLINK_TO_ZLIB -DLINK_TO_LIBJPEG -DLINK_TO_LIBVORBIS `pkg-config --cflags vorbisfile` -DLINK_TO_THEORA `pkg-config --cflags theora vorbis vorbisenc ogg` -DLINK_TO_PNG `pkg-config --cflags libpng` -DLINK_TO_CURL `pkg-config --cflags libcurl` -DLINK_TO_FREETYPE2 `pkg-config --cflags freetype2` -DDISABLE_AVW -D_FILE_OFFSET_BITS=64 -D__KERNEL_STRICT_NAMES -I../../../ -DCONFIG_MENU -DCONFIG_CD -DCONFIG_VIDEO_CAPTURE -D_FORTIFY_SOURCE=2 -DSVNREVISION=0~20140513+svn12208-2build1 -DBUILDTYPE=Ubuntu -DNO_BUILD_TIMESTAMPS -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wextra -Wstrict-prototypes -Wsign-compare -Wnested-externs -Wpointer-arith -Wformat-security -Winit-self -Wno-missing-field-initializers -Wno-unused-parameter -fno-strict-aliasing -O3 -fno-strict-aliasing -fno-math-errno -ffinite-math-only -fno-rounding-math -fno-signaling-nans -fno-trapping-math -c ../../../host.c -o host.o ../../../host.c: In function 'Host_Main': ../../../host.c:669:9: warning: variable 'time1' might be clobbered by 'longjmp' or 'vfork' [-Wclobbered] double time1 = 0; ^~~~~ ../../../host.c:670:9: warning: variable 'time2' might be clobbered by 'longjmp' or 'vfork' [-Wclobbered] double time2 = 0; ^~~~~ ../../../host.c:671:9: warning: variable 'time3' might be clobbered by 'longjmp' or 'vfork' [-Wclobbered] double time3 = 0; ^~~~~ ../../../host.c:672:9: warning: variable 'cl_timer' might be clobbered by 'longjmp' or 'vfork' [-Wclobbered] double cl_timer = 0, sv_timer = 0; ^~~~~~~~ ../../../host.c:672:23: warning: variable 'sv_timer' might be clobbered by 'longjmp' or 'vfork' [-Wclobbered] double cl_timer = 0, sv_timer = 0; ^~~~~~~~ cc -MMD -Wall -Wold-style-definition -Wstrict-prototypes -Wsign-compare -Wdeclaration-after-statement -Wmissing-prototypes -DLINK_TO_ZLIB -DLINK_TO_LIBJPEG -DLINK_TO_LIBVORBIS `pkg-config --cflags vorbisfile` -DLINK_TO_THEORA `pkg-config --cflags theora vorbis vorbisenc ogg` -DLINK_TO_PNG `pkg-config --cflags libpng` -DLINK_TO_CURL `pkg-config --cflags libcurl` -DLINK_TO_FREETYPE2 `pkg-config --cflags freetype2` -DDISABLE_AVW -D_FILE_OFFSET_BITS=64 -D__KERNEL_STRICT_NAMES -I../../../ -DCONFIG_MENU -DCONFIG_CD -DCONFIG_VIDEO_CAPTURE -D_FORTIFY_SOURCE=2 -DSVNREVISION=0~20140513+svn12208-2build1 -DBUILDTYPE=Ubuntu -DNO_BUILD_TIMESTAMPS -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wextra -Wstrict-prototypes -Wsign-compare -Wnested-externs -Wpointer-arith -Wformat-security -Winit-self -Wno-missing-field-initializers -Wno-unused-parameter -fno-strict-aliasing -O3 -fno-strict-aliasing -fno-math-errno -ffinite-math-only -fno-rounding-math -fno-signaling-nans -fno-trapping-math -c ../../../host_cmd.c -o host_cmd.o cc -MMD -Wall -Wold-style-definition -Wstrict-prototypes -Wsign-compare -Wdeclaration-after-statement -Wmissing-prototypes -DLINK_TO_ZLIB -DLINK_TO_LIBJPEG -DLINK_TO_LIBVORBIS `pkg-config --cflags vorbisfile` -DLINK_TO_THEORA `pkg-config --cflags theora vorbis vorbisenc ogg` -DLINK_TO_PNG `pkg-config --cflags libpng` -DLINK_TO_CURL `pkg-config --cflags libcurl` -DLINK_TO_FREETYPE2 `pkg-config --cflags freetype2` -DDISABLE_AVW -D_FILE_OFFSET_BITS=64 -D__KERNEL_STRICT_NAMES -I../../../ -DCONFIG_MENU -DCONFIG_CD -DCONFIG_VIDEO_CAPTURE -D_FORTIFY_SOURCE=2 -DSVNREVISION=0~20140513+svn12208-2build1 -DBUILDTYPE=Ubuntu -DNO_BUILD_TIMESTAMPS -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wextra -Wstrict-prototypes -Wsign-compare -Wnested-externs -Wpointer-arith -Wformat-security -Winit-self -Wno-missing-field-initializers -Wno-unused-parameter -fno-strict-aliasing -O3 -fno-strict-aliasing -fno-math-errno -ffinite-math-only -fno-rounding-math -fno-signaling-nans -fno-trapping-math -c ../../../image.c -o image.o cc -MMD -Wall -Wold-style-definition -Wstrict-prototypes -Wsign-compare -Wdeclaration-after-statement -Wmissing-prototypes -DLINK_TO_ZLIB -DLINK_TO_LIBJPEG -DLINK_TO_LIBVORBIS `pkg-config --cflags vorbisfile` -DLINK_TO_THEORA `pkg-config --cflags theora vorbis vorbisenc ogg` -DLINK_TO_PNG `pkg-config --cflags libpng` -DLINK_TO_CURL `pkg-config --cflags libcurl` -DLINK_TO_FREETYPE2 `pkg-config --cflags freetype2` -DDISABLE_AVW -D_FILE_OFFSET_BITS=64 -D__KERNEL_STRICT_NAMES -I../../../ -DCONFIG_MENU -DCONFIG_CD -DCONFIG_VIDEO_CAPTURE -D_FORTIFY_SOURCE=2 -DSVNREVISION=0~20140513+svn12208-2build1 -DBUILDTYPE=Ubuntu -DNO_BUILD_TIMESTAMPS -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wextra -Wstrict-prototypes -Wsign-compare -Wnested-externs -Wpointer-arith -Wformat-security -Winit-self -Wno-missing-field-initializers -Wno-unused-parameter -fno-strict-aliasing -O3 -fno-strict-aliasing -fno-math-errno -ffinite-math-only -fno-rounding-math -fno-signaling-nans -fno-trapping-math -c ../../../image_png.c -o image_png.o cc -MMD -Wall -Wold-style-definition -Wstrict-prototypes -Wsign-compare -Wdeclaration-after-statement -Wmissing-prototypes -DLINK_TO_ZLIB -DLINK_TO_LIBJPEG -DLINK_TO_LIBVORBIS `pkg-config --cflags vorbisfile` -DLINK_TO_THEORA `pkg-config --cflags theora vorbis vorbisenc ogg` -DLINK_TO_PNG `pkg-config --cflags libpng` -DLINK_TO_CURL `pkg-config --cflags libcurl` -DLINK_TO_FREETYPE2 `pkg-config --cflags freetype2` -DDISABLE_AVW -D_FILE_OFFSET_BITS=64 -D__KERNEL_STRICT_NAMES -I../../../ -DCONFIG_MENU -DCONFIG_CD -DCONFIG_VIDEO_CAPTURE -D_FORTIFY_SOURCE=2 -DSVNREVISION=0~20140513+svn12208-2build1 -DBUILDTYPE=Ubuntu -DNO_BUILD_TIMESTAMPS -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wextra -Wstrict-prototypes -Wsign-compare -Wnested-externs -Wpointer-arith -Wformat-security -Winit-self -Wno-missing-field-initializers -Wno-unused-parameter -fno-strict-aliasing -O3 -fno-strict-aliasing -fno-math-errno -ffinite-math-only -fno-rounding-math -fno-signaling-nans -fno-trapping-math -c ../../../jpeg.c -o jpeg.o ../../../jpeg.c: In function 'JPEG_LoadImage_BGRA': ../../../jpeg.c:611:6: warning: variable 'submip' might be clobbered by 'longjmp' or 'vfork' [-Wclobbered] int submip = 0; ^~~~~~ cc -MMD -Wall -Wold-style-definition -Wstrict-prototypes -Wsign-compare -Wdeclaration-after-statement -Wmissing-prototypes -DLINK_TO_ZLIB -DLINK_TO_LIBJPEG -DLINK_TO_LIBVORBIS `pkg-config --cflags vorbisfile` -DLINK_TO_THEORA `pkg-config --cflags theora vorbis vorbisenc ogg` -DLINK_TO_PNG `pkg-config --cflags libpng` -DLINK_TO_CURL `pkg-config --cflags libcurl` -DLINK_TO_FREETYPE2 `pkg-config --cflags freetype2` -DDISABLE_AVW -D_FILE_OFFSET_BITS=64 -D__KERNEL_STRICT_NAMES -I../../../ -DCONFIG_MENU -DCONFIG_CD -DCONFIG_VIDEO_CAPTURE -D_FORTIFY_SOURCE=2 -DSVNREVISION=0~20140513+svn12208-2build1 -DBUILDTYPE=Ubuntu -DNO_BUILD_TIMESTAMPS -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wextra -Wstrict-prototypes -Wsign-compare -Wnested-externs -Wpointer-arith -Wformat-security -Winit-self -Wno-missing-field-initializers -Wno-unused-parameter -fno-strict-aliasing -O3 -fno-strict-aliasing -fno-math-errno -ffinite-math-only -fno-rounding-math -fno-signaling-nans -fno-trapping-math -c ../../../keys.c -o keys.o cc -MMD -Wall -Wold-style-definition -Wstrict-prototypes -Wsign-compare -Wdeclaration-after-statement -Wmissing-prototypes -DLINK_TO_ZLIB -DLINK_TO_LIBJPEG -DLINK_TO_LIBVORBIS `pkg-config --cflags vorbisfile` -DLINK_TO_THEORA `pkg-config --cflags theora vorbis vorbisenc ogg` -DLINK_TO_PNG `pkg-config --cflags libpng` -DLINK_TO_CURL `pkg-config --cflags libcurl` -DLINK_TO_FREETYPE2 `pkg-config --cflags freetype2` -DDISABLE_AVW -D_FILE_OFFSET_BITS=64 -D__KERNEL_STRICT_NAMES -I../../../ -DCONFIG_MENU -DCONFIG_CD -DCONFIG_VIDEO_CAPTURE -D_FORTIFY_SOURCE=2 -DSVNREVISION=0~20140513+svn12208-2build1 -DBUILDTYPE=Ubuntu -DNO_BUILD_TIMESTAMPS -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wextra -Wstrict-prototypes -Wsign-compare -Wnested-externs -Wpointer-arith -Wformat-security -Winit-self -Wno-missing-field-initializers -Wno-unused-parameter -fno-strict-aliasing -O3 -fno-strict-aliasing -fno-math-errno -ffinite-math-only -fno-rounding-math -fno-signaling-nans -fno-trapping-math -c ../../../lhnet.c -o lhnet.o cc -MMD -Wall -Wold-style-definition -Wstrict-prototypes -Wsign-compare -Wdeclaration-after-statement -Wmissing-prototypes -DLINK_TO_ZLIB -DLINK_TO_LIBJPEG -DLINK_TO_LIBVORBIS `pkg-config --cflags vorbisfile` -DLINK_TO_THEORA `pkg-config --cflags theora vorbis vorbisenc ogg` -DLINK_TO_PNG `pkg-config --cflags libpng` -DLINK_TO_CURL `pkg-config --cflags libcurl` -DLINK_TO_FREETYPE2 `pkg-config --cflags freetype2` -DDISABLE_AVW -D_FILE_OFFSET_BITS=64 -D__KERNEL_STRICT_NAMES -I../../../ -DCONFIG_MENU -DCONFIG_CD -DCONFIG_VIDEO_CAPTURE -D_FORTIFY_SOURCE=2 -DSVNREVISION=0~20140513+svn12208-2build1 -DBUILDTYPE=Ubuntu -DNO_BUILD_TIMESTAMPS -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wextra -Wstrict-prototypes -Wsign-compare -Wnested-externs -Wpointer-arith -Wformat-security -Winit-self -Wno-missing-field-initializers -Wno-unused-parameter -fno-strict-aliasing -O3 -fno-strict-aliasing -fno-math-errno -ffinite-math-only -fno-rounding-math -fno-signaling-nans -fno-trapping-math -c ../../../libcurl.c -o libcurl.o cc -MMD -Wall -Wold-style-definition -Wstrict-prototypes -Wsign-compare -Wdeclaration-after-statement -Wmissing-prototypes -DLINK_TO_ZLIB -DLINK_TO_LIBJPEG -DLINK_TO_LIBVORBIS `pkg-config --cflags vorbisfile` -DLINK_TO_THEORA `pkg-config --cflags theora vorbis vorbisenc ogg` -DLINK_TO_PNG `pkg-config --cflags libpng` -DLINK_TO_CURL `pkg-config --cflags libcurl` -DLINK_TO_FREETYPE2 `pkg-config --cflags freetype2` -DDISABLE_AVW -D_FILE_OFFSET_BITS=64 -D__KERNEL_STRICT_NAMES -I../../../ -DCONFIG_MENU -DCONFIG_CD -DCONFIG_VIDEO_CAPTURE -D_FORTIFY_SOURCE=2 -DSVNREVISION=0~20140513+svn12208-2build1 -DBUILDTYPE=Ubuntu -DNO_BUILD_TIMESTAMPS -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wextra -Wstrict-prototypes -Wsign-compare -Wnested-externs -Wpointer-arith -Wformat-security -Winit-self -Wno-missing-field-initializers -Wno-unused-parameter -fno-strict-aliasing -O3 -fno-strict-aliasing -fno-math-errno -ffinite-math-only -fno-rounding-math -fno-signaling-nans -fno-trapping-math -c ../../../mathlib.c -o mathlib.o cc -MMD -Wall -Wold-style-definition -Wstrict-prototypes -Wsign-compare -Wdeclaration-after-statement -Wmissing-prototypes -DLINK_TO_ZLIB -DLINK_TO_LIBJPEG -DLINK_TO_LIBVORBIS `pkg-config --cflags vorbisfile` -DLINK_TO_THEORA `pkg-config --cflags theora vorbis vorbisenc ogg` -DLINK_TO_PNG `pkg-config --cflags libpng` -DLINK_TO_CURL `pkg-config --cflags libcurl` -DLINK_TO_FREETYPE2 `pkg-config --cflags freetype2` -DDISABLE_AVW -D_FILE_OFFSET_BITS=64 -D__KERNEL_STRICT_NAMES -I../../../ -DCONFIG_MENU -DCONFIG_CD -DCONFIG_VIDEO_CAPTURE -D_FORTIFY_SOURCE=2 -DSVNREVISION=0~20140513+svn12208-2build1 -DBUILDTYPE=Ubuntu -DNO_BUILD_TIMESTAMPS -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wextra -Wstrict-prototypes -Wsign-compare -Wnested-externs -Wpointer-arith -Wformat-security -Winit-self -Wno-missing-field-initializers -Wno-unused-parameter -fno-strict-aliasing -O3 -fno-strict-aliasing -fno-math-errno -ffinite-math-only -fno-rounding-math -fno-signaling-nans -fno-trapping-math -c ../../../matrixlib.c -o matrixlib.o cc -MMD -Wall -Wold-style-definition -Wstrict-prototypes -Wsign-compare -Wdeclaration-after-statement -Wmissing-prototypes -DLINK_TO_ZLIB -DLINK_TO_LIBJPEG -DLINK_TO_LIBVORBIS `pkg-config --cflags vorbisfile` -DLINK_TO_THEORA `pkg-config --cflags theora vorbis vorbisenc ogg` -DLINK_TO_PNG `pkg-config --cflags libpng` -DLINK_TO_CURL `pkg-config --cflags libcurl` -DLINK_TO_FREETYPE2 `pkg-config --cflags freetype2` -DDISABLE_AVW -D_FILE_OFFSET_BITS=64 -D__KERNEL_STRICT_NAMES -I../../../ -DCONFIG_MENU -DCONFIG_CD -DCONFIG_VIDEO_CAPTURE -D_FORTIFY_SOURCE=2 -DSVNREVISION=0~20140513+svn12208-2build1 -DBUILDTYPE=Ubuntu -DNO_BUILD_TIMESTAMPS -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wextra -Wstrict-prototypes -Wsign-compare -Wnested-externs -Wpointer-arith -Wformat-security -Winit-self -Wno-missing-field-initializers -Wno-unused-parameter -fno-strict-aliasing -O3 -fno-strict-aliasing -fno-math-errno -ffinite-math-only -fno-rounding-math -fno-signaling-nans -fno-trapping-math -c ../../../mdfour.c -o mdfour.o cc -MMD -Wall -Wold-style-definition -Wstrict-prototypes -Wsign-compare -Wdeclaration-after-statement -Wmissing-prototypes -DLINK_TO_ZLIB -DLINK_TO_LIBJPEG -DLINK_TO_LIBVORBIS `pkg-config --cflags vorbisfile` -DLINK_TO_THEORA `pkg-config --cflags theora vorbis vorbisenc ogg` -DLINK_TO_PNG `pkg-config --cflags libpng` -DLINK_TO_CURL `pkg-config --cflags libcurl` -DLINK_TO_FREETYPE2 `pkg-config --cflags freetype2` -DDISABLE_AVW -D_FILE_OFFSET_BITS=64 -D__KERNEL_STRICT_NAMES -I../../../ -DCONFIG_MENU -DCONFIG_CD -DCONFIG_VIDEO_CAPTURE -D_FORTIFY_SOURCE=2 -DSVNREVISION=0~20140513+svn12208-2build1 -DBUILDTYPE=Ubuntu -DNO_BUILD_TIMESTAMPS -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wextra -Wstrict-prototypes -Wsign-compare -Wnested-externs -Wpointer-arith -Wformat-security -Winit-self -Wno-missing-field-initializers -Wno-unused-parameter -fno-strict-aliasing -O3 -fno-strict-aliasing -fno-math-errno -ffinite-math-only -fno-rounding-math -fno-signaling-nans -fno-trapping-math -c ../../../meshqueue.c -o meshqueue.o cc -MMD -Wall -Wold-style-definition -Wstrict-prototypes -Wsign-compare -Wdeclaration-after-statement -Wmissing-prototypes -DLINK_TO_ZLIB -DLINK_TO_LIBJPEG -DLINK_TO_LIBVORBIS `pkg-config --cflags vorbisfile` -DLINK_TO_THEORA `pkg-config --cflags theora vorbis vorbisenc ogg` -DLINK_TO_PNG `pkg-config --cflags libpng` -DLINK_TO_CURL `pkg-config --cflags libcurl` -DLINK_TO_FREETYPE2 `pkg-config --cflags freetype2` -DDISABLE_AVW -D_FILE_OFFSET_BITS=64 -D__KERNEL_STRICT_NAMES -I../../../ -DCONFIG_MENU -DCONFIG_CD -DCONFIG_VIDEO_CAPTURE -D_FORTIFY_SOURCE=2 -DSVNREVISION=0~20140513+svn12208-2build1 -DBUILDTYPE=Ubuntu -DNO_BUILD_TIMESTAMPS -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wextra -Wstrict-prototypes -Wsign-compare -Wnested-externs -Wpointer-arith -Wformat-security -Winit-self -Wno-missing-field-initializers -Wno-unused-parameter -fno-strict-aliasing -O3 -fno-strict-aliasing -fno-math-errno -ffinite-math-only -fno-rounding-math -fno-signaling-nans -fno-trapping-math -c ../../../mod_skeletal_animatevertices_generic.c -o mod_skeletal_animatevertices_generic.o cc -MMD -Wall -Wold-style-definition -Wstrict-prototypes -Wsign-compare -Wdeclaration-after-statement -Wmissing-prototypes -DLINK_TO_ZLIB -DLINK_TO_LIBJPEG -DLINK_TO_LIBVORBIS `pkg-config --cflags vorbisfile` -DLINK_TO_THEORA `pkg-config --cflags theora vorbis vorbisenc ogg` -DLINK_TO_PNG `pkg-config --cflags libpng` -DLINK_TO_CURL `pkg-config --cflags libcurl` -DLINK_TO_FREETYPE2 `pkg-config --cflags freetype2` -DDISABLE_AVW -D_FILE_OFFSET_BITS=64 -D__KERNEL_STRICT_NAMES -I../../../ -DCONFIG_MENU -DCONFIG_CD -DCONFIG_VIDEO_CAPTURE -D_FORTIFY_SOURCE=2 -DSVNREVISION=0~20140513+svn12208-2build1 -DBUILDTYPE=Ubuntu -DNO_BUILD_TIMESTAMPS -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wextra -Wstrict-prototypes -Wsign-compare -Wnested-externs -Wpointer-arith -Wformat-security -Winit-self -Wno-missing-field-initializers -Wno-unused-parameter -fno-strict-aliasing -O3 -fno-strict-aliasing -fno-math-errno -ffinite-math-only -fno-rounding-math -fno-signaling-nans -fno-trapping-math -c ../../../model_alias.c -o model_alias.o cc -MMD -Wall -Wold-style-definition -Wstrict-prototypes -Wsign-compare -Wdeclaration-after-statement -Wmissing-prototypes -DLINK_TO_ZLIB -DLINK_TO_LIBJPEG -DLINK_TO_LIBVORBIS `pkg-config --cflags vorbisfile` -DLINK_TO_THEORA `pkg-config --cflags theora vorbis vorbisenc ogg` -DLINK_TO_PNG `pkg-config --cflags libpng` -DLINK_TO_CURL `pkg-config --cflags libcurl` -DLINK_TO_FREETYPE2 `pkg-config --cflags freetype2` -DDISABLE_AVW -D_FILE_OFFSET_BITS=64 -D__KERNEL_STRICT_NAMES -I../../../ -DCONFIG_MENU -DCONFIG_CD -DCONFIG_VIDEO_CAPTURE -D_FORTIFY_SOURCE=2 -DSVNREVISION=0~20140513+svn12208-2build1 -DBUILDTYPE=Ubuntu -DNO_BUILD_TIMESTAMPS -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wextra -Wstrict-prototypes -Wsign-compare -Wnested-externs -Wpointer-arith -Wformat-security -Winit-self -Wno-missing-field-initializers -Wno-unused-parameter -fno-strict-aliasing -O3 -fno-strict-aliasing -fno-math-errno -ffinite-math-only -fno-rounding-math -fno-signaling-nans -fno-trapping-math -c ../../../model_brush.c -o model_brush.o ../../../model_brush.c: In function 'Mod_OBJ_Load': ../../../model_brush.c:8403:53: warning: statement is indented as if it were guarded by... [-Wmisleading-indentation] loadmodel->surfmesh.data_neighbor3i = (int *)data;data += numtriangles * sizeof(int[3]); ^~~~ ../../../model_brush.c:8402:2: note: ...this 'if' clause, but it is not if (r_enableshadowvolumes.integer) ^~ ../../../model_brush.c:8410:63: warning: statement is indented as if it were guarded by... [-Wmisleading-indentation] loadmodel->surfmesh.data_element3s = (unsigned short *)data;data += loadmodel->surfmesh.num_triangles * sizeof(unsigned short[3]); ^~~~ ../../../model_brush.c:8409:2: note: ...this 'if' clause, but it is not if (loadmodel->surfmesh.num_vertices <= 65536) ^~ ../../../model_brush.c: In function 'Mod_IBSP_Load': ../../../model_brush.c:7952:6: internal compiler error: in vect_transform_stmt, at tree-vect-stmts.c:8176 void Mod_IBSP_Load(dp_model_t *mod, void *buffer, void *bufferend) ^~~~~~~~~~~~~ 0xb5f402 vect_transform_stmt(gimple*, gimple_stmt_iterator*, bool*, _slp_tree*, _slp_instance*) ../../src/gcc/tree-vect-stmts.c:8176 0xb76116 vect_schedule_slp_instance ../../src/gcc/tree-vect-slp.c:3580 0xb75e2e vect_schedule_slp_instance ../../src/gcc/tree-vect-slp.c:3455 0xb78e85 vect_schedule_slp(vec_info*) ../../src/gcc/tree-vect-slp.c:3652 0xb7966c vect_slp_bb(basic_block_def*) ../../src/gcc/tree-vect-slp.c:2663 0xb7b235 execute ../../src/gcc/tree-vectorizer.c:759 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See for instructions. Preprocessed source stored into /tmp/ccBlmjIV.out file, please attach this to your bugreport. === BEGIN GCC DUMP === // Target: x86_64-linux-gnu // Configured with: ../src/configure -v --with-pkgversion='Ubuntu 6-20160109-1ubuntu1' --with-bugurl=file:///usr/share/doc/gcc-6/README.Bugs --enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-6 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-6-amd64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-6-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-6-amd64 --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu // Thread model: posix // gcc version 6.0.0 20160109 (experimental) [trunk revision 232188] (Ubuntu 6-20160109-1ubuntu1) // // ../../../model_brush.c: In function 'Mod_OBJ_Load': // ../../../model_brush.c:8403:53: warning: statement is indented as if it were guarded by... [-Wmisleading-indentation] // loadmodel->surfmesh.data_neighbor3i = (int *)data;data += numtriangles * sizeof(int[3]); // ^~~~ // // ../../../model_brush.c:8402:2: note: ...this 'if' clause, but it is not // if (r_enableshadowvolumes.integer) // ^~ // // ../../../model_brush.c:8410:63: warning: statement is indented as if it were guarded by... [-Wmisleading-indentation] // loadmodel->surfmesh.data_element3s = (unsigned short *)data;data += loadmodel->surfmesh.num_triangles * sizeof(unsigned short[3]); // ^~~~ // // ../../../model_brush.c:8409:2: note: ...this 'if' clause, but it is not // if (loadmodel->surfmesh.num_vertices <= 65536) // ^~ // // ../../../model_brush.c: In function 'Mod_IBSP_Load': // ../../../model_brush.c:7952:6: internal compiler error: in vect_transform_stmt, at tree-vect-stmts.c:8176 // void Mod_IBSP_Load(dp_model_t *mod, void *buffer, void *bufferend) // ^~~~~~~~~~~~~ // // 0xb5f402 vect_transform_stmt(gimple*, gimple_stmt_iterator*, bool*, _slp_tree*, _slp_instance*) // ../../src/gcc/tree-vect-stmts.c:8176 // 0xb76116 vect_schedule_slp_instance // ../../src/gcc/tree-vect-slp.c:3580 // 0xb75e2e vect_schedule_slp_instance // ../../src/gcc/tree-vect-slp.c:3455 // 0xb78e85 vect_schedule_slp(vec_info*) // ../../src/gcc/tree-vect-slp.c:3652 // 0xb7966c vect_slp_bb(basic_block_def*) // ../../src/gcc/tree-vect-slp.c:2663 // 0xb7b235 execute // ../../src/gcc/tree-vectorizer.c:759 // Please submit a full bug report, // with preprocessed source if appropriate. // Please include the complete backtrace with any bug report. // See for instructions. // /usr/lib/gcc/x86_64-linux-gnu/6/cc1 -quiet -I /usr/include/libpng12 -I /usr/include/freetype2 -I ../../../ -imultiarch x86_64-linux-gnu -MMD model_brush.d -MQ model_brush.o -D LINK_TO_ZLIB -D LINK_TO_LIBJPEG -D LINK_TO_LIBVORBIS -D LINK_TO_THEORA -D LINK_TO_PNG -D LINK_TO_CURL -D LINK_TO_FREETYPE2 -D DISABLE_AVW -D _FILE_OFFSET_BITS=64 -D __KERNEL_STRICT_NAMES -D CONFIG_MENU -D CONFIG_CD -D CONFIG_VIDEO_CAPTURE -D _FORTIFY_SOURCE=2 -D SVNREVISION=0~20140513+svn12208-2build1 -D BUILDTYPE=Ubuntu -D NO_BUILD_TIMESTAMPS ../../../model_brush.c -quiet -dumpbase model_brush.c -mtune=generic -march=x86-64 -auxbase-strip model_brush.o -g -O2 -O3 -Wold-style-definition -Wdeclaration-after-statement -Wmissing-prototypes -Wformat=1 -Werror=format-security -Wall -Wextra -Wstrict-prototypes -Wsign-compare -Wnested-externs -Wpointer-arith -Wformat-security -Winit-self -Wno-missing-field-initializers -Wno-unused-parameter -fstack-protector-strong -fno-strict-aliasing -fno-math-errno -ffinite-math-only -fno-rounding-math -fno-signaling-nans -fno-trapping-math -fstack-protector-strong -Wformat-security -o - -frandom-seed=0 -fdump-noaddr # 1 "../../../model_brush.c" # 1 "/«BUILDDIR»/darkplaces-0~20140513+svn12208/build-obj/release/darkplaces-sdl//" # 1 "" # 1 "" # 1 "/usr/include/stdc-predef.h" 1 3 4 # 1 "" 2 # 1 "../../../model_brush.c" # 21 "../../../model_brush.c" # 1 "../../../quakedef.h" 1 # 39 "../../../quakedef.h" # 1 "/usr/include/x86_64-linux-gnu/sys/types.h" 1 3 4 # 25 "/usr/include/x86_64-linux-gnu/sys/types.h" 3 4 # 1 "/usr/include/features.h" 1 3 4 # 364 "/usr/include/features.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 1 3 4 # 402 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4 # 403 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 2 3 4 # 365 "/usr/include/features.h" 2 3 4 # 388 "/usr/include/features.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/gnu/stubs.h" 1 3 4 # 10 "/usr/include/x86_64-linux-gnu/gnu/stubs.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/gnu/stubs-64.h" 1 3 4 # 11 "/usr/include/x86_64-linux-gnu/gnu/stubs.h" 2 3 4 # 389 "/usr/include/features.h" 2 3 4 # 26 "/usr/include/x86_64-linux-gnu/sys/types.h" 2 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/types.h" 1 3 4 # 27 "/usr/include/x86_64-linux-gnu/bits/types.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4 # 28 "/usr/include/x86_64-linux-gnu/bits/types.h" 2 3 4 # 30 "/usr/include/x86_64-linux-gnu/bits/types.h" 3 4 typedef unsigned char __u_char; typedef unsigned short int __u_short; typedef unsigned int __u_int; typedef unsigned long int __u_long; typedef signed char __int8_t; typedef unsigned char __uint8_t; typedef signed short int __int16_t; typedef unsigned short int __uint16_t; typedef signed int __int32_t; typedef unsigned int __uint32_t; typedef signed long int __int64_t; typedef unsigned long int __uint64_t; typedef long int __quad_t; typedef unsigned long int __u_quad_t; # 121 "/usr/include/x86_64-linux-gnu/bits/types.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/typesizes.h" 1 3 4 # 122 "/usr/include/x86_64-linux-gnu/bits/types.h" 2 3 4 typedef unsigned long int __dev_t; typedef unsigned int __uid_t; typedef unsigned int __gid_t; typedef unsigned long int __ino_t; typedef unsigned long int __ino64_t; typedef unsigned int __mode_t; typedef unsigned long int __nlink_t; typedef long int __off_t; typedef long int __off64_t; typedef int __pid_t; typedef struct { int __val[2]; } __fsid_t; typedef long int __clock_t; typedef unsigned long int __rlim_t; typedef unsigned long int __rlim64_t; typedef unsigned int __id_t; typedef long int __time_t; typedef unsigned int __useconds_t; typedef long int __suseconds_t; typedef int __daddr_t; typedef int __key_t; typedef int __clockid_t; typedef void * __timer_t; typedef long int __blksize_t; typedef long int __blkcnt_t; typedef long int __blkcnt64_t; typedef unsigned long int __fsblkcnt_t; typedef unsigned long int __fsblkcnt64_t; typedef unsigned long int __fsfilcnt_t; typedef unsigned long int __fsfilcnt64_t; typedef long int __fsword_t; typedef long int __ssize_t; typedef long int __syscall_slong_t; typedef unsigned long int __syscall_ulong_t; typedef __off64_t __loff_t; typedef __quad_t *__qaddr_t; typedef char *__caddr_t; typedef long int __intptr_t; typedef unsigned int __socklen_t; # 30 "/usr/include/x86_64-linux-gnu/sys/types.h" 2 3 4 typedef __u_char u_char; typedef __u_short u_short; typedef __u_int u_int; typedef __u_long u_long; typedef __quad_t quad_t; typedef __u_quad_t u_quad_t; typedef __fsid_t fsid_t; typedef __loff_t loff_t; typedef __ino64_t ino_t; # 60 "/usr/include/x86_64-linux-gnu/sys/types.h" 3 4 typedef __dev_t dev_t; typedef __gid_t gid_t; typedef __mode_t mode_t; typedef __nlink_t nlink_t; typedef __uid_t uid_t; typedef __off64_t off_t; # 98 "/usr/include/x86_64-linux-gnu/sys/types.h" 3 4 typedef __pid_t pid_t; typedef __id_t id_t; typedef __ssize_t ssize_t; typedef __daddr_t daddr_t; typedef __caddr_t caddr_t; typedef __key_t key_t; # 132 "/usr/include/x86_64-linux-gnu/sys/types.h" 3 4 # 1 "/usr/include/time.h" 1 3 4 # 57 "/usr/include/time.h" 3 4 typedef __clock_t clock_t; # 73 "/usr/include/time.h" 3 4 typedef __time_t time_t; # 91 "/usr/include/time.h" 3 4 typedef __clockid_t clockid_t; # 103 "/usr/include/time.h" 3 4 typedef __timer_t timer_t; # 133 "/usr/include/x86_64-linux-gnu/sys/types.h" 2 3 4 # 146 "/usr/include/x86_64-linux-gnu/sys/types.h" 3 4 # 1 "/usr/lib/gcc/x86_64-linux-gnu/6/include/stddef.h" 1 3 4 # 216 "/usr/lib/gcc/x86_64-linux-gnu/6/include/stddef.h" 3 4 typedef long unsigned int size_t; # 147 "/usr/include/x86_64-linux-gnu/sys/types.h" 2 3 4 typedef unsigned long int ulong; typedef unsigned short int ushort; typedef unsigned int uint; # 194 "/usr/include/x86_64-linux-gnu/sys/types.h" 3 4 typedef int int8_t __attribute__ ((__mode__ (__QI__))); typedef int int16_t __attribute__ ((__mode__ (__HI__))); typedef int int32_t __attribute__ ((__mode__ (__SI__))); typedef int int64_t __attribute__ ((__mode__ (__DI__))); typedef unsigned int u_int8_t __attribute__ ((__mode__ (__QI__))); typedef unsigned int u_int16_t __attribute__ ((__mode__ (__HI__))); typedef unsigned int u_int32_t __attribute__ ((__mode__ (__SI__))); typedef unsigned int u_int64_t __attribute__ ((__mode__ (__DI__))); typedef int register_t __attribute__ ((__mode__ (__word__))); # 216 "/usr/include/x86_64-linux-gnu/sys/types.h" 3 4 # 1 "/usr/include/endian.h" 1 3 4 # 36 "/usr/include/endian.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/endian.h" 1 3 4 # 37 "/usr/include/endian.h" 2 3 4 # 60 "/usr/include/endian.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/byteswap.h" 1 3 4 # 28 "/usr/include/x86_64-linux-gnu/bits/byteswap.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4 # 29 "/usr/include/x86_64-linux-gnu/bits/byteswap.h" 2 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/byteswap-16.h" 1 3 4 # 36 "/usr/include/x86_64-linux-gnu/bits/byteswap.h" 2 3 4 # 44 "/usr/include/x86_64-linux-gnu/bits/byteswap.h" 3 4 static __inline unsigned int __bswap_32 (unsigned int __bsx) { return __builtin_bswap32 (__bsx); } # 108 "/usr/include/x86_64-linux-gnu/bits/byteswap.h" 3 4 static __inline __uint64_t __bswap_64 (__uint64_t __bsx) { return __builtin_bswap64 (__bsx); } # 61 "/usr/include/endian.h" 2 3 4 # 217 "/usr/include/x86_64-linux-gnu/sys/types.h" 2 3 4 # 1 "/usr/include/x86_64-linux-gnu/sys/select.h" 1 3 4 # 30 "/usr/include/x86_64-linux-gnu/sys/select.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/select.h" 1 3 4 # 22 "/usr/include/x86_64-linux-gnu/bits/select.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4 # 23 "/usr/include/x86_64-linux-gnu/bits/select.h" 2 3 4 # 31 "/usr/include/x86_64-linux-gnu/sys/select.h" 2 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/sigset.h" 1 3 4 # 22 "/usr/include/x86_64-linux-gnu/bits/sigset.h" 3 4 typedef int __sig_atomic_t; typedef struct { unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))]; } __sigset_t; # 34 "/usr/include/x86_64-linux-gnu/sys/select.h" 2 3 4 typedef __sigset_t sigset_t; # 1 "/usr/include/time.h" 1 3 4 # 120 "/usr/include/time.h" 3 4 struct timespec { __time_t tv_sec; __syscall_slong_t tv_nsec; }; # 44 "/usr/include/x86_64-linux-gnu/sys/select.h" 2 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/time.h" 1 3 4 # 30 "/usr/include/x86_64-linux-gnu/bits/time.h" 3 4 struct timeval { __time_t tv_sec; __suseconds_t tv_usec; }; # 46 "/usr/include/x86_64-linux-gnu/sys/select.h" 2 3 4 typedef __suseconds_t suseconds_t; typedef long int __fd_mask; # 64 "/usr/include/x86_64-linux-gnu/sys/select.h" 3 4 typedef struct { __fd_mask __fds_bits[1024 / (8 * (int) sizeof (__fd_mask))]; } fd_set; typedef __fd_mask fd_mask; # 96 "/usr/include/x86_64-linux-gnu/sys/select.h" 3 4 # 106 "/usr/include/x86_64-linux-gnu/sys/select.h" 3 4 extern int select (int __nfds, fd_set *__restrict __readfds, fd_set *__restrict __writefds, fd_set *__restrict __exceptfds, struct timeval *__restrict __timeout); # 118 "/usr/include/x86_64-linux-gnu/sys/select.h" 3 4 extern int pselect (int __nfds, fd_set *__restrict __readfds, fd_set *__restrict __writefds, fd_set *__restrict __exceptfds, const struct timespec *__restrict __timeout, const __sigset_t *__restrict __sigmask); # 1 "/usr/include/x86_64-linux-gnu/bits/select2.h" 1 3 4 # 24 "/usr/include/x86_64-linux-gnu/bits/select2.h" 3 4 extern long int __fdelt_chk (long int __d); extern long int __fdelt_warn (long int __d) __attribute__((__warning__ ("bit outside of fd_set selected"))); # 129 "/usr/include/x86_64-linux-gnu/sys/select.h" 2 3 4 # 220 "/usr/include/x86_64-linux-gnu/sys/types.h" 2 3 4 # 1 "/usr/include/x86_64-linux-gnu/sys/sysmacros.h" 1 3 4 # 24 "/usr/include/x86_64-linux-gnu/sys/sysmacros.h" 3 4 __extension__ extern unsigned int gnu_dev_major (unsigned long long int __dev) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); __extension__ extern unsigned int gnu_dev_minor (unsigned long long int __dev) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); __extension__ extern unsigned long long int gnu_dev_makedev (unsigned int __major, unsigned int __minor) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); __extension__ extern __inline __attribute__ ((__gnu_inline__)) __attribute__ ((__const__)) unsigned int __attribute__ ((__nothrow__ , __leaf__)) gnu_dev_major (unsigned long long int __dev) { return ((__dev >> 8) & 0xfff) | ((unsigned int) (__dev >> 32) & ~0xfff); } __extension__ extern __inline __attribute__ ((__gnu_inline__)) __attribute__ ((__const__)) unsigned int __attribute__ ((__nothrow__ , __leaf__)) gnu_dev_minor (unsigned long long int __dev) { return (__dev & 0xff) | ((unsigned int) (__dev >> 12) & ~0xff); } __extension__ extern __inline __attribute__ ((__gnu_inline__)) __attribute__ ((__const__)) unsigned long long int __attribute__ ((__nothrow__ , __leaf__)) gnu_dev_makedev (unsigned int __major, unsigned int __minor) { return ((__minor & 0xff) | ((__major & 0xfff) << 8) | (((unsigned long long int) (__minor & ~0xff)) << 12) | (((unsigned long long int) (__major & ~0xfff)) << 32)); } # 223 "/usr/include/x86_64-linux-gnu/sys/types.h" 2 3 4 typedef __blksize_t blksize_t; # 248 "/usr/include/x86_64-linux-gnu/sys/types.h" 3 4 typedef __blkcnt64_t blkcnt_t; typedef __fsblkcnt64_t fsblkcnt_t; typedef __fsfilcnt64_t fsfilcnt_t; # 270 "/usr/include/x86_64-linux-gnu/sys/types.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 1 3 4 # 21 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4 # 22 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 2 3 4 # 60 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 3 4 typedef unsigned long int pthread_t; union pthread_attr_t { char __size[56]; long int __align; }; typedef union pthread_attr_t pthread_attr_t; typedef struct __pthread_internal_list { struct __pthread_internal_list *__prev; struct __pthread_internal_list *__next; } __pthread_list_t; # 90 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 3 4 typedef union { struct __pthread_mutex_s { int __lock; unsigned int __count; int __owner; unsigned int __nusers; int __kind; short __spins; short __elision; __pthread_list_t __list; # 125 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 3 4 } __data; char __size[40]; long int __align; } pthread_mutex_t; typedef union { char __size[4]; int __align; } pthread_mutexattr_t; typedef union { struct { int __lock; unsigned int __futex; __extension__ unsigned long long int __total_seq; __extension__ unsigned long long int __wakeup_seq; __extension__ unsigned long long int __woken_seq; void *__mutex; unsigned int __nwaiters; unsigned int __broadcast_seq; } __data; char __size[48]; __extension__ long long int __align; } pthread_cond_t; typedef union { char __size[4]; int __align; } pthread_condattr_t; typedef unsigned int pthread_key_t; typedef int pthread_once_t; typedef union { struct { int __lock; unsigned int __nr_readers; unsigned int __readers_wakeup; unsigned int __writer_wakeup; unsigned int __nr_readers_queued; unsigned int __nr_writers_queued; int __writer; int __shared; signed char __rwelision; unsigned char __pad1[7]; unsigned long int __pad2; unsigned int __flags; } __data; # 220 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 3 4 char __size[56]; long int __align; } pthread_rwlock_t; typedef union { char __size[8]; long int __align; } pthread_rwlockattr_t; typedef volatile int pthread_spinlock_t; typedef union { char __size[32]; long int __align; } pthread_barrier_t; typedef union { char __size[4]; int __align; } pthread_barrierattr_t; # 271 "/usr/include/x86_64-linux-gnu/sys/types.h" 2 3 4 # 40 "../../../quakedef.h" 2 # 1 "/usr/include/ctype.h" 1 3 4 # 28 "/usr/include/ctype.h" 3 4 # 46 "/usr/include/ctype.h" 3 4 enum { _ISupper = ((0) < 8 ? ((1 << (0)) << 8) : ((1 << (0)) >> 8)), _ISlower = ((1) < 8 ? ((1 << (1)) << 8) : ((1 << (1)) >> 8)), _ISalpha = ((2) < 8 ? ((1 << (2)) << 8) : ((1 << (2)) >> 8)), _ISdigit = ((3) < 8 ? ((1 << (3)) << 8) : ((1 << (3)) >> 8)), _ISxdigit = ((4) < 8 ? ((1 << (4)) << 8) : ((1 << (4)) >> 8)), _ISspace = ((5) < 8 ? ((1 << (5)) << 8) : ((1 << (5)) >> 8)), _ISprint = ((6) < 8 ? ((1 << (6)) << 8) : ((1 << (6)) >> 8)), _ISgraph = ((7) < 8 ? ((1 << (7)) << 8) : ((1 << (7)) >> 8)), _ISblank = ((8) < 8 ? ((1 << (8)) << 8) : ((1 << (8)) >> 8)), _IScntrl = ((9) < 8 ? ((1 << (9)) << 8) : ((1 << (9)) >> 8)), _ISpunct = ((10) < 8 ? ((1 << (10)) << 8) : ((1 << (10)) >> 8)), _ISalnum = ((11) < 8 ? ((1 << (11)) << 8) : ((1 << (11)) >> 8)) }; # 79 "/usr/include/ctype.h" 3 4 extern const unsigned short int **__ctype_b_loc (void) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern const __int32_t **__ctype_tolower_loc (void) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern const __int32_t **__ctype_toupper_loc (void) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); # 104 "/usr/include/ctype.h" 3 4 extern int isalnum (int) __attribute__ ((__nothrow__ , __leaf__)); extern int isalpha (int) __attribute__ ((__nothrow__ , __leaf__)); extern int iscntrl (int) __attribute__ ((__nothrow__ , __leaf__)); extern int isdigit (int) __attribute__ ((__nothrow__ , __leaf__)); extern int islower (int) __attribute__ ((__nothrow__ , __leaf__)); extern int isgraph (int) __attribute__ ((__nothrow__ , __leaf__)); extern int isprint (int) __attribute__ ((__nothrow__ , __leaf__)); extern int ispunct (int) __attribute__ ((__nothrow__ , __leaf__)); extern int isspace (int) __attribute__ ((__nothrow__ , __leaf__)); extern int isupper (int) __attribute__ ((__nothrow__ , __leaf__)); extern int isxdigit (int) __attribute__ ((__nothrow__ , __leaf__)); extern int tolower (int __c) __attribute__ ((__nothrow__ , __leaf__)); extern int toupper (int __c) __attribute__ ((__nothrow__ , __leaf__)); extern int isblank (int) __attribute__ ((__nothrow__ , __leaf__)); # 150 "/usr/include/ctype.h" 3 4 extern int isascii (int __c) __attribute__ ((__nothrow__ , __leaf__)); extern int toascii (int __c) __attribute__ ((__nothrow__ , __leaf__)); extern int _toupper (int) __attribute__ ((__nothrow__ , __leaf__)); extern int _tolower (int) __attribute__ ((__nothrow__ , __leaf__)); # 214 "/usr/include/ctype.h" 3 4 extern __inline __attribute__ ((__gnu_inline__)) int __attribute__ ((__nothrow__ , __leaf__)) tolower (int __c) { return __c >= -128 && __c < 256 ? (*__ctype_tolower_loc ())[__c] : __c; } extern __inline __attribute__ ((__gnu_inline__)) int __attribute__ ((__nothrow__ , __leaf__)) toupper (int __c) { return __c >= -128 && __c < 256 ? (*__ctype_toupper_loc ())[__c] : __c; } # 257 "/usr/include/ctype.h" 3 4 # 1 "/usr/include/xlocale.h" 1 3 4 # 27 "/usr/include/xlocale.h" 3 4 typedef struct __locale_struct { struct __locale_data *__locales[13]; const unsigned short int *__ctype_b; const int *__ctype_tolower; const int *__ctype_toupper; const char *__names[13]; } *__locale_t; typedef __locale_t locale_t; # 258 "/usr/include/ctype.h" 2 3 4 # 271 "/usr/include/ctype.h" 3 4 extern int isalnum_l (int, __locale_t) __attribute__ ((__nothrow__ , __leaf__)); extern int isalpha_l (int, __locale_t) __attribute__ ((__nothrow__ , __leaf__)); extern int iscntrl_l (int, __locale_t) __attribute__ ((__nothrow__ , __leaf__)); extern int isdigit_l (int, __locale_t) __attribute__ ((__nothrow__ , __leaf__)); extern int islower_l (int, __locale_t) __attribute__ ((__nothrow__ , __leaf__)); extern int isgraph_l (int, __locale_t) __attribute__ ((__nothrow__ , __leaf__)); extern int isprint_l (int, __locale_t) __attribute__ ((__nothrow__ , __leaf__)); extern int ispunct_l (int, __locale_t) __attribute__ ((__nothrow__ , __leaf__)); extern int isspace_l (int, __locale_t) __attribute__ ((__nothrow__ , __leaf__)); extern int isupper_l (int, __locale_t) __attribute__ ((__nothrow__ , __leaf__)); extern int isxdigit_l (int, __locale_t) __attribute__ ((__nothrow__ , __leaf__)); extern int isblank_l (int, __locale_t) __attribute__ ((__nothrow__ , __leaf__)); extern int __tolower_l (int __c, __locale_t __l) __attribute__ ((__nothrow__ , __leaf__)); extern int tolower_l (int __c, __locale_t __l) __attribute__ ((__nothrow__ , __leaf__)); extern int __toupper_l (int __c, __locale_t __l) __attribute__ ((__nothrow__ , __leaf__)); extern int toupper_l (int __c, __locale_t __l) __attribute__ ((__nothrow__ , __leaf__)); # 347 "/usr/include/ctype.h" 3 4 # 41 "../../../quakedef.h" 2 # 1 "/usr/include/math.h" 1 3 4 # 28 "/usr/include/math.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/huge_val.h" 1 3 4 # 33 "/usr/include/math.h" 2 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/huge_valf.h" 1 3 4 # 35 "/usr/include/math.h" 2 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/huge_vall.h" 1 3 4 # 36 "/usr/include/math.h" 2 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/inf.h" 1 3 4 # 39 "/usr/include/math.h" 2 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/nan.h" 1 3 4 # 42 "/usr/include/math.h" 2 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/mathdef.h" 1 3 4 # 28 "/usr/include/x86_64-linux-gnu/bits/mathdef.h" 3 4 typedef float float_t; typedef double double_t; # 46 "/usr/include/math.h" 2 3 4 # 69 "/usr/include/math.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 1 3 4 # 52 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 extern double acos (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double __acos (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double asin (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double __asin (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double atan (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double __atan (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double atan2 (double __y, double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double __atan2 (double __y, double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double cos (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double __cos (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double sin (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double __sin (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double tan (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double __tan (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double cosh (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double __cosh (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double sinh (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double __sinh (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double tanh (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double __tanh (double __x) __attribute__ ((__nothrow__ , __leaf__)); # 86 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 extern double acosh (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double __acosh (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double asinh (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double __asinh (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double atanh (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double __atanh (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double exp (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double __exp (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double frexp (double __x, int *__exponent) __attribute__ ((__nothrow__ , __leaf__)); extern double __frexp (double __x, int *__exponent) __attribute__ ((__nothrow__ , __leaf__)); extern double ldexp (double __x, int __exponent) __attribute__ ((__nothrow__ , __leaf__)); extern double __ldexp (double __x, int __exponent) __attribute__ ((__nothrow__ , __leaf__)); extern double log (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double __log (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double log10 (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double __log10 (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double modf (double __x, double *__iptr) __attribute__ ((__nothrow__ , __leaf__)); extern double __modf (double __x, double *__iptr) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))); # 126 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 extern double expm1 (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double __expm1 (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double log1p (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double __log1p (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double logb (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double __logb (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double exp2 (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double __exp2 (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double log2 (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double __log2 (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double pow (double __x, double __y) __attribute__ ((__nothrow__ , __leaf__)); extern double __pow (double __x, double __y) __attribute__ ((__nothrow__ , __leaf__)); extern double sqrt (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double __sqrt (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double hypot (double __x, double __y) __attribute__ ((__nothrow__ , __leaf__)); extern double __hypot (double __x, double __y) __attribute__ ((__nothrow__ , __leaf__)); extern double cbrt (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double __cbrt (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double ceil (double __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern double __ceil (double __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern double fabs (double __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern double __fabs (double __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern double floor (double __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern double __floor (double __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern double fmod (double __x, double __y) __attribute__ ((__nothrow__ , __leaf__)); extern double __fmod (double __x, double __y) __attribute__ ((__nothrow__ , __leaf__)); extern int __isinf (double __value) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern int __finite (double __value) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern int isinf (double __value) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern int finite (double __value) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern double drem (double __x, double __y) __attribute__ ((__nothrow__ , __leaf__)); extern double __drem (double __x, double __y) __attribute__ ((__nothrow__ , __leaf__)); extern double significand (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double __significand (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double copysign (double __x, double __y) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern double __copysign (double __x, double __y) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern double nan (const char *__tagb) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern double __nan (const char *__tagb) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern int __isnan (double __value) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern int isnan (double __value) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern double j0 (double) __attribute__ ((__nothrow__ , __leaf__)); extern double __j0 (double) __attribute__ ((__nothrow__ , __leaf__)); extern double j1 (double) __attribute__ ((__nothrow__ , __leaf__)); extern double __j1 (double) __attribute__ ((__nothrow__ , __leaf__)); extern double jn (int, double) __attribute__ ((__nothrow__ , __leaf__)); extern double __jn (int, double) __attribute__ ((__nothrow__ , __leaf__)); extern double y0 (double) __attribute__ ((__nothrow__ , __leaf__)); extern double __y0 (double) __attribute__ ((__nothrow__ , __leaf__)); extern double y1 (double) __attribute__ ((__nothrow__ , __leaf__)); extern double __y1 (double) __attribute__ ((__nothrow__ , __leaf__)); extern double yn (int, double) __attribute__ ((__nothrow__ , __leaf__)); extern double __yn (int, double) __attribute__ ((__nothrow__ , __leaf__)); extern double erf (double) __attribute__ ((__nothrow__ , __leaf__)); extern double __erf (double) __attribute__ ((__nothrow__ , __leaf__)); extern double erfc (double) __attribute__ ((__nothrow__ , __leaf__)); extern double __erfc (double) __attribute__ ((__nothrow__ , __leaf__)); extern double lgamma (double) __attribute__ ((__nothrow__ , __leaf__)); extern double __lgamma (double) __attribute__ ((__nothrow__ , __leaf__)); extern double tgamma (double) __attribute__ ((__nothrow__ , __leaf__)); extern double __tgamma (double) __attribute__ ((__nothrow__ , __leaf__)); extern double gamma (double) __attribute__ ((__nothrow__ , __leaf__)); extern double __gamma (double) __attribute__ ((__nothrow__ , __leaf__)); extern double lgamma_r (double, int *__signgamp) __attribute__ ((__nothrow__ , __leaf__)); extern double __lgamma_r (double, int *__signgamp) __attribute__ ((__nothrow__ , __leaf__)); extern double rint (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double __rint (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double nextafter (double __x, double __y) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern double __nextafter (double __x, double __y) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern double nexttoward (double __x, long double __y) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern double __nexttoward (double __x, long double __y) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern double remainder (double __x, double __y) __attribute__ ((__nothrow__ , __leaf__)); extern double __remainder (double __x, double __y) __attribute__ ((__nothrow__ , __leaf__)); extern double scalbn (double __x, int __n) __attribute__ ((__nothrow__ , __leaf__)); extern double __scalbn (double __x, int __n) __attribute__ ((__nothrow__ , __leaf__)); extern int ilogb (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern int __ilogb (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double scalbln (double __x, long int __n) __attribute__ ((__nothrow__ , __leaf__)); extern double __scalbln (double __x, long int __n) __attribute__ ((__nothrow__ , __leaf__)); extern double nearbyint (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double __nearbyint (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double round (double __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern double __round (double __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern double trunc (double __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern double __trunc (double __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern double remquo (double __x, double __y, int *__quo) __attribute__ ((__nothrow__ , __leaf__)); extern double __remquo (double __x, double __y, int *__quo) __attribute__ ((__nothrow__ , __leaf__)); extern long int lrint (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long int __lrint (double __x) __attribute__ ((__nothrow__ , __leaf__)); __extension__ extern long long int llrint (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long long int __llrint (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long int lround (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long int __lround (double __x) __attribute__ ((__nothrow__ , __leaf__)); __extension__ extern long long int llround (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long long int __llround (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double fdim (double __x, double __y) __attribute__ ((__nothrow__ , __leaf__)); extern double __fdim (double __x, double __y) __attribute__ ((__nothrow__ , __leaf__)); extern double fmax (double __x, double __y) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern double __fmax (double __x, double __y) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern double fmin (double __x, double __y) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern double __fmin (double __x, double __y) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern int __fpclassify (double __value) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern int __signbit (double __value) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern double fma (double __x, double __y, double __z) __attribute__ ((__nothrow__ , __leaf__)); extern double __fma (double __x, double __y, double __z) __attribute__ ((__nothrow__ , __leaf__)); # 371 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 extern double scalb (double __x, double __n) __attribute__ ((__nothrow__ , __leaf__)); extern double __scalb (double __x, double __n) __attribute__ ((__nothrow__ , __leaf__)); # 70 "/usr/include/math.h" 2 3 4 # 88 "/usr/include/math.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 1 3 4 # 52 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 extern float acosf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float __acosf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float asinf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float __asinf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float atanf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float __atanf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float atan2f (float __y, float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float __atan2f (float __y, float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float cosf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float __cosf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float sinf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float __sinf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float tanf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float __tanf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float coshf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float __coshf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float sinhf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float __sinhf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float tanhf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float __tanhf (float __x) __attribute__ ((__nothrow__ , __leaf__)); # 86 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 extern float acoshf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float __acoshf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float asinhf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float __asinhf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float atanhf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float __atanhf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float expf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float __expf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float frexpf (float __x, int *__exponent) __attribute__ ((__nothrow__ , __leaf__)); extern float __frexpf (float __x, int *__exponent) __attribute__ ((__nothrow__ , __leaf__)); extern float ldexpf (float __x, int __exponent) __attribute__ ((__nothrow__ , __leaf__)); extern float __ldexpf (float __x, int __exponent) __attribute__ ((__nothrow__ , __leaf__)); extern float logf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float __logf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float log10f (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float __log10f (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float modff (float __x, float *__iptr) __attribute__ ((__nothrow__ , __leaf__)); extern float __modff (float __x, float *__iptr) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))); # 126 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 extern float expm1f (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float __expm1f (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float log1pf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float __log1pf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float logbf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float __logbf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float exp2f (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float __exp2f (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float log2f (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float __log2f (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float powf (float __x, float __y) __attribute__ ((__nothrow__ , __leaf__)); extern float __powf (float __x, float __y) __attribute__ ((__nothrow__ , __leaf__)); extern float sqrtf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float __sqrtf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float hypotf (float __x, float __y) __attribute__ ((__nothrow__ , __leaf__)); extern float __hypotf (float __x, float __y) __attribute__ ((__nothrow__ , __leaf__)); extern float cbrtf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float __cbrtf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float ceilf (float __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern float __ceilf (float __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern float fabsf (float __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern float __fabsf (float __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern float floorf (float __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern float __floorf (float __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern float fmodf (float __x, float __y) __attribute__ ((__nothrow__ , __leaf__)); extern float __fmodf (float __x, float __y) __attribute__ ((__nothrow__ , __leaf__)); extern int __isinff (float __value) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern int __finitef (float __value) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern int isinff (float __value) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern int finitef (float __value) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern float dremf (float __x, float __y) __attribute__ ((__nothrow__ , __leaf__)); extern float __dremf (float __x, float __y) __attribute__ ((__nothrow__ , __leaf__)); extern float significandf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float __significandf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float copysignf (float __x, float __y) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern float __copysignf (float __x, float __y) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern float nanf (const char *__tagb) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern float __nanf (const char *__tagb) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern int __isnanf (float __value) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern int isnanf (float __value) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern float j0f (float) __attribute__ ((__nothrow__ , __leaf__)); extern float __j0f (float) __attribute__ ((__nothrow__ , __leaf__)); extern float j1f (float) __attribute__ ((__nothrow__ , __leaf__)); extern float __j1f (float) __attribute__ ((__nothrow__ , __leaf__)); extern float jnf (int, float) __attribute__ ((__nothrow__ , __leaf__)); extern float __jnf (int, float) __attribute__ ((__nothrow__ , __leaf__)); extern float y0f (float) __attribute__ ((__nothrow__ , __leaf__)); extern float __y0f (float) __attribute__ ((__nothrow__ , __leaf__)); extern float y1f (float) __attribute__ ((__nothrow__ , __leaf__)); extern float __y1f (float) __attribute__ ((__nothrow__ , __leaf__)); extern float ynf (int, float) __attribute__ ((__nothrow__ , __leaf__)); extern float __ynf (int, float) __attribute__ ((__nothrow__ , __leaf__)); extern float erff (float) __attribute__ ((__nothrow__ , __leaf__)); extern float __erff (float) __attribute__ ((__nothrow__ , __leaf__)); extern float erfcf (float) __attribute__ ((__nothrow__ , __leaf__)); extern float __erfcf (float) __attribute__ ((__nothrow__ , __leaf__)); extern float lgammaf (float) __attribute__ ((__nothrow__ , __leaf__)); extern float __lgammaf (float) __attribute__ ((__nothrow__ , __leaf__)); extern float tgammaf (float) __attribute__ ((__nothrow__ , __leaf__)); extern float __tgammaf (float) __attribute__ ((__nothrow__ , __leaf__)); extern float gammaf (float) __attribute__ ((__nothrow__ , __leaf__)); extern float __gammaf (float) __attribute__ ((__nothrow__ , __leaf__)); extern float lgammaf_r (float, int *__signgamp) __attribute__ ((__nothrow__ , __leaf__)); extern float __lgammaf_r (float, int *__signgamp) __attribute__ ((__nothrow__ , __leaf__)); extern float rintf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float __rintf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float nextafterf (float __x, float __y) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern float __nextafterf (float __x, float __y) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern float nexttowardf (float __x, long double __y) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern float __nexttowardf (float __x, long double __y) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern float remainderf (float __x, float __y) __attribute__ ((__nothrow__ , __leaf__)); extern float __remainderf (float __x, float __y) __attribute__ ((__nothrow__ , __leaf__)); extern float scalbnf (float __x, int __n) __attribute__ ((__nothrow__ , __leaf__)); extern float __scalbnf (float __x, int __n) __attribute__ ((__nothrow__ , __leaf__)); extern int ilogbf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern int __ilogbf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float scalblnf (float __x, long int __n) __attribute__ ((__nothrow__ , __leaf__)); extern float __scalblnf (float __x, long int __n) __attribute__ ((__nothrow__ , __leaf__)); extern float nearbyintf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float __nearbyintf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float roundf (float __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern float __roundf (float __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern float truncf (float __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern float __truncf (float __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern float remquof (float __x, float __y, int *__quo) __attribute__ ((__nothrow__ , __leaf__)); extern float __remquof (float __x, float __y, int *__quo) __attribute__ ((__nothrow__ , __leaf__)); extern long int lrintf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern long int __lrintf (float __x) __attribute__ ((__nothrow__ , __leaf__)); __extension__ extern long long int llrintf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern long long int __llrintf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern long int lroundf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern long int __lroundf (float __x) __attribute__ ((__nothrow__ , __leaf__)); __extension__ extern long long int llroundf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern long long int __llroundf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float fdimf (float __x, float __y) __attribute__ ((__nothrow__ , __leaf__)); extern float __fdimf (float __x, float __y) __attribute__ ((__nothrow__ , __leaf__)); extern float fmaxf (float __x, float __y) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern float __fmaxf (float __x, float __y) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern float fminf (float __x, float __y) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern float __fminf (float __x, float __y) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern int __fpclassifyf (float __value) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern int __signbitf (float __value) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern float fmaf (float __x, float __y, float __z) __attribute__ ((__nothrow__ , __leaf__)); extern float __fmaf (float __x, float __y, float __z) __attribute__ ((__nothrow__ , __leaf__)); # 371 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 extern float scalbf (float __x, float __n) __attribute__ ((__nothrow__ , __leaf__)); extern float __scalbf (float __x, float __n) __attribute__ ((__nothrow__ , __leaf__)); # 89 "/usr/include/math.h" 2 3 4 # 133 "/usr/include/math.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 1 3 4 # 52 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 extern long double acosl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double __acosl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double asinl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double __asinl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double atanl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double __atanl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double atan2l (long double __y, long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double __atan2l (long double __y, long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double cosl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double __cosl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double sinl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double __sinl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double tanl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double __tanl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double coshl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double __coshl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double sinhl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double __sinhl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double tanhl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double __tanhl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); # 86 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 extern long double acoshl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double __acoshl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double asinhl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double __asinhl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double atanhl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double __atanhl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double expl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double __expl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double frexpl (long double __x, int *__exponent) __attribute__ ((__nothrow__ , __leaf__)); extern long double __frexpl (long double __x, int *__exponent) __attribute__ ((__nothrow__ , __leaf__)); extern long double ldexpl (long double __x, int __exponent) __attribute__ ((__nothrow__ , __leaf__)); extern long double __ldexpl (long double __x, int __exponent) __attribute__ ((__nothrow__ , __leaf__)); extern long double logl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double __logl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double log10l (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double __log10l (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double modfl (long double __x, long double *__iptr) __attribute__ ((__nothrow__ , __leaf__)); extern long double __modfl (long double __x, long double *__iptr) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))); # 126 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 extern long double expm1l (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double __expm1l (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double log1pl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double __log1pl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double logbl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double __logbl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double exp2l (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double __exp2l (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double log2l (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double __log2l (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double powl (long double __x, long double __y) __attribute__ ((__nothrow__ , __leaf__)); extern long double __powl (long double __x, long double __y) __attribute__ ((__nothrow__ , __leaf__)); extern long double sqrtl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double __sqrtl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double hypotl (long double __x, long double __y) __attribute__ ((__nothrow__ , __leaf__)); extern long double __hypotl (long double __x, long double __y) __attribute__ ((__nothrow__ , __leaf__)); extern long double cbrtl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double __cbrtl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double ceill (long double __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern long double __ceill (long double __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern long double fabsl (long double __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern long double __fabsl (long double __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern long double floorl (long double __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern long double __floorl (long double __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern long double fmodl (long double __x, long double __y) __attribute__ ((__nothrow__ , __leaf__)); extern long double __fmodl (long double __x, long double __y) __attribute__ ((__nothrow__ , __leaf__)); extern int __isinfl (long double __value) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern int __finitel (long double __value) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern int isinfl (long double __value) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern int finitel (long double __value) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern long double dreml (long double __x, long double __y) __attribute__ ((__nothrow__ , __leaf__)); extern long double __dreml (long double __x, long double __y) __attribute__ ((__nothrow__ , __leaf__)); extern long double significandl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double __significandl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double copysignl (long double __x, long double __y) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern long double __copysignl (long double __x, long double __y) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern long double nanl (const char *__tagb) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern long double __nanl (const char *__tagb) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern int __isnanl (long double __value) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern int isnanl (long double __value) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern long double j0l (long double) __attribute__ ((__nothrow__ , __leaf__)); extern long double __j0l (long double) __attribute__ ((__nothrow__ , __leaf__)); extern long double j1l (long double) __attribute__ ((__nothrow__ , __leaf__)); extern long double __j1l (long double) __attribute__ ((__nothrow__ , __leaf__)); extern long double jnl (int, long double) __attribute__ ((__nothrow__ , __leaf__)); extern long double __jnl (int, long double) __attribute__ ((__nothrow__ , __leaf__)); extern long double y0l (long double) __attribute__ ((__nothrow__ , __leaf__)); extern long double __y0l (long double) __attribute__ ((__nothrow__ , __leaf__)); extern long double y1l (long double) __attribute__ ((__nothrow__ , __leaf__)); extern long double __y1l (long double) __attribute__ ((__nothrow__ , __leaf__)); extern long double ynl (int, long double) __attribute__ ((__nothrow__ , __leaf__)); extern long double __ynl (int, long double) __attribute__ ((__nothrow__ , __leaf__)); extern long double erfl (long double) __attribute__ ((__nothrow__ , __leaf__)); extern long double __erfl (long double) __attribute__ ((__nothrow__ , __leaf__)); extern long double erfcl (long double) __attribute__ ((__nothrow__ , __leaf__)); extern long double __erfcl (long double) __attribute__ ((__nothrow__ , __leaf__)); extern long double lgammal (long double) __attribute__ ((__nothrow__ , __leaf__)); extern long double __lgammal (long double) __attribute__ ((__nothrow__ , __leaf__)); extern long double tgammal (long double) __attribute__ ((__nothrow__ , __leaf__)); extern long double __tgammal (long double) __attribute__ ((__nothrow__ , __leaf__)); extern long double gammal (long double) __attribute__ ((__nothrow__ , __leaf__)); extern long double __gammal (long double) __attribute__ ((__nothrow__ , __leaf__)); extern long double lgammal_r (long double, int *__signgamp) __attribute__ ((__nothrow__ , __leaf__)); extern long double __lgammal_r (long double, int *__signgamp) __attribute__ ((__nothrow__ , __leaf__)); extern long double rintl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double __rintl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double nextafterl (long double __x, long double __y) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern long double __nextafterl (long double __x, long double __y) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern long double nexttowardl (long double __x, long double __y) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern long double __nexttowardl (long double __x, long double __y) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern long double remainderl (long double __x, long double __y) __attribute__ ((__nothrow__ , __leaf__)); extern long double __remainderl (long double __x, long double __y) __attribute__ ((__nothrow__ , __leaf__)); extern long double scalbnl (long double __x, int __n) __attribute__ ((__nothrow__ , __leaf__)); extern long double __scalbnl (long double __x, int __n) __attribute__ ((__nothrow__ , __leaf__)); extern int ilogbl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern int __ilogbl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double scalblnl (long double __x, long int __n) __attribute__ ((__nothrow__ , __leaf__)); extern long double __scalblnl (long double __x, long int __n) __attribute__ ((__nothrow__ , __leaf__)); extern long double nearbyintl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double __nearbyintl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double roundl (long double __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern long double __roundl (long double __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern long double truncl (long double __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern long double __truncl (long double __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern long double remquol (long double __x, long double __y, int *__quo) __attribute__ ((__nothrow__ , __leaf__)); extern long double __remquol (long double __x, long double __y, int *__quo) __attribute__ ((__nothrow__ , __leaf__)); extern long int lrintl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long int __lrintl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); __extension__ extern long long int llrintl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long long int __llrintl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long int lroundl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long int __lroundl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); __extension__ extern long long int llroundl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long long int __llroundl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double fdiml (long double __x, long double __y) __attribute__ ((__nothrow__ , __leaf__)); extern long double __fdiml (long double __x, long double __y) __attribute__ ((__nothrow__ , __leaf__)); extern long double fmaxl (long double __x, long double __y) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern long double __fmaxl (long double __x, long double __y) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern long double fminl (long double __x, long double __y) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern long double __fminl (long double __x, long double __y) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern int __fpclassifyl (long double __value) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern int __signbitl (long double __value) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern long double fmal (long double __x, long double __y, long double __z) __attribute__ ((__nothrow__ , __leaf__)); extern long double __fmal (long double __x, long double __y, long double __z) __attribute__ ((__nothrow__ , __leaf__)); # 371 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 extern long double scalbl (long double __x, long double __n) __attribute__ ((__nothrow__ , __leaf__)); extern long double __scalbl (long double __x, long double __n) __attribute__ ((__nothrow__ , __leaf__)); # 134 "/usr/include/math.h" 2 3 4 # 149 "/usr/include/math.h" 3 4 extern int signgam; # 190 "/usr/include/math.h" 3 4 enum { FP_NAN = 0, FP_INFINITE = 1, FP_ZERO = 2, FP_SUBNORMAL = 3, FP_NORMAL = 4 }; # 302 "/usr/include/math.h" 3 4 typedef enum { _IEEE_ = -1, _SVID_, _XOPEN_, _POSIX_, _ISOC_ } _LIB_VERSION_TYPE; extern _LIB_VERSION_TYPE _LIB_VERSION; # 327 "/usr/include/math.h" 3 4 struct exception { int type; char *name; double arg1; double arg2; double retval; }; extern int matherr (struct exception *__exc); # 427 "/usr/include/math.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/mathinline.h" 1 3 4 # 123 "/usr/include/x86_64-linux-gnu/bits/mathinline.h" 3 4 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) int __attribute__ ((__nothrow__ , __leaf__)) __signbitf (float __x) { int __m; __asm ("pmovmskb %1, %0" : "=r" (__m) : "x" (__x)); return (__m & 0x8) != 0; } extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) int __attribute__ ((__nothrow__ , __leaf__)) __signbit (double __x) { int __m; __asm ("pmovmskb %1, %0" : "=r" (__m) : "x" (__x)); return (__m & 0x80) != 0; } extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) int __attribute__ ((__nothrow__ , __leaf__)) __signbitl (long double __x) { __extension__ union { long double __l; int __i[3]; } __u = { __l: __x }; return (__u.__i[2] & 0x8000) != 0; } # 428 "/usr/include/math.h" 2 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/math-finite.h" 1 3 4 # 24 "/usr/include/x86_64-linux-gnu/bits/math-finite.h" 3 4 extern double acos (double) __asm__ ("" "__acos_finite") __attribute__ ((__nothrow__ , __leaf__)); extern float acosf (float) __asm__ ("" "__acosf_finite") __attribute__ ((__nothrow__ , __leaf__)); extern long double acosl (long double) __asm__ ("" "__acosl_finite") __attribute__ ((__nothrow__ , __leaf__)); extern double acosh (double) __asm__ ("" "__acosh_finite") __attribute__ ((__nothrow__ , __leaf__)); extern float acoshf (float) __asm__ ("" "__acoshf_finite") __attribute__ ((__nothrow__ , __leaf__)); extern long double acoshl (long double) __asm__ ("" "__acoshl_finite") __attribute__ ((__nothrow__ , __leaf__)); extern double asin (double) __asm__ ("" "__asin_finite") __attribute__ ((__nothrow__ , __leaf__)); extern float asinf (float) __asm__ ("" "__asinf_finite") __attribute__ ((__nothrow__ , __leaf__)); extern long double asinl (long double) __asm__ ("" "__asinl_finite") __attribute__ ((__nothrow__ , __leaf__)); extern double atan2 (double, double) __asm__ ("" "__atan2_finite") __attribute__ ((__nothrow__ , __leaf__)); extern float atan2f (float, float) __asm__ ("" "__atan2f_finite") __attribute__ ((__nothrow__ , __leaf__)); extern long double atan2l (long double, long double) __asm__ ("" "__atan2l_finite") __attribute__ ((__nothrow__ , __leaf__)) ; extern double atanh (double) __asm__ ("" "__atanh_finite") __attribute__ ((__nothrow__ , __leaf__)); extern float atanhf (float) __asm__ ("" "__atanhf_finite") __attribute__ ((__nothrow__ , __leaf__)); extern long double atanhl (long double) __asm__ ("" "__atanhl_finite") __attribute__ ((__nothrow__ , __leaf__)); extern double cosh (double) __asm__ ("" "__cosh_finite") __attribute__ ((__nothrow__ , __leaf__)); extern float coshf (float) __asm__ ("" "__coshf_finite") __attribute__ ((__nothrow__ , __leaf__)); extern long double coshl (long double) __asm__ ("" "__coshl_finite") __attribute__ ((__nothrow__ , __leaf__)); extern double exp (double) __asm__ ("" "__exp_finite") __attribute__ ((__nothrow__ , __leaf__)); extern float expf (float) __asm__ ("" "__expf_finite") __attribute__ ((__nothrow__ , __leaf__)); extern long double expl (long double) __asm__ ("" "__expl_finite") __attribute__ ((__nothrow__ , __leaf__)); # 132 "/usr/include/x86_64-linux-gnu/bits/math-finite.h" 3 4 extern double exp2 (double) __asm__ ("" "__exp2_finite") __attribute__ ((__nothrow__ , __leaf__)); extern float exp2f (float) __asm__ ("" "__exp2f_finite") __attribute__ ((__nothrow__ , __leaf__)); extern long double exp2l (long double) __asm__ ("" "__exp2l_finite") __attribute__ ((__nothrow__ , __leaf__)); extern double fmod (double, double) __asm__ ("" "__fmod_finite") __attribute__ ((__nothrow__ , __leaf__)); extern float fmodf (float, float) __asm__ ("" "__fmodf_finite") __attribute__ ((__nothrow__ , __leaf__)); extern long double fmodl (long double, long double) __asm__ ("" "__fmodl_finite") __attribute__ ((__nothrow__ , __leaf__)) ; extern double hypot (double, double) __asm__ ("" "__hypot_finite") __attribute__ ((__nothrow__ , __leaf__)); extern float hypotf (float, float) __asm__ ("" "__hypotf_finite") __attribute__ ((__nothrow__ , __leaf__)); extern long double hypotl (long double, long double) __asm__ ("" "__hypotl_finite") __attribute__ ((__nothrow__ , __leaf__)) ; extern double j0 (double) __asm__ ("" "__j0_finite") __attribute__ ((__nothrow__ , __leaf__)); extern float j0f (float) __asm__ ("" "__j0f_finite") __attribute__ ((__nothrow__ , __leaf__)); extern long double j0l (long double) __asm__ ("" "__j0l_finite") __attribute__ ((__nothrow__ , __leaf__)); extern double y0 (double) __asm__ ("" "__y0_finite") __attribute__ ((__nothrow__ , __leaf__)); extern float y0f (float) __asm__ ("" "__y0f_finite") __attribute__ ((__nothrow__ , __leaf__)); extern long double y0l (long double) __asm__ ("" "__y0l_finite") __attribute__ ((__nothrow__ , __leaf__)); extern double j1 (double) __asm__ ("" "__j1_finite") __attribute__ ((__nothrow__ , __leaf__)); extern float j1f (float) __asm__ ("" "__j1f_finite") __attribute__ ((__nothrow__ , __leaf__)); extern long double j1l (long double) __asm__ ("" "__j1l_finite") __attribute__ ((__nothrow__ , __leaf__)); extern double y1 (double) __asm__ ("" "__y1_finite") __attribute__ ((__nothrow__ , __leaf__)); extern float y1f (float) __asm__ ("" "__y1f_finite") __attribute__ ((__nothrow__ , __leaf__)); extern long double y1l (long double) __asm__ ("" "__y1l_finite") __attribute__ ((__nothrow__ , __leaf__)); extern double jn (int, double) __asm__ ("" "__jn_finite") __attribute__ ((__nothrow__ , __leaf__)); extern float jnf (int, float) __asm__ ("" "__jnf_finite") __attribute__ ((__nothrow__ , __leaf__)); extern long double jnl (int, long double) __asm__ ("" "__jnl_finite") __attribute__ ((__nothrow__ , __leaf__)); extern double yn (int, double) __asm__ ("" "__yn_finite") __attribute__ ((__nothrow__ , __leaf__)); extern float ynf (int, float) __asm__ ("" "__ynf_finite") __attribute__ ((__nothrow__ , __leaf__)); extern long double ynl (int, long double) __asm__ ("" "__ynl_finite") __attribute__ ((__nothrow__ , __leaf__)); extern double lgamma_r (double, int *) __asm__ ("" "__lgamma_r_finite") __attribute__ ((__nothrow__ , __leaf__)); extern float lgammaf_r (float, int *) __asm__ ("" "__lgammaf_r_finite") __attribute__ ((__nothrow__ , __leaf__)); extern long double lgammal_r (long double, int *) __asm__ ("" "__lgammal_r_finite") __attribute__ ((__nothrow__ , __leaf__)) ; extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) double __attribute__ ((__nothrow__ , __leaf__)) lgamma (double __d) { int __local_signgam = 0; return lgamma_r (__d, &__local_signgam); } extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) float __attribute__ ((__nothrow__ , __leaf__)) lgammaf (float __d) { int __local_signgam = 0; return lgammaf_r (__d, &__local_signgam); } extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) long double __attribute__ ((__nothrow__ , __leaf__)) lgammal (long double __d) { int __local_signgam = 0; return lgammal_r (__d, &__local_signgam); } extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) double __attribute__ ((__nothrow__ , __leaf__)) gamma (double __d) { int __local_signgam = 0; return lgamma_r (__d, &__local_signgam); } extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) float __attribute__ ((__nothrow__ , __leaf__)) gammaf (float __d) { int __local_signgam = 0; return lgammaf_r (__d, &__local_signgam); } extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) long double __attribute__ ((__nothrow__ , __leaf__)) gammal (long double __d) { int __local_signgam = 0; return lgammal_r (__d, &__local_signgam); } extern double log (double) __asm__ ("" "__log_finite") __attribute__ ((__nothrow__ , __leaf__)); extern float logf (float) __asm__ ("" "__logf_finite") __attribute__ ((__nothrow__ , __leaf__)); extern long double logl (long double) __asm__ ("" "__logl_finite") __attribute__ ((__nothrow__ , __leaf__)); extern double log10 (double) __asm__ ("" "__log10_finite") __attribute__ ((__nothrow__ , __leaf__)); extern float log10f (float) __asm__ ("" "__log10f_finite") __attribute__ ((__nothrow__ , __leaf__)); extern long double log10l (long double) __asm__ ("" "__log10l_finite") __attribute__ ((__nothrow__ , __leaf__)); extern double log2 (double) __asm__ ("" "__log2_finite") __attribute__ ((__nothrow__ , __leaf__)); extern float log2f (float) __asm__ ("" "__log2f_finite") __attribute__ ((__nothrow__ , __leaf__)); extern long double log2l (long double) __asm__ ("" "__log2l_finite") __attribute__ ((__nothrow__ , __leaf__)); extern double ldexp (double, int) __asm__ ("" "scalbn") __attribute__ ((__nothrow__ , __leaf__)); extern float ldexpf (float, int) __asm__ ("" "scalbnf") __attribute__ ((__nothrow__ , __leaf__)); extern long double ldexpl (long double, int) __asm__ ("" "scalbnl") __attribute__ ((__nothrow__ , __leaf__)); extern double pow (double, double) __asm__ ("" "__pow_finite") __attribute__ ((__nothrow__ , __leaf__)); extern float powf (float, float) __asm__ ("" "__powf_finite") __attribute__ ((__nothrow__ , __leaf__)); extern long double powl (long double, long double) __asm__ ("" "__powl_finite") __attribute__ ((__nothrow__ , __leaf__)) ; extern double remainder (double, double) __asm__ ("" "__remainder_finite") __attribute__ ((__nothrow__ , __leaf__)); extern float remainderf (float, float) __asm__ ("" "__remainderf_finite") __attribute__ ((__nothrow__ , __leaf__)); extern long double remainderl (long double, long double) __asm__ ("" "__remainderl_finite") __attribute__ ((__nothrow__ , __leaf__)) ; extern double scalb (double, double) __asm__ ("" "__scalb_finite") __attribute__ ((__nothrow__ , __leaf__)); extern float scalbf (float, float) __asm__ ("" "__scalbf_finite") __attribute__ ((__nothrow__ , __leaf__)); extern long double scalbl (long double, long double) __asm__ ("" "__scalbl_finite") __attribute__ ((__nothrow__ , __leaf__)) ; extern double sinh (double) __asm__ ("" "__sinh_finite") __attribute__ ((__nothrow__ , __leaf__)); extern float sinhf (float) __asm__ ("" "__sinhf_finite") __attribute__ ((__nothrow__ , __leaf__)); extern long double sinhl (long double) __asm__ ("" "__sinhl_finite") __attribute__ ((__nothrow__ , __leaf__)); extern double sqrt (double) __asm__ ("" "__sqrt_finite") __attribute__ ((__nothrow__ , __leaf__)); extern float sqrtf (float) __asm__ ("" "__sqrtf_finite") __attribute__ ((__nothrow__ , __leaf__)); extern long double sqrtl (long double) __asm__ ("" "__sqrtl_finite") __attribute__ ((__nothrow__ , __leaf__)); extern double __gamma_r_finite (double, int *); extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) double __attribute__ ((__nothrow__ , __leaf__)) tgamma (double __d) { int __local_signgam = 0; double __res = __gamma_r_finite (__d, &__local_signgam); return __local_signgam < 0 ? -__res : __res; } extern float __gammaf_r_finite (float, int *); extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) float __attribute__ ((__nothrow__ , __leaf__)) tgammaf (float __d) { int __local_signgam = 0; float __res = __gammaf_r_finite (__d, &__local_signgam); return __local_signgam < 0 ? -__res : __res; } extern long double __gammal_r_finite (long double, int *); extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) long double __attribute__ ((__nothrow__ , __leaf__)) tgammal (long double __d) { int __local_signgam = 0; long double __res = __gammal_r_finite (__d, &__local_signgam); return __local_signgam < 0 ? -__res : __res; } # 434 "/usr/include/math.h" 2 3 4 # 489 "/usr/include/math.h" 3 4 # 42 "../../../quakedef.h" 2 # 1 "/usr/include/string.h" 1 3 4 # 27 "/usr/include/string.h" 3 4 # 1 "/usr/lib/gcc/x86_64-linux-gnu/6/include/stddef.h" 1 3 4 # 33 "/usr/include/string.h" 2 3 4 # 44 "/usr/include/string.h" 3 4 extern void *memcpy (void *__restrict __dest, const void *__restrict __src, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); extern void *memmove (void *__dest, const void *__src, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); extern void *memccpy (void *__restrict __dest, const void *__restrict __src, int __c, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); extern void *memset (void *__s, int __c, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); extern int memcmp (const void *__s1, const void *__s2, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); # 96 "/usr/include/string.h" 3 4 extern void *memchr (const void *__s, int __c, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); # 127 "/usr/include/string.h" 3 4 extern char *strcpy (char *__restrict __dest, const char *__restrict __src) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); extern char *strncpy (char *__restrict __dest, const char *__restrict __src, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); extern char *strcat (char *__restrict __dest, const char *__restrict __src) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); extern char *strncat (char *__restrict __dest, const char *__restrict __src, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); extern int strcmp (const char *__s1, const char *__s2) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern int strncmp (const char *__s1, const char *__s2, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern int strcoll (const char *__s1, const char *__s2) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern size_t strxfrm (char *__restrict __dest, const char *__restrict __src, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))); # 166 "/usr/include/string.h" 3 4 extern int strcoll_l (const char *__s1, const char *__s2, __locale_t __l) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3))); extern size_t strxfrm_l (char *__dest, const char *__src, size_t __n, __locale_t __l) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 4))); extern char *strdup (const char *__s) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1))); extern char *strndup (const char *__string, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1))); # 210 "/usr/include/string.h" 3 4 # 235 "/usr/include/string.h" 3 4 extern char *strchr (const char *__s, int __c) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); # 262 "/usr/include/string.h" 3 4 extern char *strrchr (const char *__s, int __c) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); # 281 "/usr/include/string.h" 3 4 extern size_t strcspn (const char *__s, const char *__reject) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern size_t strspn (const char *__s, const char *__accept) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); # 314 "/usr/include/string.h" 3 4 extern char *strpbrk (const char *__s, const char *__accept) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); # 341 "/usr/include/string.h" 3 4 extern char *strstr (const char *__haystack, const char *__needle) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern char *strtok (char *__restrict __s, const char *__restrict __delim) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))); extern char *__strtok_r (char *__restrict __s, const char *__restrict __delim, char **__restrict __save_ptr) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 3))); extern char *strtok_r (char *__restrict __s, const char *__restrict __delim, char **__restrict __save_ptr) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 3))); # 396 "/usr/include/string.h" 3 4 extern size_t strlen (const char *__s) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); extern size_t strnlen (const char *__string, size_t __maxlen) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); extern char *strerror (int __errnum) __attribute__ ((__nothrow__ , __leaf__)); # 426 "/usr/include/string.h" 3 4 extern int strerror_r (int __errnum, char *__buf, size_t __buflen) __asm__ ("" "__xpg_strerror_r") __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))); # 444 "/usr/include/string.h" 3 4 extern char *strerror_l (int __errnum, __locale_t __l) __attribute__ ((__nothrow__ , __leaf__)); extern void __bzero (void *__s, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); extern void bcopy (const void *__src, void *__dest, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); extern void bzero (void *__s, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); extern int bcmp (const void *__s1, const void *__s2, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); # 488 "/usr/include/string.h" 3 4 extern char *index (const char *__s, int __c) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); # 516 "/usr/include/string.h" 3 4 extern char *rindex (const char *__s, int __c) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); extern int ffs (int __i) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); # 533 "/usr/include/string.h" 3 4 extern int strcasecmp (const char *__s1, const char *__s2) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern int strncasecmp (const char *__s1, const char *__s2, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); # 556 "/usr/include/string.h" 3 4 extern char *strsep (char **__restrict __stringp, const char *__restrict __delim) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); extern char *strsignal (int __sig) __attribute__ ((__nothrow__ , __leaf__)); extern char *__stpcpy (char *__restrict __dest, const char *__restrict __src) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); extern char *stpcpy (char *__restrict __dest, const char *__restrict __src) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); extern char *__stpncpy (char *__restrict __dest, const char *__restrict __src, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); extern char *stpncpy (char *__restrict __dest, const char *__restrict __src, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); # 631 "/usr/include/string.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/string.h" 1 3 4 # 632 "/usr/include/string.h" 2 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/string2.h" 1 3 4 # 393 "/usr/include/x86_64-linux-gnu/bits/string2.h" 3 4 extern void *__rawmemchr (const void *__s, int __c); # 945 "/usr/include/x86_64-linux-gnu/bits/string2.h" 3 4 extern __inline __attribute__ ((__gnu_inline__)) size_t __strcspn_c1 (const char *__s, int __reject); extern __inline __attribute__ ((__gnu_inline__)) size_t __strcspn_c1 (const char *__s, int __reject) { size_t __result = 0; while (__s[__result] != '\0' && __s[__result] != __reject) ++__result; return __result; } extern __inline __attribute__ ((__gnu_inline__)) size_t __strcspn_c2 (const char *__s, int __reject1, int __reject2); extern __inline __attribute__ ((__gnu_inline__)) size_t __strcspn_c2 (const char *__s, int __reject1, int __reject2) { size_t __result = 0; while (__s[__result] != '\0' && __s[__result] != __reject1 && __s[__result] != __reject2) ++__result; return __result; } extern __inline __attribute__ ((__gnu_inline__)) size_t __strcspn_c3 (const char *__s, int __reject1, int __reject2, int __reject3); extern __inline __attribute__ ((__gnu_inline__)) size_t __strcspn_c3 (const char *__s, int __reject1, int __reject2, int __reject3) { size_t __result = 0; while (__s[__result] != '\0' && __s[__result] != __reject1 && __s[__result] != __reject2 && __s[__result] != __reject3) ++__result; return __result; } # 1021 "/usr/include/x86_64-linux-gnu/bits/string2.h" 3 4 extern __inline __attribute__ ((__gnu_inline__)) size_t __strspn_c1 (const char *__s, int __accept); extern __inline __attribute__ ((__gnu_inline__)) size_t __strspn_c1 (const char *__s, int __accept) { size_t __result = 0; while (__s[__result] == __accept) ++__result; return __result; } extern __inline __attribute__ ((__gnu_inline__)) size_t __strspn_c2 (const char *__s, int __accept1, int __accept2); extern __inline __attribute__ ((__gnu_inline__)) size_t __strspn_c2 (const char *__s, int __accept1, int __accept2) { size_t __result = 0; while (__s[__result] == __accept1 || __s[__result] == __accept2) ++__result; return __result; } extern __inline __attribute__ ((__gnu_inline__)) size_t __strspn_c3 (const char *__s, int __accept1, int __accept2, int __accept3); extern __inline __attribute__ ((__gnu_inline__)) size_t __strspn_c3 (const char *__s, int __accept1, int __accept2, int __accept3) { size_t __result = 0; while (__s[__result] == __accept1 || __s[__result] == __accept2 || __s[__result] == __accept3) ++__result; return __result; } # 1097 "/usr/include/x86_64-linux-gnu/bits/string2.h" 3 4 extern __inline __attribute__ ((__gnu_inline__)) char *__strpbrk_c2 (const char *__s, int __accept1, int __accept2); extern __inline __attribute__ ((__gnu_inline__)) char * __strpbrk_c2 (const char *__s, int __accept1, int __accept2) { while (*__s != '\0' && *__s != __accept1 && *__s != __accept2) ++__s; return *__s == '\0' ? ((void *)0) : (char *) (size_t) __s; } extern __inline __attribute__ ((__gnu_inline__)) char *__strpbrk_c3 (const char *__s, int __accept1, int __accept2, int __accept3); extern __inline __attribute__ ((__gnu_inline__)) char * __strpbrk_c3 (const char *__s, int __accept1, int __accept2, int __accept3) { while (*__s != '\0' && *__s != __accept1 && *__s != __accept2 && *__s != __accept3) ++__s; return *__s == '\0' ? ((void *)0) : (char *) (size_t) __s; } # 1147 "/usr/include/x86_64-linux-gnu/bits/string2.h" 3 4 extern __inline __attribute__ ((__gnu_inline__)) char *__strtok_r_1c (char *__s, char __sep, char **__nextp); extern __inline __attribute__ ((__gnu_inline__)) char * __strtok_r_1c (char *__s, char __sep, char **__nextp) { char *__result; if (__s == ((void *)0)) __s = *__nextp; while (*__s == __sep) ++__s; __result = ((void *)0); if (*__s != '\0') { __result = __s++; while (*__s != '\0') if (*__s++ == __sep) { __s[-1] = '\0'; break; } } *__nextp = __s; return __result; } # 1179 "/usr/include/x86_64-linux-gnu/bits/string2.h" 3 4 extern char *__strsep_g (char **__stringp, const char *__delim); # 1197 "/usr/include/x86_64-linux-gnu/bits/string2.h" 3 4 extern __inline __attribute__ ((__gnu_inline__)) char *__strsep_1c (char **__s, char __reject); extern __inline __attribute__ ((__gnu_inline__)) char * __strsep_1c (char **__s, char __reject) { char *__retval = *__s; if (__retval != ((void *)0) && (*__s = (__extension__ (__builtin_constant_p (__reject) && !__builtin_constant_p (__retval) && (__reject) == '\0' ? (char *) __rawmemchr (__retval, __reject) : __builtin_strchr (__retval, __reject)))) != ((void *)0)) *(*__s)++ = '\0'; return __retval; } extern __inline __attribute__ ((__gnu_inline__)) char *__strsep_2c (char **__s, char __reject1, char __reject2); extern __inline __attribute__ ((__gnu_inline__)) char * __strsep_2c (char **__s, char __reject1, char __reject2) { char *__retval = *__s; if (__retval != ((void *)0)) { char *__cp = __retval; while (1) { if (*__cp == '\0') { __cp = ((void *)0); break; } if (*__cp == __reject1 || *__cp == __reject2) { *__cp++ = '\0'; break; } ++__cp; } *__s = __cp; } return __retval; } extern __inline __attribute__ ((__gnu_inline__)) char *__strsep_3c (char **__s, char __reject1, char __reject2, char __reject3); extern __inline __attribute__ ((__gnu_inline__)) char * __strsep_3c (char **__s, char __reject1, char __reject2, char __reject3) { char *__retval = *__s; if (__retval != ((void *)0)) { char *__cp = __retval; while (1) { if (*__cp == '\0') { __cp = ((void *)0); break; } if (*__cp == __reject1 || *__cp == __reject2 || *__cp == __reject3) { *__cp++ = '\0'; break; } ++__cp; } *__s = __cp; } return __retval; } # 1273 "/usr/include/x86_64-linux-gnu/bits/string2.h" 3 4 # 1 "/usr/include/stdlib.h" 1 3 4 # 32 "/usr/include/stdlib.h" 3 4 # 1 "/usr/lib/gcc/x86_64-linux-gnu/6/include/stddef.h" 1 3 4 # 33 "/usr/include/stdlib.h" 2 3 4 # 464 "/usr/include/stdlib.h" 3 4 extern void *malloc (size_t __size) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__)); extern void *calloc (size_t __nmemb, size_t __size) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__)); # 967 "/usr/include/stdlib.h" 3 4 # 1274 "/usr/include/x86_64-linux-gnu/bits/string2.h" 2 3 4 extern char *__strdup (const char *__string) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)); # 1297 "/usr/include/x86_64-linux-gnu/bits/string2.h" 3 4 extern char *__strndup (const char *__string, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)); # 635 "/usr/include/string.h" 2 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/string3.h" 1 3 4 # 49 "/usr/include/x86_64-linux-gnu/bits/string3.h" 3 4 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) void * __attribute__ ((__nothrow__ , __leaf__)) memcpy (void *__restrict __dest, const void *__restrict __src, size_t __len) { return __builtin___memcpy_chk (__dest, __src, __len, __builtin_object_size (__dest, 0)); } extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) void * __attribute__ ((__nothrow__ , __leaf__)) memmove (void *__dest, const void *__src, size_t __len) { return __builtin___memmove_chk (__dest, __src, __len, __builtin_object_size (__dest, 0)); } # 77 "/usr/include/x86_64-linux-gnu/bits/string3.h" 3 4 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) void * __attribute__ ((__nothrow__ , __leaf__)) memset (void *__dest, int __ch, size_t __len) { # 90 "/usr/include/x86_64-linux-gnu/bits/string3.h" 3 4 return __builtin___memset_chk (__dest, __ch, __len, __builtin_object_size (__dest, 0)); } extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) void __attribute__ ((__nothrow__ , __leaf__)) bcopy (const void *__src, void *__dest, size_t __len) { (void) __builtin___memmove_chk (__dest, __src, __len, __builtin_object_size (__dest, 0)); } extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) void __attribute__ ((__nothrow__ , __leaf__)) bzero (void *__dest, size_t __len) { (void) __builtin___memset_chk (__dest, '\0', __len, __builtin_object_size (__dest, 0)); } extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) char * __attribute__ ((__nothrow__ , __leaf__)) strcpy (char *__restrict __dest, const char *__restrict __src) { return __builtin___strcpy_chk (__dest, __src, __builtin_object_size (__dest, 2 > 1)); } # 122 "/usr/include/x86_64-linux-gnu/bits/string3.h" 3 4 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) char * __attribute__ ((__nothrow__ , __leaf__)) strncpy (char *__restrict __dest, const char *__restrict __src, size_t __len) { return __builtin___strncpy_chk (__dest, __src, __len, __builtin_object_size (__dest, 2 > 1)); } extern char *__stpncpy_chk (char *__dest, const char *__src, size_t __n, size_t __destlen) __attribute__ ((__nothrow__ , __leaf__)); extern char *__stpncpy_alias (char *__dest, const char *__src, size_t __n) __asm__ ("" "stpncpy") __attribute__ ((__nothrow__ , __leaf__)) ; extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) char * __attribute__ ((__nothrow__ , __leaf__)) stpncpy (char *__dest, const char *__src, size_t __n) { if (__builtin_object_size (__dest, 2 > 1) != (size_t) -1 && (!__builtin_constant_p (__n) || __n <= __builtin_object_size (__dest, 2 > 1))) return __stpncpy_chk (__dest, __src, __n, __builtin_object_size (__dest, 2 > 1)); return __stpncpy_alias (__dest, __src, __n); } extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) char * __attribute__ ((__nothrow__ , __leaf__)) strcat (char *__restrict __dest, const char *__restrict __src) { return __builtin___strcat_chk (__dest, __src, __builtin_object_size (__dest, 2 > 1)); } extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) char * __attribute__ ((__nothrow__ , __leaf__)) strncat (char *__restrict __dest, const char *__restrict __src, size_t __len) { return __builtin___strncat_chk (__dest, __src, __len, __builtin_object_size (__dest, 2 > 1)); } # 640 "/usr/include/string.h" 2 3 4 # 43 "../../../quakedef.h" 2 # 1 "/usr/lib/gcc/x86_64-linux-gnu/6/include/stdarg.h" 1 3 4 # 40 "/usr/lib/gcc/x86_64-linux-gnu/6/include/stdarg.h" 3 4 typedef __builtin_va_list __gnuc_va_list; # 98 "/usr/lib/gcc/x86_64-linux-gnu/6/include/stdarg.h" 3 4 typedef __gnuc_va_list va_list; # 44 "../../../quakedef.h" 2 # 1 "/usr/include/stdio.h" 1 3 4 # 29 "/usr/include/stdio.h" 3 4 # 1 "/usr/lib/gcc/x86_64-linux-gnu/6/include/stddef.h" 1 3 4 # 34 "/usr/include/stdio.h" 2 3 4 # 44 "/usr/include/stdio.h" 3 4 struct _IO_FILE; typedef struct _IO_FILE FILE; # 64 "/usr/include/stdio.h" 3 4 typedef struct _IO_FILE __FILE; # 74 "/usr/include/stdio.h" 3 4 # 1 "/usr/include/libio.h" 1 3 4 # 31 "/usr/include/libio.h" 3 4 # 1 "/usr/include/_G_config.h" 1 3 4 # 15 "/usr/include/_G_config.h" 3 4 # 1 "/usr/lib/gcc/x86_64-linux-gnu/6/include/stddef.h" 1 3 4 # 16 "/usr/include/_G_config.h" 2 3 4 # 1 "/usr/include/wchar.h" 1 3 4 # 82 "/usr/include/wchar.h" 3 4 typedef struct { int __count; union { unsigned int __wch; char __wchb[4]; } __value; } __mbstate_t; # 21 "/usr/include/_G_config.h" 2 3 4 typedef struct { __off_t __pos; __mbstate_t __state; } _G_fpos_t; typedef struct { __off64_t __pos; __mbstate_t __state; } _G_fpos64_t; # 32 "/usr/include/libio.h" 2 3 4 # 144 "/usr/include/libio.h" 3 4 struct _IO_jump_t; struct _IO_FILE; # 154 "/usr/include/libio.h" 3 4 typedef void _IO_lock_t; struct _IO_marker { struct _IO_marker *_next; struct _IO_FILE *_sbuf; int _pos; # 177 "/usr/include/libio.h" 3 4 }; enum __codecvt_result { __codecvt_ok, __codecvt_partial, __codecvt_error, __codecvt_noconv }; # 245 "/usr/include/libio.h" 3 4 struct _IO_FILE { int _flags; char* _IO_read_ptr; char* _IO_read_end; char* _IO_read_base; char* _IO_write_base; char* _IO_write_ptr; char* _IO_write_end; char* _IO_buf_base; char* _IO_buf_end; char *_IO_save_base; char *_IO_backup_base; char *_IO_save_end; struct _IO_marker *_markers; struct _IO_FILE *_chain; int _fileno; int _flags2; __off_t _old_offset; unsigned short _cur_column; signed char _vtable_offset; char _shortbuf[1]; _IO_lock_t *_lock; # 293 "/usr/include/libio.h" 3 4 __off64_t _offset; # 302 "/usr/include/libio.h" 3 4 void *__pad1; void *__pad2; void *__pad3; void *__pad4; size_t __pad5; int _mode; char _unused2[15 * sizeof (int) - 4 * sizeof (void *) - sizeof (size_t)]; }; typedef struct _IO_FILE _IO_FILE; struct _IO_FILE_plus; extern struct _IO_FILE_plus _IO_2_1_stdin_; extern struct _IO_FILE_plus _IO_2_1_stdout_; extern struct _IO_FILE_plus _IO_2_1_stderr_; # 338 "/usr/include/libio.h" 3 4 typedef __ssize_t __io_read_fn (void *__cookie, char *__buf, size_t __nbytes); typedef __ssize_t __io_write_fn (void *__cookie, const char *__buf, size_t __n); typedef int __io_seek_fn (void *__cookie, __off64_t *__pos, int __w); typedef int __io_close_fn (void *__cookie); # 390 "/usr/include/libio.h" 3 4 extern int __underflow (_IO_FILE *); extern int __uflow (_IO_FILE *); extern int __overflow (_IO_FILE *, int); # 434 "/usr/include/libio.h" 3 4 extern int _IO_getc (_IO_FILE *__fp); extern int _IO_putc (int __c, _IO_FILE *__fp); extern int _IO_feof (_IO_FILE *__fp) __attribute__ ((__nothrow__ , __leaf__)); extern int _IO_ferror (_IO_FILE *__fp) __attribute__ ((__nothrow__ , __leaf__)); extern int _IO_peekc_locked (_IO_FILE *__fp); extern void _IO_flockfile (_IO_FILE *) __attribute__ ((__nothrow__ , __leaf__)); extern void _IO_funlockfile (_IO_FILE *) __attribute__ ((__nothrow__ , __leaf__)); extern int _IO_ftrylockfile (_IO_FILE *) __attribute__ ((__nothrow__ , __leaf__)); # 464 "/usr/include/libio.h" 3 4 extern int _IO_vfscanf (_IO_FILE * __restrict, const char * __restrict, __gnuc_va_list, int *__restrict); extern int _IO_vfprintf (_IO_FILE *__restrict, const char *__restrict, __gnuc_va_list); extern __ssize_t _IO_padn (_IO_FILE *, int, __ssize_t); extern size_t _IO_sgetn (_IO_FILE *, void *, size_t); extern __off64_t _IO_seekoff (_IO_FILE *, __off64_t, int, int); extern __off64_t _IO_seekpos (_IO_FILE *, __off64_t, int); extern void _IO_free_backup_area (_IO_FILE *) __attribute__ ((__nothrow__ , __leaf__)); # 75 "/usr/include/stdio.h" 2 3 4 # 108 "/usr/include/stdio.h" 3 4 typedef _G_fpos64_t fpos_t; # 164 "/usr/include/stdio.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/stdio_lim.h" 1 3 4 # 165 "/usr/include/stdio.h" 2 3 4 extern struct _IO_FILE *stdin; extern struct _IO_FILE *stdout; extern struct _IO_FILE *stderr; extern int remove (const char *__filename) __attribute__ ((__nothrow__ , __leaf__)); extern int rename (const char *__old, const char *__new) __attribute__ ((__nothrow__ , __leaf__)); extern int renameat (int __oldfd, const char *__old, int __newfd, const char *__new) __attribute__ ((__nothrow__ , __leaf__)); # 198 "/usr/include/stdio.h" 3 4 extern FILE *tmpfile (void) __asm__ ("" "tmpfile64") __attribute__ ((__warn_unused_result__)); # 209 "/usr/include/stdio.h" 3 4 extern char *tmpnam (char *__s) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); extern char *tmpnam_r (char *__s) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); # 227 "/usr/include/stdio.h" 3 4 extern char *tempnam (const char *__dir, const char *__pfx) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__)); extern int fclose (FILE *__stream); extern int fflush (FILE *__stream); # 252 "/usr/include/stdio.h" 3 4 extern int fflush_unlocked (FILE *__stream); # 266 "/usr/include/stdio.h" 3 4 # 283 "/usr/include/stdio.h" 3 4 extern FILE *fopen (const char *__restrict __filename, const char *__restrict __modes) __asm__ ("" "fopen64") __attribute__ ((__warn_unused_result__)); extern FILE *freopen (const char *__restrict __filename, const char *__restrict __modes, FILE *__restrict __stream) __asm__ ("" "freopen64") __attribute__ ((__warn_unused_result__)); # 306 "/usr/include/stdio.h" 3 4 extern FILE *fdopen (int __fd, const char *__modes) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); # 319 "/usr/include/stdio.h" 3 4 extern FILE *fmemopen (void *__s, size_t __len, const char *__modes) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); extern FILE *open_memstream (char **__bufloc, size_t *__sizeloc) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) __attribute__ ((__nothrow__ , __leaf__)); extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf, int __modes, size_t __n) __attribute__ ((__nothrow__ , __leaf__)); extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf, size_t __size) __attribute__ ((__nothrow__ , __leaf__)); extern void setlinebuf (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)); extern int fprintf (FILE *__restrict __stream, const char *__restrict __format, ...); extern int printf (const char *__restrict __format, ...); extern int sprintf (char *__restrict __s, const char *__restrict __format, ...) __attribute__ ((__nothrow__)); extern int vfprintf (FILE *__restrict __s, const char *__restrict __format, __gnuc_va_list __arg); extern int vprintf (const char *__restrict __format, __gnuc_va_list __arg); extern int vsprintf (char *__restrict __s, const char *__restrict __format, __gnuc_va_list __arg) __attribute__ ((__nothrow__)); extern int snprintf (char *__restrict __s, size_t __maxlen, const char *__restrict __format, ...) __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 3, 4))); extern int vsnprintf (char *__restrict __s, size_t __maxlen, const char *__restrict __format, __gnuc_va_list __arg) __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 3, 0))); # 412 "/usr/include/stdio.h" 3 4 extern int vdprintf (int __fd, const char *__restrict __fmt, __gnuc_va_list __arg) __attribute__ ((__format__ (__printf__, 2, 0))); extern int dprintf (int __fd, const char *__restrict __fmt, ...) __attribute__ ((__format__ (__printf__, 2, 3))); extern int fscanf (FILE *__restrict __stream, const char *__restrict __format, ...) __attribute__ ((__warn_unused_result__)); extern int scanf (const char *__restrict __format, ...) __attribute__ ((__warn_unused_result__)); extern int sscanf (const char *__restrict __s, const char *__restrict __format, ...) __attribute__ ((__nothrow__ , __leaf__)); # 443 "/usr/include/stdio.h" 3 4 extern int fscanf (FILE *__restrict __stream, const char *__restrict __format, ...) __asm__ ("" "__isoc99_fscanf") __attribute__ ((__warn_unused_result__)); extern int scanf (const char *__restrict __format, ...) __asm__ ("" "__isoc99_scanf") __attribute__ ((__warn_unused_result__)); extern int sscanf (const char *__restrict __s, const char *__restrict __format, ...) __asm__ ("" "__isoc99_sscanf") __attribute__ ((__nothrow__ , __leaf__)) ; # 463 "/usr/include/stdio.h" 3 4 extern int vfscanf (FILE *__restrict __s, const char *__restrict __format, __gnuc_va_list __arg) __attribute__ ((__format__ (__scanf__, 2, 0))) __attribute__ ((__warn_unused_result__)); extern int vscanf (const char *__restrict __format, __gnuc_va_list __arg) __attribute__ ((__format__ (__scanf__, 1, 0))) __attribute__ ((__warn_unused_result__)); extern int vsscanf (const char *__restrict __s, const char *__restrict __format, __gnuc_va_list __arg) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__format__ (__scanf__, 2, 0))); # 494 "/usr/include/stdio.h" 3 4 extern int vfscanf (FILE *__restrict __s, const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc99_vfscanf") __attribute__ ((__format__ (__scanf__, 2, 0))) __attribute__ ((__warn_unused_result__)); extern int vscanf (const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc99_vscanf") __attribute__ ((__format__ (__scanf__, 1, 0))) __attribute__ ((__warn_unused_result__)); extern int vsscanf (const char *__restrict __s, const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc99_vsscanf") __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__format__ (__scanf__, 2, 0))); # 522 "/usr/include/stdio.h" 3 4 extern int fgetc (FILE *__stream); extern int getc (FILE *__stream); extern int getchar (void); # 550 "/usr/include/stdio.h" 3 4 extern int getc_unlocked (FILE *__stream); extern int getchar_unlocked (void); # 561 "/usr/include/stdio.h" 3 4 extern int fgetc_unlocked (FILE *__stream); extern int fputc (int __c, FILE *__stream); extern int putc (int __c, FILE *__stream); extern int putchar (int __c); # 594 "/usr/include/stdio.h" 3 4 extern int fputc_unlocked (int __c, FILE *__stream); extern int putc_unlocked (int __c, FILE *__stream); extern int putchar_unlocked (int __c); extern int getw (FILE *__stream); extern int putw (int __w, FILE *__stream); extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); # 640 "/usr/include/stdio.h" 3 4 # 665 "/usr/include/stdio.h" 3 4 extern __ssize_t __getdelim (char **__restrict __lineptr, size_t *__restrict __n, int __delimiter, FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); extern __ssize_t getdelim (char **__restrict __lineptr, size_t *__restrict __n, int __delimiter, FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); extern __ssize_t getline (char **__restrict __lineptr, size_t *__restrict __n, FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); extern int fputs (const char *__restrict __s, FILE *__restrict __stream); extern int puts (const char *__s); extern int ungetc (int __c, FILE *__stream); extern size_t fread (void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); extern size_t fwrite (const void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __s); # 737 "/usr/include/stdio.h" 3 4 extern size_t fread_unlocked (void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); extern size_t fwrite_unlocked (const void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream); extern int fseek (FILE *__stream, long int __off, int __whence); extern long int ftell (FILE *__stream) __attribute__ ((__warn_unused_result__)); extern void rewind (FILE *__stream); # 781 "/usr/include/stdio.h" 3 4 extern int fseeko (FILE *__stream, __off64_t __off, int __whence) __asm__ ("" "fseeko64") ; extern __off64_t ftello (FILE *__stream) __asm__ ("" "ftello64"); # 806 "/usr/include/stdio.h" 3 4 extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos) __asm__ ("" "fgetpos64") ; extern int fsetpos (FILE *__stream, const fpos_t *__pos) __asm__ ("" "fsetpos64") ; # 824 "/usr/include/stdio.h" 3 4 extern void clearerr (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)); extern int feof (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); extern int ferror (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); extern void clearerr_unlocked (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)); extern int feof_unlocked (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); extern int ferror_unlocked (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); extern void perror (const char *__s); # 1 "/usr/include/x86_64-linux-gnu/bits/sys_errlist.h" 1 3 4 # 26 "/usr/include/x86_64-linux-gnu/bits/sys_errlist.h" 3 4 extern int sys_nerr; extern const char *const sys_errlist[]; # 854 "/usr/include/stdio.h" 2 3 4 extern int fileno (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); extern int fileno_unlocked (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); # 872 "/usr/include/stdio.h" 3 4 extern FILE *popen (const char *__command, const char *__modes) __attribute__ ((__warn_unused_result__)); extern int pclose (FILE *__stream); extern char *ctermid (char *__s) __attribute__ ((__nothrow__ , __leaf__)); # 912 "/usr/include/stdio.h" 3 4 extern void flockfile (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)); extern int ftrylockfile (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); extern void funlockfile (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)); # 933 "/usr/include/stdio.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/stdio.h" 1 3 4 # 43 "/usr/include/x86_64-linux-gnu/bits/stdio.h" 3 4 extern __inline __attribute__ ((__gnu_inline__)) int getchar (void) { return _IO_getc (stdin); } extern __inline __attribute__ ((__gnu_inline__)) int fgetc_unlocked (FILE *__fp) { return (__builtin_expect (((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++); } extern __inline __attribute__ ((__gnu_inline__)) int getc_unlocked (FILE *__fp) { return (__builtin_expect (((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++); } extern __inline __attribute__ ((__gnu_inline__)) int getchar_unlocked (void) { return (__builtin_expect (((stdin)->_IO_read_ptr >= (stdin)->_IO_read_end), 0) ? __uflow (stdin) : *(unsigned char *) (stdin)->_IO_read_ptr++); } extern __inline __attribute__ ((__gnu_inline__)) int putchar (int __c) { return _IO_putc (__c, stdout); } extern __inline __attribute__ ((__gnu_inline__)) int fputc_unlocked (int __c, FILE *__stream) { return (__builtin_expect (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c))); } extern __inline __attribute__ ((__gnu_inline__)) int putc_unlocked (int __c, FILE *__stream) { return (__builtin_expect (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c))); } extern __inline __attribute__ ((__gnu_inline__)) int putchar_unlocked (int __c) { return (__builtin_expect (((stdout)->_IO_write_ptr >= (stdout)->_IO_write_end), 0) ? __overflow (stdout, (unsigned char) (__c)) : (unsigned char) (*(stdout)->_IO_write_ptr++ = (__c))); } # 124 "/usr/include/x86_64-linux-gnu/bits/stdio.h" 3 4 extern __inline __attribute__ ((__gnu_inline__)) int __attribute__ ((__nothrow__ , __leaf__)) feof_unlocked (FILE *__stream) { return (((__stream)->_flags & 0x10) != 0); } extern __inline __attribute__ ((__gnu_inline__)) int __attribute__ ((__nothrow__ , __leaf__)) ferror_unlocked (FILE *__stream) { return (((__stream)->_flags & 0x20) != 0); } # 934 "/usr/include/stdio.h" 2 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/stdio2.h" 1 3 4 # 23 "/usr/include/x86_64-linux-gnu/bits/stdio2.h" 3 4 extern int __sprintf_chk (char *__restrict __s, int __flag, size_t __slen, const char *__restrict __format, ...) __attribute__ ((__nothrow__ , __leaf__)); extern int __vsprintf_chk (char *__restrict __s, int __flag, size_t __slen, const char *__restrict __format, __gnuc_va_list __ap) __attribute__ ((__nothrow__ , __leaf__)); extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int __attribute__ ((__nothrow__ , __leaf__)) sprintf (char *__restrict __s, const char *__restrict __fmt, ...) { return __builtin___sprintf_chk (__s, 2 - 1, __builtin_object_size (__s, 2 > 1), __fmt, __builtin_va_arg_pack ()); } extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int __attribute__ ((__nothrow__ , __leaf__)) vsprintf (char *__restrict __s, const char *__restrict __fmt, __gnuc_va_list __ap) { return __builtin___vsprintf_chk (__s, 2 - 1, __builtin_object_size (__s, 2 > 1), __fmt, __ap); } extern int __snprintf_chk (char *__restrict __s, size_t __n, int __flag, size_t __slen, const char *__restrict __format, ...) __attribute__ ((__nothrow__ , __leaf__)); extern int __vsnprintf_chk (char *__restrict __s, size_t __n, int __flag, size_t __slen, const char *__restrict __format, __gnuc_va_list __ap) __attribute__ ((__nothrow__ , __leaf__)); extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int __attribute__ ((__nothrow__ , __leaf__)) snprintf (char *__restrict __s, size_t __n, const char *__restrict __fmt, ...) { return __builtin___snprintf_chk (__s, __n, 2 - 1, __builtin_object_size (__s, 2 > 1), __fmt, __builtin_va_arg_pack ()); } extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int __attribute__ ((__nothrow__ , __leaf__)) vsnprintf (char *__restrict __s, size_t __n, const char *__restrict __fmt, __gnuc_va_list __ap) { return __builtin___vsnprintf_chk (__s, __n, 2 - 1, __builtin_object_size (__s, 2 > 1), __fmt, __ap); } extern int __fprintf_chk (FILE *__restrict __stream, int __flag, const char *__restrict __format, ...); extern int __printf_chk (int __flag, const char *__restrict __format, ...); extern int __vfprintf_chk (FILE *__restrict __stream, int __flag, const char *__restrict __format, __gnuc_va_list __ap); extern int __vprintf_chk (int __flag, const char *__restrict __format, __gnuc_va_list __ap); extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int fprintf (FILE *__restrict __stream, const char *__restrict __fmt, ...) { return __fprintf_chk (__stream, 2 - 1, __fmt, __builtin_va_arg_pack ()); } extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int printf (const char *__restrict __fmt, ...) { return __printf_chk (2 - 1, __fmt, __builtin_va_arg_pack ()); } extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int vprintf (const char *__restrict __fmt, __gnuc_va_list __ap) { return __vfprintf_chk (stdout, 2 - 1, __fmt, __ap); } extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int vfprintf (FILE *__restrict __stream, const char *__restrict __fmt, __gnuc_va_list __ap) { return __vfprintf_chk (__stream, 2 - 1, __fmt, __ap); } extern int __dprintf_chk (int __fd, int __flag, const char *__restrict __fmt, ...) __attribute__ ((__format__ (__printf__, 3, 4))); extern int __vdprintf_chk (int __fd, int __flag, const char *__restrict __fmt, __gnuc_va_list __arg) __attribute__ ((__format__ (__printf__, 3, 0))); extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int dprintf (int __fd, const char *__restrict __fmt, ...) { return __dprintf_chk (__fd, 2 - 1, __fmt, __builtin_va_arg_pack ()); } extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int vdprintf (int __fd, const char *__restrict __fmt, __gnuc_va_list __ap) { return __vdprintf_chk (__fd, 2 - 1, __fmt, __ap); } # 241 "/usr/include/x86_64-linux-gnu/bits/stdio2.h" 3 4 extern char *__fgets_chk (char *__restrict __s, size_t __size, int __n, FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); extern char *__fgets_alias (char *__restrict __s, int __n, FILE *__restrict __stream) __asm__ ("" "fgets") __attribute__ ((__warn_unused_result__)); extern char *__fgets_chk_warn (char *__restrict __s, size_t __size, int __n, FILE *__restrict __stream) __asm__ ("" "__fgets_chk") __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fgets called with bigger size than length " "of destination buffer"))) ; extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) char * fgets (char *__restrict __s, int __n, FILE *__restrict __stream) { if (__builtin_object_size (__s, 2 > 1) != (size_t) -1) { if (!__builtin_constant_p (__n) || __n <= 0) return __fgets_chk (__s, __builtin_object_size (__s, 2 > 1), __n, __stream); if ((size_t) __n > __builtin_object_size (__s, 2 > 1)) return __fgets_chk_warn (__s, __builtin_object_size (__s, 2 > 1), __n, __stream); } return __fgets_alias (__s, __n, __stream); } extern size_t __fread_chk (void *__restrict __ptr, size_t __ptrlen, size_t __size, size_t __n, FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); extern size_t __fread_alias (void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) __asm__ ("" "fread") __attribute__ ((__warn_unused_result__)); extern size_t __fread_chk_warn (void *__restrict __ptr, size_t __ptrlen, size_t __size, size_t __n, FILE *__restrict __stream) __asm__ ("" "__fread_chk") __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fread called with bigger size * nmemb than length " "of destination buffer"))) ; extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) size_t fread (void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) { if (__builtin_object_size (__ptr, 0) != (size_t) -1) { if (!__builtin_constant_p (__size) || !__builtin_constant_p (__n) || (__size | __n) >= (((size_t) 1) << (8 * sizeof (size_t) / 2))) return __fread_chk (__ptr, __builtin_object_size (__ptr, 0), __size, __n, __stream); if (__size * __n > __builtin_object_size (__ptr, 0)) return __fread_chk_warn (__ptr, __builtin_object_size (__ptr, 0), __size, __n, __stream); } return __fread_alias (__ptr, __size, __n, __stream); } # 327 "/usr/include/x86_64-linux-gnu/bits/stdio2.h" 3 4 extern size_t __fread_unlocked_chk (void *__restrict __ptr, size_t __ptrlen, size_t __size, size_t __n, FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); extern size_t __fread_unlocked_alias (void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) __asm__ ("" "fread_unlocked") __attribute__ ((__warn_unused_result__)); extern size_t __fread_unlocked_chk_warn (void *__restrict __ptr, size_t __ptrlen, size_t __size, size_t __n, FILE *__restrict __stream) __asm__ ("" "__fread_unlocked_chk") __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fread_unlocked called with bigger size * nmemb than " "length of destination buffer"))) ; extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) size_t fread_unlocked (void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) { if (__builtin_object_size (__ptr, 0) != (size_t) -1) { if (!__builtin_constant_p (__size) || !__builtin_constant_p (__n) || (__size | __n) >= (((size_t) 1) << (8 * sizeof (size_t) / 2))) return __fread_unlocked_chk (__ptr, __builtin_object_size (__ptr, 0), __size, __n, __stream); if (__size * __n > __builtin_object_size (__ptr, 0)) return __fread_unlocked_chk_warn (__ptr, __builtin_object_size (__ptr, 0), __size, __n, __stream); } if (__builtin_constant_p (__size) && __builtin_constant_p (__n) && (__size | __n) < (((size_t) 1) << (8 * sizeof (size_t) / 2)) && __size * __n <= 8) { size_t __cnt = __size * __n; char *__cptr = (char *) __ptr; if (__cnt == 0) return 0; for (; __cnt > 0; --__cnt) { int __c = (__builtin_expect (((__stream)->_IO_read_ptr >= (__stream)->_IO_read_end), 0) ? __uflow (__stream) : *(unsigned char *) (__stream)->_IO_read_ptr++); if (__c == (-1)) break; *__cptr++ = __c; } return (__cptr - (char *) __ptr) / __size; } return __fread_unlocked_alias (__ptr, __size, __n, __stream); } # 937 "/usr/include/stdio.h" 2 3 4 # 45 "../../../quakedef.h" 2 # 1 "/usr/include/stdlib.h" 1 3 4 # 32 "/usr/include/stdlib.h" 3 4 # 1 "/usr/lib/gcc/x86_64-linux-gnu/6/include/stddef.h" 1 3 4 # 328 "/usr/lib/gcc/x86_64-linux-gnu/6/include/stddef.h" 3 4 typedef int wchar_t; # 33 "/usr/include/stdlib.h" 2 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/waitflags.h" 1 3 4 # 50 "/usr/include/x86_64-linux-gnu/bits/waitflags.h" 3 4 typedef enum { P_ALL, P_PID, P_PGID } idtype_t; # 42 "/usr/include/stdlib.h" 2 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/waitstatus.h" 1 3 4 # 66 "/usr/include/x86_64-linux-gnu/bits/waitstatus.h" 3 4 union wait { int w_status; struct { unsigned int __w_termsig:7; unsigned int __w_coredump:1; unsigned int __w_retcode:8; unsigned int:16; } __wait_terminated; struct { unsigned int __w_stopval:8; unsigned int __w_stopsig:8; unsigned int:16; } __wait_stopped; }; # 43 "/usr/include/stdlib.h" 2 3 4 # 67 "/usr/include/stdlib.h" 3 4 typedef union { union wait *__uptr; int *__iptr; } __WAIT_STATUS __attribute__ ((__transparent_union__)); # 95 "/usr/include/stdlib.h" 3 4 typedef struct { int quot; int rem; } div_t; typedef struct { long int quot; long int rem; } ldiv_t; __extension__ typedef struct { long long int quot; long long int rem; } lldiv_t; # 139 "/usr/include/stdlib.h" 3 4 extern size_t __ctype_get_mb_cur_max (void) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); extern double atof (const char *__nptr) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); extern int atoi (const char *__nptr) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); extern long int atol (const char *__nptr) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); __extension__ extern long long int atoll (const char *__nptr) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); extern double strtod (const char *__restrict __nptr, char **__restrict __endptr) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); extern float strtof (const char *__restrict __nptr, char **__restrict __endptr) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); extern long double strtold (const char *__restrict __nptr, char **__restrict __endptr) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); extern long int strtol (const char *__restrict __nptr, char **__restrict __endptr, int __base) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); extern unsigned long int strtoul (const char *__restrict __nptr, char **__restrict __endptr, int __base) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); __extension__ extern long long int strtoq (const char *__restrict __nptr, char **__restrict __endptr, int __base) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); __extension__ extern unsigned long long int strtouq (const char *__restrict __nptr, char **__restrict __endptr, int __base) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); __extension__ extern long long int strtoll (const char *__restrict __nptr, char **__restrict __endptr, int __base) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); __extension__ extern unsigned long long int strtoull (const char *__restrict __nptr, char **__restrict __endptr, int __base) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); # 276 "/usr/include/stdlib.h" 3 4 extern __inline __attribute__ ((__gnu_inline__)) int __attribute__ ((__nothrow__ , __leaf__)) atoi (const char *__nptr) { return (int) strtol (__nptr, (char **) ((void *)0), 10); } extern __inline __attribute__ ((__gnu_inline__)) long int __attribute__ ((__nothrow__ , __leaf__)) atol (const char *__nptr) { return strtol (__nptr, (char **) ((void *)0), 10); } __extension__ extern __inline __attribute__ ((__gnu_inline__)) long long int __attribute__ ((__nothrow__ , __leaf__)) atoll (const char *__nptr) { return strtoll (__nptr, (char **) ((void *)0), 10); } # 305 "/usr/include/stdlib.h" 3 4 extern char *l64a (long int __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); extern long int a64l (const char *__s) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); # 321 "/usr/include/stdlib.h" 3 4 extern long int random (void) __attribute__ ((__nothrow__ , __leaf__)); extern void srandom (unsigned int __seed) __attribute__ ((__nothrow__ , __leaf__)); extern char *initstate (unsigned int __seed, char *__statebuf, size_t __statelen) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))); extern char *setstate (char *__statebuf) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); struct random_data { int32_t *fptr; int32_t *rptr; int32_t *state; int rand_type; int rand_deg; int rand_sep; int32_t *end_ptr; }; extern int random_r (struct random_data *__restrict __buf, int32_t *__restrict __result) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); extern int srandom_r (unsigned int __seed, struct random_data *__buf) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))); extern int initstate_r (unsigned int __seed, char *__restrict __statebuf, size_t __statelen, struct random_data *__restrict __buf) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 4))); extern int setstate_r (char *__restrict __statebuf, struct random_data *__restrict __buf) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); extern int rand (void) __attribute__ ((__nothrow__ , __leaf__)); extern void srand (unsigned int __seed) __attribute__ ((__nothrow__ , __leaf__)); extern int rand_r (unsigned int *__seed) __attribute__ ((__nothrow__ , __leaf__)); extern double drand48 (void) __attribute__ ((__nothrow__ , __leaf__)); extern double erand48 (unsigned short int __xsubi[3]) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); extern long int lrand48 (void) __attribute__ ((__nothrow__ , __leaf__)); extern long int nrand48 (unsigned short int __xsubi[3]) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); extern long int mrand48 (void) __attribute__ ((__nothrow__ , __leaf__)); extern long int jrand48 (unsigned short int __xsubi[3]) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); extern void srand48 (long int __seedval) __attribute__ ((__nothrow__ , __leaf__)); extern unsigned short int *seed48 (unsigned short int __seed16v[3]) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); extern void lcong48 (unsigned short int __param[7]) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); struct drand48_data { unsigned short int __x[3]; unsigned short int __old_x[3]; unsigned short int __c; unsigned short int __init; __extension__ unsigned long long int __a; }; extern int drand48_r (struct drand48_data *__restrict __buffer, double *__restrict __result) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); extern int erand48_r (unsigned short int __xsubi[3], struct drand48_data *__restrict __buffer, double *__restrict __result) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); extern int lrand48_r (struct drand48_data *__restrict __buffer, long int *__restrict __result) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); extern int nrand48_r (unsigned short int __xsubi[3], struct drand48_data *__restrict __buffer, long int *__restrict __result) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); extern int mrand48_r (struct drand48_data *__restrict __buffer, long int *__restrict __result) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); extern int jrand48_r (unsigned short int __xsubi[3], struct drand48_data *__restrict __buffer, long int *__restrict __result) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); extern int srand48_r (long int __seedval, struct drand48_data *__buffer) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))); extern int seed48_r (unsigned short int __seed16v[3], struct drand48_data *__buffer) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); extern int lcong48_r (unsigned short int __param[7], struct drand48_data *__buffer) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); # 474 "/usr/include/stdlib.h" 3 4 extern void *realloc (void *__ptr, size_t __size) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); extern void free (void *__ptr) __attribute__ ((__nothrow__ , __leaf__)); extern void cfree (void *__ptr) __attribute__ ((__nothrow__ , __leaf__)); # 1 "/usr/include/alloca.h" 1 3 4 # 24 "/usr/include/alloca.h" 3 4 # 1 "/usr/lib/gcc/x86_64-linux-gnu/6/include/stddef.h" 1 3 4 # 25 "/usr/include/alloca.h" 2 3 4 extern void *alloca (size_t __size) __attribute__ ((__nothrow__ , __leaf__)); # 493 "/usr/include/stdlib.h" 2 3 4 extern void *valloc (size_t __size) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__)); extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); extern void *aligned_alloc (size_t __alignment, size_t __size) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__alloc_size__ (2))) __attribute__ ((__warn_unused_result__)); extern void abort (void) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__)); extern int atexit (void (*__func) (void)) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); extern int at_quick_exit (void (*__func) (void)) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); extern void exit (int __status) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__)); extern void quick_exit (int __status) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__)); extern void _Exit (int __status) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__)); extern char *getenv (const char *__name) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); # 578 "/usr/include/stdlib.h" 3 4 extern int putenv (char *__string) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); extern int setenv (const char *__name, const char *__value, int __replace) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))); extern int unsetenv (const char *__name) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); extern int clearenv (void) __attribute__ ((__nothrow__ , __leaf__)); # 606 "/usr/include/stdlib.h" 3 4 extern char *mktemp (char *__template) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); # 622 "/usr/include/stdlib.h" 3 4 extern int mkstemp (char *__template) __asm__ ("" "mkstemp64") __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); # 644 "/usr/include/stdlib.h" 3 4 extern int mkstemps (char *__template, int __suffixlen) __asm__ ("" "mkstemps64") __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); # 662 "/usr/include/stdlib.h" 3 4 extern char *mkdtemp (char *__template) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); # 711 "/usr/include/stdlib.h" 3 4 extern int system (const char *__command) __attribute__ ((__warn_unused_result__)); # 733 "/usr/include/stdlib.h" 3 4 extern char *realpath (const char *__restrict __name, char *__restrict __resolved) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); typedef int (*__compar_fn_t) (const void *, const void *); # 751 "/usr/include/stdlib.h" 3 4 extern void *bsearch (const void *__key, const void *__base, size_t __nmemb, size_t __size, __compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 2, 5))) __attribute__ ((__warn_unused_result__)); # 1 "/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h" 1 3 4 # 19 "/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h" 3 4 extern __inline __attribute__ ((__gnu_inline__)) void * bsearch (const void *__key, const void *__base, size_t __nmemb, size_t __size, __compar_fn_t __compar) { size_t __l, __u, __idx; const void *__p; int __comparison; __l = 0; __u = __nmemb; while (__l < __u) { __idx = (__l + __u) / 2; __p = (void *) (((const char *) __base) + (__idx * __size)); __comparison = (*__compar) (__key, __p); if (__comparison < 0) __u = __idx; else if (__comparison > 0) __l = __idx + 1; else return (void *) __p; } return ((void *)0); } # 760 "/usr/include/stdlib.h" 2 3 4 extern void qsort (void *__base, size_t __nmemb, size_t __size, __compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 4))); # 774 "/usr/include/stdlib.h" 3 4 extern int abs (int __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); extern long int labs (long int __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); __extension__ extern long long int llabs (long long int __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); extern div_t div (int __numer, int __denom) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); extern ldiv_t ldiv (long int __numer, long int __denom) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); __extension__ extern lldiv_t lldiv (long long int __numer, long long int __denom) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); # 811 "/usr/include/stdlib.h" 3 4 extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4))) __attribute__ ((__warn_unused_result__)); extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4))) __attribute__ ((__warn_unused_result__)); extern char *gcvt (double __value, int __ndigit, char *__buf) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3))) __attribute__ ((__warn_unused_result__)); extern char *qecvt (long double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4))) __attribute__ ((__warn_unused_result__)); extern char *qfcvt (long double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4))) __attribute__ ((__warn_unused_result__)); extern char *qgcvt (long double __value, int __ndigit, char *__buf) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3))) __attribute__ ((__warn_unused_result__)); extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign, char *__restrict __buf, size_t __len) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4, 5))); extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign, char *__restrict __buf, size_t __len) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4, 5))); extern int qecvt_r (long double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign, char *__restrict __buf, size_t __len) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4, 5))); extern int qfcvt_r (long double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign, char *__restrict __buf, size_t __len) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4, 5))); extern int mblen (const char *__s, size_t __n) __attribute__ ((__nothrow__ , __leaf__)); extern int mbtowc (wchar_t *__restrict __pwc, const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__ , __leaf__)); extern int wctomb (char *__s, wchar_t __wchar) __attribute__ ((__nothrow__ , __leaf__)); extern size_t mbstowcs (wchar_t *__restrict __pwcs, const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__ , __leaf__)); extern size_t wcstombs (char *__restrict __s, const wchar_t *__restrict __pwcs, size_t __n) __attribute__ ((__nothrow__ , __leaf__)); extern int rpmatch (const char *__response) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); # 898 "/usr/include/stdlib.h" 3 4 extern int getsubopt (char **__restrict __optionp, char *const *__restrict __tokens, char **__restrict __valuep) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2, 3))) __attribute__ ((__warn_unused_result__)); # 950 "/usr/include/stdlib.h" 3 4 extern int getloadavg (double __loadavg[], int __nelem) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); # 1 "/usr/include/x86_64-linux-gnu/bits/stdlib-float.h" 1 3 4 # 24 "/usr/include/x86_64-linux-gnu/bits/stdlib-float.h" 3 4 extern __inline __attribute__ ((__gnu_inline__)) double __attribute__ ((__nothrow__ , __leaf__)) atof (const char *__nptr) { return strtod (__nptr, (char **) ((void *)0)); } # 955 "/usr/include/stdlib.h" 2 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/stdlib.h" 1 3 4 # 23 "/usr/include/x86_64-linux-gnu/bits/stdlib.h" 3 4 extern char *__realpath_chk (const char *__restrict __name, char *__restrict __resolved, size_t __resolvedlen) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); extern char *__realpath_alias (const char *__restrict __name, char *__restrict __resolved) __asm__ ("" "realpath") __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); extern char *__realpath_chk_warn (const char *__restrict __name, char *__restrict __resolved, size_t __resolvedlen) __asm__ ("" "__realpath_chk") __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("second argument of realpath must be either NULL or at " "least PATH_MAX bytes long buffer"))) ; extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) char * __attribute__ ((__nothrow__ , __leaf__)) realpath (const char *__restrict __name, char *__restrict __resolved) { if (__builtin_object_size (__resolved, 2 > 1) != (size_t) -1) { return __realpath_chk (__name, __resolved, __builtin_object_size (__resolved, 2 > 1)); } return __realpath_alias (__name, __resolved); } extern int __ptsname_r_chk (int __fd, char *__buf, size_t __buflen, size_t __nreal) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))); extern int __ptsname_r_alias (int __fd, char *__buf, size_t __buflen) __asm__ ("" "ptsname_r") __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))); extern int __ptsname_r_chk_warn (int __fd, char *__buf, size_t __buflen, size_t __nreal) __asm__ ("" "__ptsname_r_chk") __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))) __attribute__((__warning__ ("ptsname_r called with buflen bigger than " "size of buf"))) ; extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int __attribute__ ((__nothrow__ , __leaf__)) ptsname_r (int __fd, char *__buf, size_t __buflen) { if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1) { if (!__builtin_constant_p (__buflen)) return __ptsname_r_chk (__fd, __buf, __buflen, __builtin_object_size (__buf, 2 > 1)); if (__buflen > __builtin_object_size (__buf, 2 > 1)) return __ptsname_r_chk_warn (__fd, __buf, __buflen, __builtin_object_size (__buf, 2 > 1)); } return __ptsname_r_alias (__fd, __buf, __buflen); } extern int __wctomb_chk (char *__s, wchar_t __wchar, size_t __buflen) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); extern int __wctomb_alias (char *__s, wchar_t __wchar) __asm__ ("" "wctomb") __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) int __attribute__ ((__nothrow__ , __leaf__)) wctomb (char *__s, wchar_t __wchar) { if (__builtin_object_size (__s, 2 > 1) != (size_t) -1 && 16 > __builtin_object_size (__s, 2 > 1)) return __wctomb_chk (__s, __wchar, __builtin_object_size (__s, 2 > 1)); return __wctomb_alias (__s, __wchar); } extern size_t __mbstowcs_chk (wchar_t *__restrict __dst, const char *__restrict __src, size_t __len, size_t __dstlen) __attribute__ ((__nothrow__ , __leaf__)); extern size_t __mbstowcs_alias (wchar_t *__restrict __dst, const char *__restrict __src, size_t __len) __asm__ ("" "mbstowcs") __attribute__ ((__nothrow__ , __leaf__)) ; extern size_t __mbstowcs_chk_warn (wchar_t *__restrict __dst, const char *__restrict __src, size_t __len, size_t __dstlen) __asm__ ("" "__mbstowcs_chk") __attribute__ ((__nothrow__ , __leaf__)) __attribute__((__warning__ ("mbstowcs called with dst buffer smaller than len " "* sizeof (wchar_t)"))) ; extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) size_t __attribute__ ((__nothrow__ , __leaf__)) mbstowcs (wchar_t *__restrict __dst, const char *__restrict __src, size_t __len) { if (__builtin_object_size (__dst, 2 > 1) != (size_t) -1) { if (!__builtin_constant_p (__len)) return __mbstowcs_chk (__dst, __src, __len, __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t)); if (__len > __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t)) return __mbstowcs_chk_warn (__dst, __src, __len, __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t)); } return __mbstowcs_alias (__dst, __src, __len); } extern size_t __wcstombs_chk (char *__restrict __dst, const wchar_t *__restrict __src, size_t __len, size_t __dstlen) __attribute__ ((__nothrow__ , __leaf__)); extern size_t __wcstombs_alias (char *__restrict __dst, const wchar_t *__restrict __src, size_t __len) __asm__ ("" "wcstombs") __attribute__ ((__nothrow__ , __leaf__)) ; extern size_t __wcstombs_chk_warn (char *__restrict __dst, const wchar_t *__restrict __src, size_t __len, size_t __dstlen) __asm__ ("" "__wcstombs_chk") __attribute__ ((__nothrow__ , __leaf__)) __attribute__((__warning__ ("wcstombs called with dst buffer smaller than len"))); extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) size_t __attribute__ ((__nothrow__ , __leaf__)) wcstombs (char *__restrict __dst, const wchar_t *__restrict __src, size_t __len) { if (__builtin_object_size (__dst, 2 > 1) != (size_t) -1) { if (!__builtin_constant_p (__len)) return __wcstombs_chk (__dst, __src, __len, __builtin_object_size (__dst, 2 > 1)); if (__len > __builtin_object_size (__dst, 2 > 1)) return __wcstombs_chk_warn (__dst, __src, __len, __builtin_object_size (__dst, 2 > 1)); } return __wcstombs_alias (__dst, __src, __len); } # 959 "/usr/include/stdlib.h" 2 3 4 # 967 "/usr/include/stdlib.h" 3 4 # 46 "../../../quakedef.h" 2 # 1 "/usr/lib/gcc/x86_64-linux-gnu/6/include-fixed/limits.h" 1 3 4 # 34 "/usr/lib/gcc/x86_64-linux-gnu/6/include-fixed/limits.h" 3 4 # 1 "/usr/lib/gcc/x86_64-linux-gnu/6/include-fixed/syslimits.h" 1 3 4 # 1 "/usr/lib/gcc/x86_64-linux-gnu/6/include-fixed/limits.h" 1 3 4 # 168 "/usr/lib/gcc/x86_64-linux-gnu/6/include-fixed/limits.h" 3 4 # 1 "/usr/include/limits.h" 1 3 4 # 143 "/usr/include/limits.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/posix1_lim.h" 1 3 4 # 160 "/usr/include/x86_64-linux-gnu/bits/posix1_lim.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/local_lim.h" 1 3 4 # 38 "/usr/include/x86_64-linux-gnu/bits/local_lim.h" 3 4 # 1 "/usr/include/linux/limits.h" 1 3 4 # 39 "/usr/include/x86_64-linux-gnu/bits/local_lim.h" 2 3 4 # 161 "/usr/include/x86_64-linux-gnu/bits/posix1_lim.h" 2 3 4 # 144 "/usr/include/limits.h" 2 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/posix2_lim.h" 1 3 4 # 148 "/usr/include/limits.h" 2 3 4 # 169 "/usr/lib/gcc/x86_64-linux-gnu/6/include-fixed/limits.h" 2 3 4 # 8 "/usr/lib/gcc/x86_64-linux-gnu/6/include-fixed/syslimits.h" 2 3 4 # 35 "/usr/lib/gcc/x86_64-linux-gnu/6/include-fixed/limits.h" 2 3 4 # 47 "../../../quakedef.h" 2 # 1 "/usr/include/setjmp.h" 1 3 4 # 27 "/usr/include/setjmp.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/setjmp.h" 1 3 4 # 26 "/usr/include/x86_64-linux-gnu/bits/setjmp.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4 # 27 "/usr/include/x86_64-linux-gnu/bits/setjmp.h" 2 3 4 typedef long int __jmp_buf[8]; # 30 "/usr/include/setjmp.h" 2 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/sigset.h" 1 3 4 # 31 "/usr/include/setjmp.h" 2 3 4 struct __jmp_buf_tag { __jmp_buf __jmpbuf; int __mask_was_saved; __sigset_t __saved_mask; }; typedef struct __jmp_buf_tag jmp_buf[1]; extern int setjmp (jmp_buf __env) __attribute__ ((__nothrow__)); extern int __sigsetjmp (struct __jmp_buf_tag __env[1], int __savemask) __attribute__ ((__nothrow__)); extern int _setjmp (struct __jmp_buf_tag __env[1]) __attribute__ ((__nothrow__)); extern void longjmp (struct __jmp_buf_tag __env[1], int __val) __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__)); extern void _longjmp (struct __jmp_buf_tag __env[1], int __val) __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__)); typedef struct __jmp_buf_tag sigjmp_buf[1]; # 102 "/usr/include/setjmp.h" 3 4 extern void siglongjmp (sigjmp_buf __env, int __val) __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__)); # 1 "/usr/include/x86_64-linux-gnu/bits/setjmp2.h" 1 3 4 # 25 "/usr/include/x86_64-linux-gnu/bits/setjmp2.h" 3 4 extern void longjmp (struct __jmp_buf_tag __env[1], int __val) __asm__ ("" "__longjmp_chk") __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__)); extern void _longjmp (struct __jmp_buf_tag __env[1], int __val) __asm__ ("" "__longjmp_chk") __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__)); extern void siglongjmp (struct __jmp_buf_tag __env[1], int __val) __asm__ ("" "__longjmp_chk") __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__)); # 110 "/usr/include/setjmp.h" 2 3 4 # 48 "../../../quakedef.h" 2 # 1 "../../../qtypes.h" 1 # 9 "../../../qtypes.h" # 9 "../../../qtypes.h" typedef enum qboolean_e {false, true} qboolean; # 46 "../../../qtypes.h" typedef float prvm_vec_t; typedef int prvm_int_t; typedef unsigned int prvm_uint_t; typedef prvm_vec_t prvm_vec3_t[3]; typedef float vec_t; typedef vec_t vec2_t[2]; typedef vec_t vec3_t[3]; typedef vec_t vec4_t[4]; typedef vec_t vec5_t[5]; typedef vec_t vec6_t[6]; typedef vec_t vec7_t[7]; typedef vec_t vec8_t[8]; # 50 "../../../quakedef.h" 2 extern const char *buildstring; extern char engineversion[128]; # 373 "../../../quakedef.h" # 1 "../../../zone.h" 1 # 24 "../../../zone.h" extern qboolean mem_bigendian; # 33 "../../../zone.h" typedef struct memheader_s { void *baseaddress; struct memheader_s *next; struct memheader_s *prev; struct mempool_s *pool; size_t size; const char *filename; int fileline; unsigned int sentinel; } memheader_t; typedef struct mempool_s { unsigned int sentinel1; struct memheader_s *chain; int flags; size_t totalsize; size_t realsize; size_t lastchecksize; struct mempool_s *next; struct mempool_s *parent; const char *filename; int fileline; char name[128]; unsigned int sentinel2; } mempool_t; # 91 "../../../zone.h" void *_Mem_Alloc(mempool_t *pool, void *data, size_t size, size_t alignment, const char *filename, int fileline); void _Mem_Free(void *data, const char *filename, int fileline); mempool_t *_Mem_AllocPool(const char *name, int flags, mempool_t *parent, const char *filename, int fileline); void _Mem_FreePool(mempool_t **pool, const char *filename, int fileline); void _Mem_EmptyPool(mempool_t *pool, const char *filename, int fileline); void _Mem_CheckSentinels(void *data, const char *filename, int fileline); void _Mem_CheckSentinelsGlobal(const char *filename, int fileline); qboolean Mem_IsAllocated(mempool_t *pool, void *data); char* Mem_strdup (mempool_t *pool, const char* s); typedef struct memexpandablearray_array_s { unsigned char *data; unsigned char *allocflags; size_t numflaggedrecords; } memexpandablearray_array_t; typedef struct memexpandablearray_s { mempool_t *mempool; size_t recordsize; size_t numrecordsperarray; size_t numarrays; size_t maxarrays; memexpandablearray_array_t *arrays; } memexpandablearray_t; void Mem_ExpandableArray_NewArray(memexpandablearray_t *l, mempool_t *mempool, size_t recordsize, int numrecordsperarray); void Mem_ExpandableArray_FreeArray(memexpandablearray_t *l); void *Mem_ExpandableArray_AllocRecord(memexpandablearray_t *l); void Mem_ExpandableArray_FreeRecord(memexpandablearray_t *l, void *record); size_t Mem_ExpandableArray_IndexRange(const memexpandablearray_t *l) __attribute__ ((pure)); void *Mem_ExpandableArray_RecordAtIndex(const memexpandablearray_t *l, size_t index) __attribute__ ((pure)); extern mempool_t *tempmempool; void Memory_Init (void); void Memory_Shutdown (void); void Memory_Init_Commands (void); extern mempool_t *zonemempool; extern struct cvar_s developer_memory; extern struct cvar_s developer_memorydebug; # 374 "../../../quakedef.h" 2 # 1 "../../../fs.h" 1 # 31 "../../../fs.h" typedef struct qfile_s qfile_t; typedef long long fs_offset_t; extern char fs_gamedir [ # 44 "../../../fs.h" 3 4 4096 # 44 "../../../fs.h" ]; extern char fs_basedir [ # 45 "../../../fs.h" 3 4 4096 # 45 "../../../fs.h" ]; extern char fs_userdir [ # 46 "../../../fs.h" 3 4 4096 # 46 "../../../fs.h" ]; extern int fs_numgamedirs; extern char fs_gamedirs[16][128]; qboolean FS_AddPack(const char *pakfile, qboolean *already_loaded, qboolean keep_plain_dirs); const char *FS_WhichPack(const char *filename); void FS_CreatePath (char *path); int FS_SysOpenFD(const char *filepath, const char *mode, qboolean nonblocking); qfile_t* FS_SysOpen (const char* filepath, const char* mode, qboolean nonblocking); qfile_t* FS_OpenRealFile (const char* filepath, const char* mode, qboolean quiet); qfile_t* FS_OpenVirtualFile (const char* filepath, qboolean quiet); qfile_t* FS_FileFromData (const unsigned char *data, const size_t size, qboolean quiet); int FS_Close (qfile_t* file); void FS_RemoveOnClose(qfile_t* file); fs_offset_t FS_Write (qfile_t* file, const void* data, size_t datasize); fs_offset_t FS_Read (qfile_t* file, void* buffer, size_t buffersize); int FS_Print(qfile_t* file, const char *msg); int FS_Printf(qfile_t* file, const char* format, ...) __attribute__ ((format (printf, 2, 2 +1))); int FS_VPrintf(qfile_t* file, const char* format, va_list ap); int FS_Getc (qfile_t* file); int FS_UnGetc (qfile_t* file, unsigned char c); int FS_Seek (qfile_t* file, fs_offset_t offset, int whence); fs_offset_t FS_Tell (qfile_t* file); fs_offset_t FS_FileSize (qfile_t* file); void FS_Purge (qfile_t* file); const char *FS_FileWithoutPath (const char *in); const char *FS_FileExtension (const char *in); int FS_CheckNastyPath (const char *path, qboolean isgamedir); extern const char *const fs_checkgamedir_missing; const char *FS_CheckGameDir(const char *gamedir); typedef struct { char name[ # 89 "../../../fs.h" 3 4 4096 # 89 "../../../fs.h" ]; char description[8192]; } gamedir_t; extern gamedir_t *fs_all_gamedirs; extern int fs_all_gamedirs_count; qboolean FS_ChangeGameDirs(int numgamedirs, char gamedirs[][128], qboolean complain, qboolean failmissing); qboolean FS_IsRegisteredQuakePack(const char *name); int FS_CRCFile(const char *filename, size_t *filesizepointer); void FS_Rescan(void); typedef struct fssearch_s { int numfilenames; char **filenames; char *filenamesbuffer; } fssearch_t; fssearch_t *FS_Search(const char *pattern, int caseinsensitive, int quiet); void FS_FreeSearch(fssearch_t *search); unsigned char *FS_LoadFile (const char *path, mempool_t *pool, qboolean quiet, fs_offset_t *filesizepointer); qboolean FS_WriteFileInBlocks (const char *filename, const void *const *data, const fs_offset_t *len, size_t count); qboolean FS_WriteFile (const char *filename, const void *data, fs_offset_t len); void FS_StripExtension (const char *in, char *out, size_t size_out); void FS_DefaultExtension (char *path, const char *extension, size_t size_path); int FS_FileType (const char *filename); int FS_SysFileType (const char *filename); qboolean FS_FileExists (const char *filename); qboolean FS_SysFileExists (const char *filename); unsigned char *FS_Deflate(const unsigned char *data, size_t size, size_t *deflated_size, int level, mempool_t *mempool); unsigned char *FS_Inflate(const unsigned char *data, size_t size, size_t *inflated_size, mempool_t *mempool); qboolean FS_HasZlib(void); void FS_Init_SelfPack(void); void FS_Init(void); void FS_Shutdown(void); void FS_Init_Commands(void); # 375 "../../../quakedef.h" 2 # 1 "../../../common.h" 1 # 42 "../../../common.h" typedef struct sizebuf_s { qboolean allowoverflow; qboolean overflowed; unsigned char *data; int maxsize; int cursize; int readcount; qboolean badread; } sizebuf_t; void SZ_Clear (sizebuf_t *buf); unsigned char *SZ_GetSpace (sizebuf_t *buf, int length); void SZ_Write (sizebuf_t *buf, const unsigned char *data, int length); void SZ_HexDumpToConsole(const sizebuf_t *buf); void Com_HexDumpToConsole(const unsigned char *data, int size); unsigned short CRC_Block(const unsigned char *data, size_t size); unsigned short CRC_Block_CaseInsensitive(const unsigned char *data, size_t size); unsigned char COM_BlockSequenceCRCByteQW(unsigned char *base, int length, int sequence); unsigned Com_BlockChecksum (void *buffer, int length); void Com_BlockFullChecksum (void *buffer, int len, unsigned char *outbuf); void COM_Init_Commands(void); # 91 "../../../common.h" float BuffBigFloat (const unsigned char *buffer); int BuffBigLong (const unsigned char *buffer); short BuffBigShort (const unsigned char *buffer); float BuffLittleFloat (const unsigned char *buffer); int BuffLittleLong (const unsigned char *buffer); short BuffLittleShort (const unsigned char *buffer); void StoreBigLong (unsigned char *buffer, unsigned int i); void StoreBigShort (unsigned char *buffer, unsigned short i); void StoreLittleLong (unsigned char *buffer, unsigned int i); void StoreLittleShort (unsigned char *buffer, unsigned short i); typedef enum protocolversion_e { PROTOCOL_UNKNOWN, PROTOCOL_DARKPLACES7, PROTOCOL_DARKPLACES6, PROTOCOL_DARKPLACES5, PROTOCOL_DARKPLACES4, PROTOCOL_DARKPLACES3, PROTOCOL_DARKPLACES2, PROTOCOL_DARKPLACES1, PROTOCOL_QUAKEDP, PROTOCOL_NEHAHRAMOVIE, PROTOCOL_QUAKE, PROTOCOL_QUAKEWORLD, PROTOCOL_NEHAHRABJP, PROTOCOL_NEHAHRABJP2, PROTOCOL_NEHAHRABJP3 } protocolversion_t; void MSG_InitReadBuffer (sizebuf_t *buf, unsigned char *data, int size); void MSG_WriteChar (sizebuf_t *sb, int c); void MSG_WriteByte (sizebuf_t *sb, int c); void MSG_WriteShort (sizebuf_t *sb, int c); void MSG_WriteLong (sizebuf_t *sb, int c); void MSG_WriteFloat (sizebuf_t *sb, vec_t f); void MSG_WriteString (sizebuf_t *sb, const char *s); void MSG_WriteUnterminatedString (sizebuf_t *sb, const char *s); void MSG_WriteAngle8i (sizebuf_t *sb, vec_t f); void MSG_WriteAngle16i (sizebuf_t *sb, vec_t f); void MSG_WriteAngle32f (sizebuf_t *sb, vec_t f); void MSG_WriteCoord13i (sizebuf_t *sb, vec_t f); void MSG_WriteCoord16i (sizebuf_t *sb, vec_t f); void MSG_WriteCoord32f (sizebuf_t *sb, vec_t f); void MSG_WriteCoord (sizebuf_t *sb, vec_t f, protocolversion_t protocol); void MSG_WriteVector (sizebuf_t *sb, const vec3_t v, protocolversion_t protocol); void MSG_WriteAngle (sizebuf_t *sb, vec_t f, protocolversion_t protocol); void MSG_BeginReading (sizebuf_t *sb); int MSG_ReadLittleShort (sizebuf_t *sb); int MSG_ReadBigShort (sizebuf_t *sb); int MSG_ReadLittleLong (sizebuf_t *sb); int MSG_ReadBigLong (sizebuf_t *sb); float MSG_ReadLittleFloat (sizebuf_t *sb); float MSG_ReadBigFloat (sizebuf_t *sb); char *MSG_ReadString (sizebuf_t *sb, char *string, size_t maxstring); int MSG_ReadBytes (sizebuf_t *sb, int numbytes, unsigned char *out); float MSG_ReadAngle8i (sizebuf_t *sb); float MSG_ReadAngle16i (sizebuf_t *sb); float MSG_ReadAngle32f (sizebuf_t *sb); float MSG_ReadCoord13i (sizebuf_t *sb); float MSG_ReadCoord16i (sizebuf_t *sb); float MSG_ReadCoord32f (sizebuf_t *sb); float MSG_ReadCoord (sizebuf_t *sb, protocolversion_t protocol); void MSG_ReadVector (sizebuf_t *sb, vec3_t v, protocolversion_t protocol); float MSG_ReadAngle (sizebuf_t *sb, protocolversion_t protocol); typedef float (*COM_WordWidthFunc_t) (void *passthrough, const char *w, size_t *length, float maxWidth); typedef int (*COM_LineProcessorFunc) (void *passthrough, const char *line, size_t length, float width, qboolean isContination); int COM_Wordwrap(const char *string, size_t length, float continuationSize, float maxWidth, COM_WordWidthFunc_t wordWidth, void *passthroughCW, COM_LineProcessorFunc processLine, void *passthroughPL); extern char com_token[16384]; int COM_ParseToken_Simple(const char **datapointer, qboolean returnnewline, qboolean parsebackslash, qboolean parsecomments); int COM_ParseToken_QuakeC(const char **datapointer, qboolean returnnewline); int COM_ParseToken_VM_Tokenize(const char **datapointer, qboolean returnnewline); int COM_ParseToken_Console(const char **datapointer); extern int com_argc; extern const char **com_argv; extern int com_selffd; int COM_CheckParm (const char *parm); void COM_Init (void); void COM_Shutdown (void); void COM_InitGameType (void); char *va(char *buf, size_t buflen, const char *format, ...) __attribute__ ((format (printf, 3, 3 +1))); # 234 "../../../common.h" extern int dpsnprintf (char *buffer, size_t buffersize, const char *format, ...) __attribute__ ((format (printf, 3, 3 +1))); extern int dpvsnprintf (char *buffer, size_t buffersize, const char *format, va_list args); # 253 "../../../common.h" extern struct cvar_s registered; extern struct cvar_s cmdline; typedef enum userdirmode_e { USERDIRMODE_NOHOME, USERDIRMODE_HOME, USERDIRMODE_MYGAMES, USERDIRMODE_SAVEDGAMES, USERDIRMODE_COUNT } userdirmode_t; typedef enum gamemode_e { GAME_NORMAL, GAME_HIPNOTIC, GAME_ROGUE, GAME_QUOTH, GAME_NEHAHRA, GAME_NEXUIZ, GAME_XONOTIC, GAME_TRANSFUSION, GAME_GOODVSBAD2, GAME_TEU, GAME_BATTLEMECH, GAME_ZYMOTIC, GAME_SETHERAL, GAME_TENEBRAE, GAME_NEOTERIC, GAME_OPENQUARTZ, GAME_PRYDON, GAME_DELUXEQUAKE, GAME_THEHUNTED, GAME_DEFEATINDETAIL2, GAME_DARSANA, GAME_CONTAGIONTHEORY, GAME_EDU2P, GAME_PROPHECY, GAME_BLOODOMNICIDE, GAME_STEELSTORM, GAME_STEELSTORM2, GAME_SSAMMO, GAME_TOMESOFMEPHISTOPHELES, GAME_STRAPBOMB, GAME_MOONHELM, GAME_VORETOURNAMENT, GAME_COUNT } gamemode_t; extern gamemode_t gamemode; extern const char *gamename; extern const char *gamenetworkfiltername; extern const char *gamedirname1; extern const char *gamedirname2; extern const char *gamescreenshotname; extern const char *gameuserdirname; extern char com_modname[ # 316 "../../../common.h" 3 4 4096 # 316 "../../../common.h" ]; void COM_ChangeGameTypeForGameDirs(void); void COM_ToLowerString (const char *in, char *out, size_t size_out); void COM_ToUpperString (const char *in, char *out, size_t size_out); int COM_StringBeginsWith(const char *s, const char *match); int COM_ReadAndTokenizeLine(const char **text, char **argv, int maxargc, char *tokenbuf, int tokenbufsize, const char *commentprefix); size_t COM_StringLengthNoColors(const char *s, size_t size_s, qboolean *valid); qboolean COM_StringDecolorize(const char *in, size_t size_in, char *out, size_t size_out, qboolean escape_carets); void COM_ToLowerString (const char *in, char *out, size_t size_out); void COM_ToUpperString (const char *in, char *out, size_t size_out); typedef struct stringlist_s { int maxstrings; int numstrings; char **strings; } stringlist_t; int matchpattern(const char *in, const char *pattern, int caseinsensitive); int matchpattern_with_separator(const char *in, const char *pattern, int caseinsensitive, const char *separators, qboolean wildcard_least_one); void stringlistinit(stringlist_t *list); void stringlistfreecontents(stringlist_t *list); void stringlistappend(stringlist_t *list, const char *text); void stringlistsort(stringlist_t *list, qboolean uniq); void listdirectory(stringlist_t *list, const char *basepath, const char *path); char *InfoString_GetValue(const char *buffer, const char *key, char *value, size_t valuelength); void InfoString_SetValue(char *buffer, size_t bufferlength, const char *key, const char *value); void InfoString_Print(char *buffer); # 366 "../../../common.h" size_t strlcat(char *dst, const char *src, size_t siz); # 375 "../../../common.h" size_t strlcpy(char *dst, const char *src, size_t siz); void FindFraction(double val, int *num, int *denom, int denomMax); char **XPM_DecodeString(const char *in); size_t base64_encode(unsigned char *buf, size_t buflen, size_t outbuflen); # 376 "../../../quakedef.h" 2 # 1 "../../../cvar.h" 1 # 113 "../../../cvar.h" typedef struct cvar_s { int flags; const char *name; const char *string; const char *description; int integer; float value; float vector[3]; const char *defstring; qboolean initstate; int initflags; const char *initstring; const char *initdescription; int initinteger; float initvalue; float initvector[3]; const char *initdefstring; unsigned int globaldefindex_progid[3]; int globaldefindex[3]; int globaldefindex_stringno[3]; struct cvar_s *next; struct cvar_s *nextonhashchain; } cvar_t; # 157 "../../../cvar.h" void Cvar_RegisterVariable (cvar_t *variable); void Cvar_Set (const char *var_name, const char *value); void Cvar_SetValue (const char *var_name, float value); void Cvar_SetQuick (cvar_t *var, const char *value); void Cvar_SetValueQuick (cvar_t *var, float value); float Cvar_VariableValueOr (const char *var_name, float def); float Cvar_VariableValue (const char *var_name); const char *Cvar_VariableStringOr (const char *var_name, const char *def); const char *Cvar_VariableString (const char *var_name); const char *Cvar_VariableDefString (const char *var_name); const char *Cvar_VariableDescription (const char *var_name); const char *Cvar_CompleteVariable (const char *partial); void Cvar_CompleteCvarPrint (const char *partial); qboolean Cvar_Command (void); void Cvar_SaveInitState(void); void Cvar_RestoreInitState(void); void Cvar_UnlockDefaults (void); void Cvar_LockDefaults_f (void); void Cvar_ResetToDefaults_All_f (void); void Cvar_ResetToDefaults_NoSaveOnly_f (void); void Cvar_ResetToDefaults_SaveOnly_f (void); void Cvar_WriteVariables (qfile_t *f); cvar_t *Cvar_FindVar (const char *var_name); cvar_t *Cvar_FindVarAfter (const char *prev_var_name, int neededflags); int Cvar_CompleteCountPossible (const char *partial); const char **Cvar_CompleteBuildList (const char *partial); # 223 "../../../cvar.h" void Cvar_List_f (void); void Cvar_Set_f (void); void Cvar_SetA_f (void); void Cvar_Del_f (void); cvar_t *Cvar_Get (const char *name, const char *value, int flags, const char *newdescription); extern const char *cvar_dummy_description; extern cvar_t *cvar_vars; void Cvar_UpdateAllAutoCvars(void); # 377 "../../../quakedef.h" 2 # 1 "../../../bspfile.h" 1 # 29 "../../../bspfile.h" typedef struct lump_s { int fileofs, filelen; } lump_t; # 51 "../../../bspfile.h" typedef struct hullinfo_s { int filehulls; float hullsizes[16][2][3]; } hullinfo_t; typedef struct mmodel_s { float mins[3], maxs[3]; float origin[3]; int headnode[16]; int visleafs; int firstface, numfaces; } mmodel_t; # 378 "../../../quakedef.h" 2 # 1 "../../../sys.h" 1 # 25 "../../../sys.h" extern cvar_t sys_usenoclockbutbenchmark; # 38 "../../../sys.h" typedef void* dllhandle_t; typedef struct dllfunction_s { const char *name; void **funcvariable; } dllfunction_t; qboolean Sys_LoadLibrary (const char** dllnames, dllhandle_t* handle, const dllfunction_t *fcts) __attribute__ ((__warning__ ("in Debian, please link shared libraries at build time"))); void Sys_UnloadLibrary (dllhandle_t* handle); void* Sys_GetProcAddress (dllhandle_t handle, const char* name); void Sys_InitConsole (void); void Sys_Init_Commands (void); char *Sys_TimeString(const char *timeformat); void Sys_Error (const char *error, ...) __attribute__ ((format (printf, 1, 1 +1))) __attribute__ ((noreturn)); void Sys_PrintToTerminal(const char *text); void Sys_PrintfToTerminal(const char *fmt, ...); void Sys_Shutdown (void); void Sys_Quit (int returnvalue); # 89 "../../../sys.h" void Sys_AllowProfiling (qboolean enable); typedef struct sys_cleantime_s { double dirtytime; double cleantime; } sys_cleantime_t; double Sys_DirtyTime(void); void Sys_ProvideSelfFD (void); char *Sys_ConsoleInput (void); void Sys_Sleep(int microseconds); void Sys_SendKeyEvents (void); char *Sys_GetClipboardData (void); extern qboolean sys_supportsdlgetticks; unsigned int Sys_SDL_GetTicks (void); void Sys_SDL_Delay (unsigned int milliseconds); void Sys_InitProcessNice (void); void Sys_MakeProcessNice (void); void Sys_MakeProcessMean (void); # 379 "../../../quakedef.h" 2 # 1 "../../../vid.h" 1 # 27 "../../../vid.h" extern int cl_available; typedef enum renderpath_e { RENDERPATH_GL11, RENDERPATH_GL13, RENDERPATH_GL20, RENDERPATH_D3D9, RENDERPATH_D3D10, RENDERPATH_D3D11, RENDERPATH_SOFT, RENDERPATH_GLES1, RENDERPATH_GLES2 } renderpath_t; typedef struct viddef_support_s { qboolean gl20shaders; qboolean gl20shaders130; int glshaderversion; qboolean amd_texture_texture4; qboolean arb_depth_texture; qboolean arb_draw_buffers; qboolean arb_framebuffer_object; qboolean arb_multitexture; qboolean arb_occlusion_query; qboolean arb_query_buffer_object; qboolean arb_shadow; qboolean arb_texture_compression; qboolean arb_texture_cube_map; qboolean arb_texture_env_combine; qboolean arb_texture_gather; qboolean arb_texture_non_power_of_two; qboolean arb_vertex_buffer_object; qboolean arb_uniform_buffer_object; qboolean ati_separate_stencil; qboolean ext_blend_minmax; qboolean ext_blend_subtract; qboolean ext_blend_func_separate; qboolean ext_draw_range_elements; qboolean ext_framebuffer_object; qboolean ext_packed_depth_stencil; qboolean ext_stencil_two_side; qboolean ext_texture_3d; qboolean ext_texture_compression_s3tc; qboolean ext_texture_edge_clamp; qboolean ext_texture_filter_anisotropic; qboolean ext_texture_srgb; qboolean arb_multisample; } viddef_support_t; typedef struct viddef_mode_s { int width; int height; int bitsperpixel; qboolean fullscreen; float refreshrate; qboolean userefreshrate; qboolean stereobuffer; int samples; } viddef_mode_t; typedef struct viddef_s { viddef_mode_t mode; int width; int height; int bitsperpixel; qboolean fullscreen; float refreshrate; qboolean userefreshrate; qboolean stereobuffer; int samples; qboolean stencil; qboolean sRGB2D; qboolean sRGB3D; qboolean sRGBcapable2D; qboolean sRGBcapable3D; renderpath_t renderpath; qboolean forcevbo; qboolean useinterleavedarrays; qboolean allowalphatocoverage; unsigned int texunits; unsigned int teximageunits; unsigned int texarrayunits; unsigned int drawrangeelements_maxvertices; unsigned int drawrangeelements_maxindices; unsigned int maxtexturesize_2d; unsigned int maxtexturesize_3d; unsigned int maxtexturesize_cubemap; unsigned int max_anisotropy; unsigned int maxdrawbuffers; viddef_support_t support; unsigned int *softpixels; unsigned int *softdepthpixels; int forcetextype; } viddef_t; extern viddef_t vid; extern void (*vid_menudrawfn)(void); extern void (*vid_menukeyfn)(int key); typedef struct vid_joystate_s { float axis[16]; unsigned char button[36]; qboolean is360; } vid_joystate_t; extern vid_joystate_t vid_joystate; extern cvar_t joy_index; extern cvar_t joy_enable; extern cvar_t joy_detected; extern cvar_t joy_active; float VID_JoyState_GetAxis(const vid_joystate_t *joystate, int axis, float sensitivity, float deadzone); void VID_ApplyJoyState(vid_joystate_t *joystate); void VID_BuildJoyState(vid_joystate_t *joystate); void VID_Shared_BuildJoyState_Begin(vid_joystate_t *joystate); void VID_Shared_BuildJoyState_Finish(vid_joystate_t *joystate); int VID_Shared_SetJoystick(int index); qboolean VID_JoyBlockEmulatedKeys(int keycode); void VID_EnableJoystick(qboolean enable); extern qboolean vid_hidden; extern qboolean vid_activewindow; extern cvar_t vid_hardwaregammasupported; extern qboolean vid_usinghwgamma; extern qboolean vid_supportrefreshrate; extern cvar_t vid_soft; extern cvar_t vid_soft_threads; extern cvar_t vid_soft_interlace; extern cvar_t vid_fullscreen; extern cvar_t vid_width; extern cvar_t vid_height; extern cvar_t vid_bitsperpixel; extern cvar_t vid_samples; extern cvar_t vid_refreshrate; extern cvar_t vid_userefreshrate; extern cvar_t vid_touchscreen_density; extern cvar_t vid_touchscreen_xdpi; extern cvar_t vid_touchscreen_ydpi; extern cvar_t vid_vsync; extern cvar_t vid_mouse; extern cvar_t vid_grabkeyboard; extern cvar_t vid_touchscreen; extern cvar_t vid_touchscreen_showkeyboard; extern cvar_t vid_touchscreen_supportshowkeyboard; extern cvar_t vid_stick_mouse; extern cvar_t vid_resizable; extern cvar_t vid_desktopfullscreen; extern cvar_t vid_minwidth; extern cvar_t vid_minheight; extern cvar_t vid_sRGB; extern cvar_t vid_sRGB_fallback; extern cvar_t gl_finish; extern cvar_t v_gamma; extern cvar_t v_contrast; extern cvar_t v_brightness; extern cvar_t v_color_enable; extern cvar_t v_color_black_r; extern cvar_t v_color_black_g; extern cvar_t v_color_black_b; extern cvar_t v_color_grey_r; extern cvar_t v_color_grey_g; extern cvar_t v_color_grey_b; extern cvar_t v_color_white_r; extern cvar_t v_color_white_g; extern cvar_t v_color_white_b; extern cvar_t v_hwgamma; extern const char *gl_vendor; extern const char *gl_renderer; extern const char *gl_version; extern const char *gl_extensions; extern const char *gl_platform; extern const char *gl_platformextensions; extern char gl_driver[256]; void *GL_GetProcAddress(const char *name); qboolean GL_CheckExtension(const char *minglver_or_ext, const dllfunction_t *funcs, const char *disableparm, int silent); void VID_Shared_Init(void); void GL_Init (void); void VID_ClearExtensions(void); void VID_CheckExtensions(void); void VID_Init (void); void VID_Shutdown (void); int VID_SetMode (int modenum); qboolean VID_InitMode(viddef_mode_t *mode); int VID_SetGamma(unsigned short *ramps, int rampsize); int VID_GetGamma(unsigned short *ramps, int rampsize); void VID_UpdateGamma(qboolean force, int rampsize); void VID_RestoreSystemGamma(void); qboolean VID_HasScreenKeyboardSupport(void); void VID_ShowKeyboard(qboolean show); qboolean VID_ShowingKeyboard(void); void VID_SetMouse (qboolean fullscreengrab, qboolean relative, qboolean hidecursor); void VID_Finish (void); void VID_Restart_f(void); void VID_Start(void); void VID_Stop(void); extern unsigned int vid_gammatables_serial; extern qboolean vid_gammatables_trivial; void VID_BuildGammaTables(unsigned short *ramps, int rampsize); typedef struct { int width, height, bpp, refreshrate; int pixelheight_num, pixelheight_denom; } vid_mode_t; vid_mode_t *VID_GetDesktopMode(void); size_t VID_ListModes(vid_mode_t *modes, size_t maxcount); size_t VID_SortModes(vid_mode_t *modes, size_t count, qboolean usebpp, qboolean userefreshrate, qboolean useaspect); void VID_Soft_SharedSetup(void); # 380 "../../../quakedef.h" 2 # 1 "../../../mathlib.h" 1 # 31 "../../../mathlib.h" struct mplane_s; extern vec3_t vec3_origin; # 80 "../../../mathlib.h" unsigned int CeilPowerOf2(unsigned int value); # 235 "../../../mathlib.h" vec_t Length (vec3_t v); float VectorNormalizeLength (vec3_t v); float VectorNormalizeLength2 (vec3_t v, vec3_t dest); extern float m_bytenormals[162][3]; unsigned char NormalToByte(const vec3_t n); void ByteToNormal(unsigned char num, vec3_t n); void R_ConcatRotations (const float in1[3*3], const float in2[3*3], float out[3*3]); void R_ConcatTransforms (const float in1[3*4], const float in2[3*4], float out[3*4]); void AngleVectors (const vec3_t angles, vec3_t forward, vec3_t right, vec3_t up); void AngleVectorsFLU (const vec3_t angles, vec3_t forward, vec3_t left, vec3_t up); void AngleMatrix (const vec3_t angles, const vec3_t translate, vec_t matrix[][4]); void AnglesFromVectors (vec3_t angles, const vec3_t forward, const vec3_t up, qboolean flippitch); void VectorVectors(const vec3_t forward, vec3_t right, vec3_t up); void VectorVectorsDouble(const double *forward, double *right, double *up); void PlaneClassify(struct mplane_s *p); int BoxOnPlaneSide(const vec3_t emins, const vec3_t emaxs, const struct mplane_s *p); int BoxOnPlaneSide_Separate(const vec3_t emins, const vec3_t emaxs, const vec3_t normal, const vec_t dist); void BoxPlaneCorners(const vec3_t emins, const vec3_t emaxs, const struct mplane_s *p, vec3_t outnear, vec3_t outfar); void BoxPlaneCorners_Separate(const vec3_t emins, const vec3_t emaxs, const vec3_t normal, vec3_t outnear, vec3_t outfar); void BoxPlaneCornerDistances(const vec3_t emins, const vec3_t emaxs, const struct mplane_s *p, vec_t *outnear, vec_t *outfar); void BoxPlaneCornerDistances_Separate(const vec3_t emins, const vec3_t emaxs, const vec3_t normal, vec_t *outnear, vec_t *outfar); typedef struct tinyplane_s { float normal[3], dist; } tinyplane_t; typedef struct tinydoubleplane_s { double normal[3], dist; } tinydoubleplane_t; void RotatePointAroundVector(vec3_t dst, const vec3_t dir, const vec3_t point, float degrees); float RadiusFromBounds (const vec3_t mins, const vec3_t maxs); float RadiusFromBoundsAndOrigin (const vec3_t mins, const vec3_t maxs, const vec3_t origin); struct matrix4x4_s; void Matrix4x4_Print(const struct matrix4x4_s *in); int Math_atov(const char *s, prvm_vec3_t out); void BoxFromPoints(vec3_t mins, vec3_t maxs, int numpoints, vec_t *point3f); int LoopingFrameNumberFromDouble(double t, int loopframes); void Mathlib_Init(void); # 381 "../../../quakedef.h" 2 # 1 "../../../r_textures.h" 1 # 40 "../../../r_textures.h" typedef enum textype_e { TEXTYPE_PALETTE, TEXTYPE_RGBA, TEXTYPE_BGRA, TEXTYPE_ALPHA, TEXTYPE_DXT1, TEXTYPE_DXT1A, TEXTYPE_DXT3, TEXTYPE_DXT5, TEXTYPE_ETC1, TEXTYPE_SRGB_PALETTE, TEXTYPE_SRGB_RGBA, TEXTYPE_SRGB_BGRA, TEXTYPE_SRGB_DXT1, TEXTYPE_SRGB_DXT1A, TEXTYPE_SRGB_DXT3, TEXTYPE_SRGB_DXT5, TEXTYPE_COLORBUFFER, TEXTYPE_COLORBUFFER16F, TEXTYPE_COLORBUFFER32F, TEXTYPE_DEPTHBUFFER16, TEXTYPE_DEPTHBUFFER24, TEXTYPE_DEPTHBUFFER24STENCIL8, TEXTYPE_SHADOWMAP16_COMP, TEXTYPE_SHADOWMAP16_RAW, TEXTYPE_SHADOWMAP24_COMP, TEXTYPE_SHADOWMAP24_RAW, } textype_t; # 111 "../../../r_textures.h" typedef struct rtexture_s { int texnum; int renderbuffernum; qboolean dirty; qboolean glisdepthstencil; int gltexturetypeenum; void *d3dtexture; void *d3dsurface; # 138 "../../../r_textures.h" } rtexture_t; typedef struct rtexturepool_s { int useless; } rtexturepool_t; typedef void (*updatecallback_t)(rtexture_t *rt, void *data); rtexturepool_t *R_AllocTexturePool(void); void R_FreeTexturePool(rtexturepool_t **rtexturepool); extern cvar_t gl_texturecompression; extern cvar_t gl_texturecompression_color; extern cvar_t gl_texturecompression_normal; extern cvar_t gl_texturecompression_gloss; extern cvar_t gl_texturecompression_glow; extern cvar_t gl_texturecompression_2d; extern cvar_t gl_texturecompression_q3bsplightmaps; extern cvar_t gl_texturecompression_q3bspdeluxemaps; extern cvar_t gl_texturecompression_sky; extern cvar_t gl_texturecompression_lightcubemaps; extern cvar_t gl_texturecompression_reflectmask; extern cvar_t r_texture_dds_load; extern cvar_t r_texture_dds_save; rtexture_t *R_LoadTexture2D(rtexturepool_t *rtexturepool, const char *identifier, int width, int height, const unsigned char *data, textype_t textype, int flags, int miplevel, const unsigned int *palette); rtexture_t *R_LoadTexture3D(rtexturepool_t *rtexturepool, const char *identifier, int width, int height, int depth, const unsigned char *data, textype_t textype, int flags, int miplevel, const unsigned int *palette); rtexture_t *R_LoadTextureCubeMap(rtexturepool_t *rtexturepool, const char *identifier, int width, const unsigned char *data, textype_t textype, int flags, int miplevel, const unsigned int *palette); rtexture_t *R_LoadTextureShadowMap2D(rtexturepool_t *rtexturepool, const char *identifier, int width, int height, textype_t textype, qboolean filter); rtexture_t *R_LoadTextureRenderBuffer(rtexturepool_t *rtexturepool, const char *identifier, int width, int height, textype_t textype); rtexture_t *R_LoadTextureDDSFile(rtexturepool_t *rtexturepool, const char *filename, qboolean srgb, int flags, qboolean *hasalphaflag, float *avgcolor, int miplevel, qboolean optionaltexture); int R_SaveTextureDDSFile(rtexture_t *rt, const char *filename, qboolean skipuncompressed, qboolean hasalpha); void R_FreeTexture(rtexture_t *rt); void R_UpdateTexture(rtexture_t *rt, const unsigned char *data, int x, int y, int z, int width, int height, int depth); int R_RealGetTexture (rtexture_t *rt); int R_TextureWidth(rtexture_t *rt); int R_TextureHeight(rtexture_t *rt); int R_TextureFlags(rtexture_t *rt); void R_PurgeTexture(rtexture_t *prt); void R_Textures_Frame(void); void R_MarkDirtyTexture(rtexture_t *rt); void R_MakeTextureDynamic(rtexture_t *rt, updatecallback_t updatecallback, void *data); void R_ClearTexture (rtexture_t *rt); int R_PicmipForFlags(int flags); void R_TextureStats_Print(qboolean printeach, qboolean printpool, qboolean printtotal); # 383 "../../../quakedef.h" 2 # 1 "../../../crypto.h" 1 extern cvar_t crypto_developer; extern cvar_t crypto_aeslevel; extern int crypto_keyfp_recommended_length; # 1 "../../../lhnet.h" 1 typedef enum lhnetaddresstype_e { LHNETADDRESSTYPE_NONE, LHNETADDRESSTYPE_LOOP, LHNETADDRESSTYPE_INET4, LHNETADDRESSTYPE_INET6 } lhnetaddresstype_t; typedef struct lhnetaddress_s { lhnetaddresstype_t addresstype; int port; unsigned char storage[256]; } lhnetaddress_t; int LHNETADDRESS_FromPort(lhnetaddress_t *address, lhnetaddresstype_t addresstype, int port); int LHNETADDRESS_FromString(lhnetaddress_t *address, const char *string, int defaultport); int LHNETADDRESS_ToString(const lhnetaddress_t *address, char *string, int stringbuffersize, int includeport); int LHNETADDRESS_GetAddressType(const lhnetaddress_t *address); const char *LHNETADDRESS_GetInterfaceName(const lhnetaddress_t *address, char *ifname, size_t ifnamelength); int LHNETADDRESS_GetPort(const lhnetaddress_t *address); int LHNETADDRESS_SetPort(lhnetaddress_t *address, int port); int LHNETADDRESS_Compare(const lhnetaddress_t *address1, const lhnetaddress_t *address2); typedef struct lhnetsocket_s { lhnetaddress_t address; int inetsocket; struct lhnetsocket_s *next, *prev; } lhnetsocket_t; void LHNET_Init(void); void LHNET_Shutdown(void); int LHNET_DefaultDSCP(int dscp); void LHNET_SleepUntilPacket_Microseconds(int microseconds); lhnetsocket_t *LHNET_OpenSocket_Connectionless(lhnetaddress_t *address); void LHNET_CloseSocket(lhnetsocket_t *lhnetsocket); lhnetaddress_t *LHNET_AddressFromSocket(lhnetsocket_t *sock); int LHNET_Read(lhnetsocket_t *lhnetsocket, void *content, int maxcontentlength, lhnetaddress_t *address); int LHNET_Write(lhnetsocket_t *lhnetsocket, const void *content, int contentlength, const lhnetaddress_t *address); # 15 "../../../crypto.h" 2 typedef struct { unsigned char dhkey[16]; char client_idfp[44 +1]; char client_keyfp[44 +1]; qboolean client_issigned; char server_idfp[44 +1]; char server_keyfp[44 +1]; qboolean server_issigned; qboolean authenticated; qboolean use_aes; void *data; } crypto_t; void Crypto_Init(void); void Crypto_Init_Commands(void); void Crypto_LoadKeys(void); void Crypto_Shutdown(void); qboolean Crypto_Available(void); void sha256(unsigned char *out, const unsigned char *in, int n); const void *Crypto_EncryptPacket(crypto_t *crypto, const void *data_src, size_t len_src, void *data_dst, size_t *len_dst, size_t len); const void *Crypto_DecryptPacket(crypto_t *crypto, const void *data_src, size_t len_src, void *data_dst, size_t *len_dst, size_t len); int Crypto_ClientParsePacket(const char *data_in, size_t len_in, char *data_out, size_t *len_out, lhnetaddress_t *peeraddress); int Crypto_ServerParsePacket(const char *data_in, size_t len_in, char *data_out, size_t *len_out, lhnetaddress_t *peeraddress); qboolean Crypto_ServerAppendToChallenge(const char *data_in, size_t len_in, char *data_out, size_t *len_out, size_t maxlen); crypto_t *Crypto_ServerGetInstance(lhnetaddress_t *peeraddress); qboolean Crypto_FinishInstance(crypto_t *out, crypto_t *in); const char *Crypto_GetInfoResponseDataString(void); qboolean Crypto_RetrieveHostKey(lhnetaddress_t *peeraddress, int *keyid, char *keyfp, size_t keyfplen, char *idfp, size_t idfplen, int *aeslevel, qboolean *issigned); int Crypto_RetrieveLocalKey(int keyid, char *keyfp, size_t keyfplen, char *idfp, size_t idfplen, qboolean *issigned); size_t Crypto_SignData(const void *data, size_t datasize, int keyid, void *signed_data, size_t signed_size); size_t Crypto_SignDataDetached(const void *data, size_t datasize, int keyid, void *signed_data, size_t signed_size); # 385 "../../../quakedef.h" 2 # 1 "../../../draw.h" 1 # 28 "../../../draw.h" typedef struct cachepic_s { int width, height; int autoload; int texflags; int lastusedframe; rtexture_t *tex; struct cachepic_s *chain; unsigned int flags; qboolean hasalpha; char name[128]; qboolean allow_free_tex; } cachepic_t; typedef enum cachepicflags_e { CACHEPICFLAG_NOTPERSISTENT = 1, CACHEPICFLAG_QUIET = 2, CACHEPICFLAG_NOCOMPRESSION = 4, CACHEPICFLAG_NOCLAMP = 8, CACHEPICFLAG_NEWPIC = 16, CACHEPICFLAG_MIPMAP = 32, CACHEPICFLAG_NEAREST = 64 } cachepicflags_t; void Draw_Init (void); void Draw_Frame (void); cachepic_t *Draw_CachePic_Flags (const char *path, unsigned int cachepicflags); cachepic_t *Draw_CachePic (const char *path); cachepic_t *Draw_NewPic(const char *picname, int width, int height, int alpha, unsigned char *pixels); void Draw_FreePic(const char *picname); typedef struct drawqueuemesh_s { rtexture_t *texture; int num_triangles; int num_vertices; int *data_element3i; unsigned short *data_element3s; float *data_vertex3f; float *data_texcoord2f; float *data_color4f; } drawqueuemesh_t; enum drawqueue_drawflag_e { DRAWFLAG_NORMAL, DRAWFLAG_ADDITIVE, DRAWFLAG_MODULATE, DRAWFLAG_2XMODULATE, DRAWFLAG_SCREEN, DRAWFLAG_NUMFLAGS, DRAWFLAG_MASK = 0xFF, DRAWFLAG_MIPMAP = 0x100, DRAWFLAG_NOGAMMA = 0x200 }; typedef struct ft2_settings_s { float scale, voffset; int antialias, hinting; float outline, blur, shadowx, shadowy, shadowz; } ft2_settings_t; typedef struct dp_font_s { rtexture_t *tex; float width_of[256]; float maxwidth; char texpath[128]; char title[128]; int req_face; float req_sizes[16]; char fallbacks[3][128]; int fallback_faces[3]; struct ft2_font_s *ft2; ft2_settings_t settings; } dp_font_t; typedef struct dp_fonts_s { dp_font_t *f; int maxsize; } dp_fonts_t; extern dp_fonts_t dp_fonts; # 163 "../../../draw.h" void DrawQ_Pic(float x, float y, cachepic_t *pic, float width, float height, float red, float green, float blue, float alpha, int flags); void DrawQ_RotPic(float x, float y, cachepic_t *pic, float width, float height, float org_x, float org_y, float angle, float red, float green, float blue, float alpha, int flags); void DrawQ_Fill(float x, float y, float width, float height, float red, float green, float blue, float alpha, int flags); extern float DrawQ_Color[4]; float DrawQ_String(float x, float y, const char *text, size_t maxlen, float scalex, float scaley, float basered, float basegreen, float baseblue, float basealpha, int flags, int *outcolor, qboolean ignorecolorcodes, const dp_font_t *fnt); float DrawQ_String_Scale(float x, float y, const char *text, size_t maxlen, float sizex, float sizey, float scalex, float scaley, float basered, float basegreen, float baseblue, float basealpha, int flags, int *outcolor, qboolean ignorecolorcodes, const dp_font_t *fnt); float DrawQ_TextWidth(const char *text, size_t maxlen, float w, float h, qboolean ignorecolorcodes, const dp_font_t *fnt); float DrawQ_TextWidth_UntilWidth(const char *text, size_t *maxlen, float w, float h, qboolean ignorecolorcodes, const dp_font_t *fnt, float maxWidth); float DrawQ_TextWidth_UntilWidth_TrackColors(const char *text, size_t *maxlen, float w, float h, int *outcolor, qboolean ignorecolorcodes, const dp_font_t *fnt, float maxwidth); float DrawQ_TextWidth_UntilWidth_TrackColors_Scale(const char *text, size_t *maxlen, float w, float h, float sw, float sh, int *outcolor, qboolean ignorecolorcodes, const dp_font_t *fnt, float maxwidth); void DrawQ_SuperPic(float x, float y, cachepic_t *pic, float width, float height, float s1, float t1, float r1, float g1, float b1, float a1, float s2, float t2, float r2, float g2, float b2, float a2, float s3, float t3, float r3, float g3, float b3, float a3, float s4, float t4, float r4, float g4, float b4, float a4, int flags); void DrawQ_Mesh(drawqueuemesh_t *mesh, int flags, qboolean hasalpha); void DrawQ_SetClipArea(float x, float y, float width, float height); void DrawQ_ResetClipArea(void); void DrawQ_Line(float width, float x1, float y1, float x2, float y2, float r, float g, float b, float alpha, int flags); void DrawQ_Lines(float width, int numlines, int flags, qboolean hasalpha); void DrawQ_LineLoop(drawqueuemesh_t *mesh, int flags); void DrawQ_Finish(void); void DrawQ_ProcessDrawFlag(int flags, qboolean alpha); void DrawQ_RecalcView(void); rtexture_t *Draw_GetPicTexture(cachepic_t *pic); void R_DrawGamma(void); extern rtexturepool_t *drawtexturepool; # 386 "../../../quakedef.h" 2 # 1 "../../../screen.h" 1 # 25 "../../../screen.h" void CL_Screen_Init (void); void CL_UpdateScreen (void); void SCR_CenterPrint(const char *str); void SCR_BeginLoadingPlaque (qboolean startup); void SCR_UpdateLoadingScreen(qboolean clear, qboolean startup); void SCR_UpdateLoadingScreenIfShown(void); void SCR_PushLoadingScreen (qboolean redraw, const char *msg, float len_in_parent); void SCR_PopLoadingScreen (qboolean redraw); void SCR_ClearLoadingScreen (qboolean redraw); extern float scr_con_current; extern int sb_lines; extern cvar_t scr_viewsize; extern cvar_t scr_fov; extern cvar_t showfps; extern cvar_t showtime; extern cvar_t showdate; extern cvar_t crosshair; extern cvar_t crosshair_size; extern cvar_t scr_conalpha; extern cvar_t scr_conalphafactor; extern cvar_t scr_conalpha2factor; extern cvar_t scr_conalpha3factor; extern cvar_t scr_conscroll_x; extern cvar_t scr_conscroll_y; extern cvar_t scr_conscroll2_x; extern cvar_t scr_conscroll2_y; extern cvar_t scr_conscroll3_x; extern cvar_t scr_conscroll3_y; extern cvar_t scr_conbrightness; extern cvar_t r_letterbox; extern cvar_t scr_refresh; extern cvar_t scr_stipple; extern cvar_t r_stereo_separation; extern cvar_t r_stereo_angle; qboolean R_Stereo_Active(void); extern int r_stereo_side; typedef struct scr_touchscreenarea_s { const char *pic; const char *text; float rect[4]; float textheight; float active; float activealpha; float inactivealpha; } scr_touchscreenarea_t; extern int scr_numtouchscreenareas; extern scr_touchscreenarea_t scr_touchscreenareas[128]; # 387 "../../../quakedef.h" 2 # 1 "../../../netconn.h" 1 # 127 "../../../netconn.h" typedef struct netgraphitem_s { double time; int reliablebytes; int unreliablebytes; int ackbytes; double cleartime; } netgraphitem_t; typedef struct netconn_s { struct netconn_s *next; lhnetsocket_t *mysocket; lhnetaddress_t peeraddress; double connecttime; double timeout; double lastMessageTime; double lastSendTime; sizebuf_t message; unsigned char messagedata[65536]; int sendMessageLength; unsigned char sendMessage[65536]; int receiveMessageLength; unsigned char receiveMessage[65536]; unsigned int outgoing_unreliable_sequence; struct netconn_nq_s { unsigned int ackSequence; unsigned int sendSequence; unsigned int receiveSequence; unsigned int unreliableReceiveSequence; } nq; struct netconn_qw_s { qboolean fatal_error; float last_received; float frame_latency; float frame_rate; int drop_count; int good_count; int qport; unsigned int incoming_sequence; unsigned int incoming_acknowledged; qboolean incoming_reliable_acknowledged; qboolean incoming_reliable_sequence; qboolean reliable_sequence; unsigned int last_reliable_sequence; } qw; double cleartime; double incoming_cleartime; int incoming_packetcounter; netgraphitem_t incoming_netgraph[256]; int outgoing_packetcounter; netgraphitem_t outgoing_netgraph[256]; char address[128]; crypto_t crypto; int packetsSent; int packetsReSent; int packetsReceived; int receivedDuplicateCount; int droppedDatagrams; int unreliableMessagesSent; int unreliableMessagesReceived; int reliableMessagesSent; int reliableMessagesReceived; } netconn_t; extern netconn_t *netconn_list; extern mempool_t *netconn_mempool; extern cvar_t hostname; extern cvar_t developer_networking; typedef enum serverlist_maskop_e { SLMO_CONTAINS, SLMO_NOTCONTAIN, SLMO_LESSEQUAL, SLMO_LESS, SLMO_EQUAL, SLMO_GREATER, SLMO_GREATEREQUAL, SLMO_NOTEQUAL, SLMO_STARTSWITH, SLMO_NOTSTARTSWITH } serverlist_maskop_t; typedef struct serverlist_info_s { char cname[128]; int ping; char game[32]; char mod[32]; char map[32]; char name[128]; char qcstatus[128]; char players[1400]; int maxplayers; int numplayers; int numbots; int numhumans; int freeslots; int protocol; int gameversion; int category; qboolean isfavorite; } serverlist_info_t; typedef enum { SLIF_CNAME, SLIF_PING, SLIF_GAME, SLIF_MOD, SLIF_MAP, SLIF_NAME, SLIF_MAXPLAYERS, SLIF_NUMPLAYERS, SLIF_PROTOCOL, SLIF_NUMBOTS, SLIF_NUMHUMANS, SLIF_FREESLOTS, SLIF_QCSTATUS, SLIF_PLAYERS, SLIF_CATEGORY, SLIF_ISFAVORITE, SLIF_COUNT } serverlist_infofield_t; typedef enum { SLSF_DESCENDING = 1, SLSF_FAVORITES = 2, SLSF_CATEGORIES = 4 } serverlist_sortflags_t; typedef enum { SQS_NONE = 0, SQS_QUERYING, SQS_QUERIED, SQS_TIMEDOUT, SQS_REFRESHING } serverlist_query_state; typedef struct serverlist_entry_s { serverlist_query_state query; unsigned querycounter; double querytime; int protocol; serverlist_info_t info; char line1[128]; char line2[128]; } serverlist_entry_t; typedef struct serverlist_mask_s { qboolean active; serverlist_maskop_t tests[SLIF_COUNT]; serverlist_info_t info; } serverlist_mask_t; extern serverlist_mask_t serverlist_andmasks[16]; extern serverlist_mask_t serverlist_ormasks[16]; extern serverlist_infofield_t serverlist_sortbyfield; extern int serverlist_sortflags; extern int serverlist_viewcount; extern unsigned short serverlist_viewlist[2048]; extern int serverlist_cachecount; extern serverlist_entry_t *serverlist_cache; extern const serverlist_entry_t *serverlist_callbackentry; extern qboolean serverlist_consoleoutput; void ServerList_GetPlayerStatistics(int *numplayerspointer, int *maxplayerspointer); # 401 "../../../netconn.h" extern char cl_net_extresponse[16][1400]; extern int cl_net_extresponse_count; extern int cl_net_extresponse_last; extern char sv_net_extresponse[16][1400]; extern int sv_net_extresponse_count; extern int sv_net_extresponse_last; extern double masterquerytime; extern int masterquerycount; extern int masterreplycount; extern int serverquerycount; extern int serverreplycount; extern sizebuf_t cl_message; extern sizebuf_t sv_message; extern char cl_readstring[16384]; extern char sv_readstring[16384]; extern cvar_t sv_public; extern cvar_t cl_netlocalping; extern cvar_t cl_netport; extern cvar_t sv_netport; extern cvar_t net_address; extern cvar_t net_address_ipv6; extern cvar_t net_usesizelimit; extern cvar_t net_burstreserve; qboolean NetConn_CanSend(netconn_t *conn); int NetConn_SendUnreliableMessage(netconn_t *conn, sizebuf_t *data, protocolversion_t protocol, int rate, int burstsize, qboolean quakesignon_suppressreliables); qboolean NetConn_HaveClientPorts(void); qboolean NetConn_HaveServerPorts(void); void NetConn_CloseClientPorts(void); void NetConn_OpenClientPorts(void); void NetConn_CloseServerPorts(void); void NetConn_OpenServerPorts(int opennetports); void NetConn_UpdateSockets(void); lhnetsocket_t *NetConn_ChooseClientSocketForAddress(lhnetaddress_t *address); lhnetsocket_t *NetConn_ChooseServerSocketForAddress(lhnetaddress_t *address); void NetConn_Init(void); void NetConn_Shutdown(void); netconn_t *NetConn_Open(lhnetsocket_t *mysocket, lhnetaddress_t *peeraddress); void NetConn_Close(netconn_t *conn); void NetConn_Listen(qboolean state); int NetConn_Read(lhnetsocket_t *mysocket, void *data, int maxlength, lhnetaddress_t *peeraddress); int NetConn_Write(lhnetsocket_t *mysocket, const void *data, int length, const lhnetaddress_t *peeraddress); int NetConn_WriteString(lhnetsocket_t *mysocket, const char *string, const lhnetaddress_t *peeraddress); int NetConn_IsLocalGame(void); void NetConn_ClientFrame(void); void NetConn_ServerFrame(void); void NetConn_SleepMicroseconds(int microseconds); void NetConn_Heartbeat(int priority); void Net_Stats_f(void); void NetConn_QueryMasters(qboolean querydp, qboolean queryqw); void NetConn_QueryQueueFrame(void); void Net_Slist_f(void); void Net_SlistQW_f(void); void Net_Refresh_f(void); void ServerList_RebuildViewList(void); void ServerList_ResetMasks(void); void ServerList_QueryList(qboolean resetcache, qboolean querydp, qboolean queryqw, qboolean consoleoutput); void NetConn_UpdateFavorites(void); typedef struct challenge_s { lhnetaddress_t address; double time; char string[12]; } challenge_t; extern challenge_t challenge[128]; # 388 "../../../quakedef.h" 2 # 1 "../../../protocol.h" 1 # 27 "../../../protocol.h" protocolversion_t Protocol_EnumForName(const char *s); const char *Protocol_NameForEnum(protocolversion_t p); protocolversion_t Protocol_EnumForNumber(int n); int Protocol_NumberForEnum(protocolversion_t p); void Protocol_Names(char *buffer, size_t buffersize); # 351 "../../../protocol.h" typedef struct framegroupblend_s { int frame; float lerp; double start; } framegroupblend_t; struct matrix4x4_s; struct model_s; typedef struct skeleton_s { const struct model_s *model; struct matrix4x4_s *relativetransforms; } skeleton_t; typedef enum entity_state_active_e { ACTIVE_NOT = 0, ACTIVE_NETWORK = 1, ACTIVE_SHARED = 2 } entity_state_active_t; typedef struct entity_state_s { double time; float netcenter[3]; float origin[3]; float angles[3]; int effects; unsigned int customizeentityforclient; unsigned short number; unsigned short modelindex; unsigned short frame; unsigned short tagentity; unsigned short specialvisibilityradius; unsigned short viewmodelforclient; unsigned short exteriormodelforclient; unsigned short nodrawtoclient; unsigned short drawonlytoclient; unsigned short traileffectnum; unsigned short light[4]; unsigned char active; unsigned char lightstyle; unsigned char lightpflags; unsigned char colormap; unsigned char skin; unsigned char alpha; unsigned char scale; unsigned char glowsize; unsigned char glowcolor; unsigned char flags; unsigned char internaleffects; unsigned char tagindex; unsigned char colormod[3]; unsigned char glowmod[3]; framegroupblend_t framegroupblend[4]; skeleton_t skeletonobject; } entity_state_t; extern entity_state_t defaultstate; void EntityFrameQuake_ReadEntity(int bits); void Protocol_UpdateClientStats(const int *stats); void Protocol_WriteStatsReliable(void); qboolean EntityFrameQuake_WriteFrame(sizebuf_t *msg, int maxsize, int numstates, const entity_state_t **states); void EntityFrameQuake_ISeeDeadEntities(void); # 499 "../../../protocol.h" typedef struct entity_frame_s { double time; int framenum; int numentities; int firstentitynum; int lastentitynum; vec3_t eye; entity_state_t entitydata[(32768 * 2)]; } entity_frame_t; typedef struct entity_frameinfo_s { double time; int framenum; int firstentity; int endentity; } entity_frameinfo_t; typedef struct entityframe_database_s { # 530 "../../../protocol.h" int numframes; int latestframenum; int ackframenum; vec3_t eye; entity_frameinfo_t frames[64]; entity_state_t entitydata[(32768 * 2)]; entity_frame_t deltaframe; entity_frame_t framedata; } entityframe_database_t; # 594 "../../../protocol.h" int EntityState_DeltaBits(const entity_state_t *o, const entity_state_t *n); void EntityState_WriteExtendBits(sizebuf_t *msg, unsigned int bits); void EntityState_WriteFields(const entity_state_t *ent, sizebuf_t *msg, unsigned int bits); void EntityState_WriteUpdate(const entity_state_t *ent, sizebuf_t *msg, const entity_state_t *delta); int EntityState_ReadExtendBits(void); void EntityState_ReadFields(entity_state_t *e, unsigned int bits); entityframe_database_t *EntityFrame_AllocDatabase(mempool_t *mempool); void EntityFrame_FreeDatabase(entityframe_database_t *d); void EntityFrame_ClearDatabase(entityframe_database_t *d); void EntityFrame_AckFrame(entityframe_database_t *d, int frame); void EntityFrame_Clear(entity_frame_t *f, vec3_t eye, int framenum); void EntityFrame_FetchFrame(entityframe_database_t *d, int framenum, entity_frame_t *f); void EntityFrame_AddFrame_Client(entityframe_database_t *d, vec3_t eye, int framenum, int numentities, const entity_state_t *entitydata); void EntityFrame_AddFrame_Server(entityframe_database_t *d, vec3_t eye, int framenum, int numentities, const entity_state_t **entitydata); qboolean EntityFrame_WriteFrame(sizebuf_t *msg, int maxsize, entityframe_database_t *d, int numstates, const entity_state_t **states, int viewentnum); void EntityFrame_CL_ReadFrame(void); int EntityFrame_MostRecentlyRecievedFrameNum(entityframe_database_t *d); typedef struct entity_database4_commit_s { int framenum; int numentities; int maxentities; entity_state_t *entity; } entity_database4_commit_t; typedef struct entity_database4_s { mempool_t *mempool; int referenceframenum; int maxreferenceentities; entity_state_t *referenceentity; entity_database4_commit_t commit[64]; entity_database4_commit_t *currentcommit; int currententitynumber; int latestframenumber; } entityframe4_database_t; entity_state_t *EntityFrame4_GetReferenceEntity(entityframe4_database_t *d, int number); void EntityFrame4_AddCommitEntity(entityframe4_database_t *d, const entity_state_t *s); entityframe4_database_t *EntityFrame4_AllocDatabase(mempool_t *pool); void EntityFrame4_FreeDatabase(entityframe4_database_t *d); void EntityFrame4_ResetDatabase(entityframe4_database_t *d); int EntityFrame4_AckFrame(entityframe4_database_t *d, int framenum, int servermode); qboolean EntityFrame4_WriteFrame(sizebuf_t *msg, int maxsize, entityframe4_database_t *d, int numstates, const entity_state_t **states); void EntityFrame4_CL_ReadFrame(void); # 770 "../../../protocol.h" typedef struct entityframe5_changestate_s { unsigned int number; unsigned int bits; } entityframe5_changestate_t; typedef struct entityframe5_packetlog_s { int packetnumber; int numstates; entityframe5_changestate_t states[1024]; unsigned char statsdeltabits[(256 +7)/8]; } entityframe5_packetlog_t; typedef struct entityframe5_database_s { int latestframenum; int viewentnum; entityframe5_packetlog_t packetlog[64]; int maxedicts; int *deltabits; unsigned char *priorities; int *updateframenum; entity_state_t *states; unsigned char *visiblebits; # 828 "../../../protocol.h" int prioritychaincounts[32]; unsigned short prioritychains[32][1024]; } entityframe5_database_t; entityframe5_database_t *EntityFrame5_AllocDatabase(mempool_t *pool); void EntityFrame5_FreeDatabase(entityframe5_database_t *d); void EntityState5_WriteUpdate(int number, const entity_state_t *s, int changedbits, sizebuf_t *msg); int EntityState5_DeltaBitsForState(entity_state_t *o, entity_state_t *n); void EntityFrame5_CL_ReadFrame(void); void EntityFrame5_LostFrame(entityframe5_database_t *d, int framenum); void EntityFrame5_AckFrame(entityframe5_database_t *d, int framenum); qboolean EntityFrame5_WriteFrame(sizebuf_t *msg, int maxsize, entityframe5_database_t *d, int numstates, const entity_state_t **states, int viewentnum, unsigned int movesequence, qboolean need_empty); extern cvar_t developer_networkentities; # 999 "../../../protocol.h" typedef struct entityframeqw_snapshot_s { double time; qboolean invalid; int num_entities; entity_state_t entities[64]; } entityframeqw_snapshot_t; typedef struct entityframeqw_database_s { entityframeqw_snapshot_t snapshot[64]; } entityframeqw_database_t; entityframeqw_database_t *EntityFrameQW_AllocDatabase(mempool_t *pool); void EntityFrameQW_FreeDatabase(entityframeqw_database_t *d); void EntityStateQW_ReadPlayerUpdate(void); void EntityFrameQW_CL_ReadFrame(qboolean delta); struct client_s; void EntityFrameCSQC_LostFrame(struct client_s *client, int framenum); qboolean EntityFrameCSQC_WriteFrame (sizebuf_t *msg, int maxsize, int numnumbers, const unsigned short *numbers, int framenum); # 389 "../../../quakedef.h" 2 # 1 "../../../cmd.h" 1 # 40 "../../../cmd.h" extern void *cmd_text_mutex; void Cbuf_Init (void); void Cmd_Init_Commands (void); void Cbuf_Shutdown (void); void Cbuf_AddText (const char *text); void Cbuf_InsertText (const char *text); void Cbuf_Execute (void); void Cbuf_Frame (void); # 84 "../../../cmd.h" typedef void (*xcommand_t) (void); typedef enum { src_client, src_command } cmd_source_t; extern cmd_source_t cmd_source; void Cmd_Init (void); void Cmd_Shutdown (void); void Cmd_SaveInitState (void); void Cmd_RestoreInitState (void); void Cmd_AddCommand_WithClientCommand (const char *cmd_name, xcommand_t consolefunction, xcommand_t clientfunction, const char *description); void Cmd_AddCommand (const char *cmd_name, xcommand_t function, const char *description); qboolean Cmd_Exists (const char *cmd_name); const char *Cmd_CompleteCommand (const char *partial); int Cmd_CompleteAliasCountPossible (const char *partial); const char **Cmd_CompleteAliasBuildList (const char *partial); int Cmd_CompleteCountPossible (const char *partial); const char **Cmd_CompleteBuildList (const char *partial); void Cmd_CompleteCommandPrint (const char *partial); const char *Cmd_CompleteAlias (const char *partial); void Cmd_CompleteAliasPrint (const char *partial); int Cmd_Argc (void); const char *Cmd_Argv (int arg); const char *Cmd_Args (void); int Cmd_CheckParm (const char *parm); void Cmd_ExecuteString (const char *text, cmd_source_t src, qboolean lockmutex); void Cmd_ForwardStringToServer (const char *s); void Cmd_ForwardToServer (void); void Cmd_Print(const char *text); qboolean Cmd_QuoteString(char *out, size_t outlen, const char *in, const char *quoteset, qboolean putquotes); void Cmd_ClearCsqcFuncs (void); # 390 "../../../quakedef.h" 2 # 1 "../../../sbar.h" 1 # 26 "../../../sbar.h" extern int sb_lines; extern cvar_t sbar_alpha_bg; extern cvar_t sbar_alpha_fg; void Sbar_Init (void); void Sbar_Draw (void); int Sbar_GetSortedPlayerIndex (int index); void Sbar_SortFrags (void); # 391 "../../../quakedef.h" 2 # 1 "../../../sound.h" 1 # 24 "../../../sound.h" # 1 "../../../matrixlib.h" 1 # 11 "../../../matrixlib.h" typedef struct matrix4x4_s { vec_t m[4][4]; } matrix4x4_t; extern const matrix4x4_t identitymatrix; void Matrix4x4_Copy (matrix4x4_t *out, const matrix4x4_t *in); void Matrix4x4_CopyRotateOnly (matrix4x4_t *out, const matrix4x4_t *in); void Matrix4x4_CopyTranslateOnly (matrix4x4_t *out, const matrix4x4_t *in); void Matrix4x4_Concat (matrix4x4_t *out, const matrix4x4_t *in1, const matrix4x4_t *in2); void Matrix4x4_Transpose (matrix4x4_t *out, const matrix4x4_t *in1); int Matrix4x4_Invert_Full (matrix4x4_t *out, const matrix4x4_t *in1); void Matrix4x4_Invert_Simple (matrix4x4_t *out, const matrix4x4_t *in1); void Matrix4x4_Interpolate (matrix4x4_t *out, matrix4x4_t *in1, matrix4x4_t *in2, double frac); void Matrix4x4_Clear (matrix4x4_t *out); void Matrix4x4_Accumulate (matrix4x4_t *out, matrix4x4_t *in, double weight); void Matrix4x4_Normalize (matrix4x4_t *out, matrix4x4_t *in1); void Matrix4x4_Normalize3 (matrix4x4_t *out, matrix4x4_t *in1); void Matrix4x4_Reflect (matrix4x4_t *out, double normalx, double normaly, double normalz, double dist, double axisscale); void Matrix4x4_CreateIdentity (matrix4x4_t *out); void Matrix4x4_CreateTranslate (matrix4x4_t *out, double x, double y, double z); void Matrix4x4_CreateRotate (matrix4x4_t *out, double angle, double x, double y, double z); void Matrix4x4_CreateScale (matrix4x4_t *out, double x); void Matrix4x4_CreateScale3 (matrix4x4_t *out, double x, double y, double z); void Matrix4x4_CreateFromQuakeEntity(matrix4x4_t *out, double x, double y, double z, double pitch, double yaw, double roll, double scale); void Matrix4x4_ToVectors(const matrix4x4_t *in, vec_t vx[3], vec_t vy[3], vec_t vz[3], vec_t t[3]); void Matrix4x4_FromVectors(matrix4x4_t *out, const vec_t vx[3], const vec_t vy[3], const vec_t vz[3], const vec_t t[3]); void Matrix4x4_ToArrayDoubleGL(const matrix4x4_t *in, double out[16]); void Matrix4x4_FromArrayDoubleGL(matrix4x4_t *out, const double in[16]); void Matrix4x4_ToArrayDoubleD3D(const matrix4x4_t *in, double out[16]); void Matrix4x4_FromArrayDoubleD3D(matrix4x4_t *out, const double in[16]); void Matrix4x4_ToArrayFloatGL(const matrix4x4_t *in, float out[16]); void Matrix4x4_FromArrayFloatGL(matrix4x4_t *out, const float in[16]); void Matrix4x4_ToArrayFloatD3D(const matrix4x4_t *in, float out[16]); void Matrix4x4_FromArrayFloatD3D(matrix4x4_t *out, const float in[16]); void Matrix4x4_ToArray12FloatGL(const matrix4x4_t *in, float out[12]); void Matrix4x4_FromArray12FloatGL(matrix4x4_t *out, const float in[12]); void Matrix4x4_ToArray12FloatD3D(const matrix4x4_t *in, float out[12]); void Matrix4x4_FromArray12FloatD3D(matrix4x4_t *out, const float in[12]); void Matrix4x4_FromOriginQuat(matrix4x4_t *m, double ox, double oy, double oz, double x, double y, double z, double w); void Matrix4x4_ToOrigin3Quat4Float(const matrix4x4_t *m, float *origin, float *quat); void Matrix4x4_FromDoom3Joint(matrix4x4_t *m, double ox, double oy, double oz, double x, double y, double z); void Matrix4x4_FromBonePose7s(matrix4x4_t *m, float originscale, const short *pose7s); void Matrix4x4_ToBonePose7s(const matrix4x4_t *m, float origininvscale, short *pose7s); void Matrix4x4_Blend (matrix4x4_t *out, const matrix4x4_t *in1, const matrix4x4_t *in2, double blend); void Matrix4x4_Transform (const matrix4x4_t *in, const vec_t v[3], vec_t out[3]); void Matrix4x4_Transform4 (const matrix4x4_t *in, const vec_t v[4], vec_t out[4]); void Matrix4x4_Transform3x3 (const matrix4x4_t *in, const vec_t v[3], vec_t out[3]); void Matrix4x4_TransformPositivePlane (const matrix4x4_t *in, vec_t x, vec_t y, vec_t z, vec_t d, vec_t *o); void Matrix4x4_TransformStandardPlane (const matrix4x4_t *in, vec_t x, vec_t y, vec_t z, vec_t d, vec_t *o); void Matrix4x4_ConcatTranslate (matrix4x4_t *out, double x, double y, double z); void Matrix4x4_ConcatRotate (matrix4x4_t *out, double angle, double x, double y, double z); void Matrix4x4_ConcatScale (matrix4x4_t *out, double x); void Matrix4x4_ConcatScale3 (matrix4x4_t *out, double x, double y, double z); void Matrix4x4_OriginFromMatrix (const matrix4x4_t *in, vec_t *out); double Matrix4x4_ScaleFromMatrix (const matrix4x4_t *in); void Matrix4x4_SetOrigin (matrix4x4_t *out, double x, double y, double z); void Matrix4x4_AdjustOrigin (matrix4x4_t *out, double x, double y, double z); void Matrix4x4_Scale (matrix4x4_t *out, double rotatescale, double originscale); void Matrix4x4_Abs (matrix4x4_t *out); # 25 "../../../sound.h" 2 # 47 "../../../sound.h" typedef struct sfx_s sfx_t; extern cvar_t mastervolume; extern cvar_t bgmvolume; extern cvar_t volume; extern cvar_t snd_initialized; extern cvar_t snd_staticvolume; extern cvar_t snd_mutewhenidle; void S_Init (void); void S_Terminate (void); void S_Startup (void); void S_Shutdown (void); void S_UnloadAllSounds_f (void); void S_Update(const matrix4x4_t *listenermatrix); void S_ExtraUpdate (void); sfx_t *S_PrecacheSound (const char *sample, qboolean complain, qboolean levelsound); float S_SoundLength(const char *name); void S_ClearUsed (void); void S_PurgeUnused (void); qboolean S_IsSoundPrecached (const sfx_t *sfx); sfx_t *S_FindName(const char *name); # 98 "../../../sound.h" int S_StartSound (int entnum, int entchannel, sfx_t *sfx, vec3_t origin, float fvol, float attenuation); int S_StartSound_StartPosition_Flags (int entnum, int entchannel, sfx_t *sfx, vec3_t origin, float fvol, float attenuation, float startposition, int flags, float fspeed); qboolean S_LocalSound (const char *s); void S_StaticSound (sfx_t *sfx, vec3_t origin, float fvol, float attenuation); void S_StopSound (int entnum, int entchannel); void S_StopAllSounds (void); void S_PauseGameSounds (qboolean toggle); void S_StopChannel (unsigned int channel_ind, qboolean lockmutex, qboolean freesfx); qboolean S_SetChannelFlag (unsigned int ch_ind, unsigned int flag, qboolean value); void S_SetChannelVolume (unsigned int ch_ind, float fvol); void S_SetChannelSpeed (unsigned int ch_ind, float fspeed); float S_GetChannelPosition (unsigned int ch_ind); float S_GetEntChannelPosition(int entnum, int entchannel); void S_BlockSound (void); void S_UnblockSound (void); int S_GetSoundRate (void); int S_GetSoundChannels (void); # 392 "../../../quakedef.h" 2 # 1 "../../../model_shared.h" 1 # 24 "../../../model_shared.h" typedef enum synctype_e {ST_SYNC=0, ST_RAND } synctype_t; # 33 "../../../model_shared.h" typedef enum modtype_e {mod_invalid, mod_brushq1, mod_sprite, mod_alias, mod_brushq2, mod_brushq3, mod_obj, mod_null} modtype_t; typedef struct animscene_s { char name[32]; int firstframe; int framecount; int loop; float framerate; } animscene_t; typedef struct skinframe_s { rtexture_t *stain; rtexture_t *merged; rtexture_t *base; rtexture_t *pants; rtexture_t *shirt; rtexture_t *nmap; rtexture_t *gloss; rtexture_t *glow; rtexture_t *fog; rtexture_t *reflect; struct skinframe_s *next; char basename[128]; int textureflags; int comparewidth; int compareheight; int comparecrc; unsigned int loadsequence; qboolean hasalpha; float avgcolor[4]; unsigned char *qpixels; int qwidth; int qheight; qboolean qhascolormapping; qboolean qgeneratebase; qboolean qgeneratemerged; qboolean qgeneratenmap; qboolean qgenerateglow; } skinframe_t; struct md3vertex_s; struct trivertx_s; typedef struct texvecvertex_s { signed char svec[3]; signed char tvec[3]; } texvecvertex_t; typedef struct blendweights_s { unsigned char index[4]; unsigned char influence[4]; } blendweights_t; typedef struct r_vertexgeneric_s { float vertex3f[3]; float color4f[4]; float texcoord2f[2]; } r_vertexgeneric_t; typedef struct r_vertexmesh_s { float vertex3f[3]; float color4f[4]; float texcoordtexture2f[2]; float texcoordlightmap2f[2]; float svector3f[3]; float tvector3f[3]; float normal3f[3]; unsigned char skeletalindex4ub[4]; unsigned char skeletalweight4ub[4]; } r_vertexmesh_t; typedef struct r_meshbuffer_s { int bufferobject; void *devicebuffer; size_t size; qboolean isindexbuffer; qboolean isuniformbuffer; qboolean isdynamic; qboolean isindex16; char name[128]; } r_meshbuffer_t; typedef struct surfmesh_s { int num_triangles; int *data_element3i; r_meshbuffer_t *data_element3i_indexbuffer; int data_element3i_bufferoffset; unsigned short *data_element3s; r_meshbuffer_t *data_element3s_indexbuffer; int data_element3s_bufferoffset; int *data_neighbor3i; int num_vertices; float *data_vertex3f; float *data_svector3f; float *data_tvector3f; float *data_normal3f; float *data_texcoordtexture2f; float *data_texcoordlightmap2f; float *data_lightmapcolor4f; unsigned char *data_skeletalindex4ub; unsigned char *data_skeletalweight4ub; int *data_lightmapoffsets; r_vertexmesh_t *data_vertexmesh; r_meshbuffer_t *vbo_vertexbuffer; int vbooffset_vertex3f; int vbooffset_svector3f; int vbooffset_tvector3f; int vbooffset_normal3f; int vbooffset_texcoordtexture2f; int vbooffset_texcoordlightmap2f; int vbooffset_lightmapcolor4f; int vbooffset_skeletalindex4ub; int vbooffset_skeletalweight4ub; int vbooffset_vertexmesh; int num_morphframes; struct md3vertex_s *data_morphmd3vertex; struct trivertx_s *data_morphmdlvertex; struct texvecvertex_s *data_morphtexvecvertex; float *data_morphmd2framesize6f; float num_morphmdlframescale[3]; float num_morphmdlframetranslate[3]; struct blendweights_s *data_blendweights; int num_blends; unsigned short *blends; qboolean isanimated; r_meshbuffer_t *vertexmesh_vertexbuffer; } surfmesh_t; typedef struct shadowmeshvertexhash_s { struct shadowmeshvertexhash_s *next; } shadowmeshvertexhash_t; typedef struct shadowmesh_s { struct shadowmesh_s *next; rtexture_t *map_diffuse; rtexture_t *map_specular; rtexture_t *map_normal; int numverts, maxverts; int numtriangles, maxtriangles; float *vertex3f; float *svector3f; float *tvector3f; float *normal3f; float *texcoord2f; int *element3i; r_meshbuffer_t *element3i_indexbuffer; int element3i_bufferoffset; unsigned short *element3s; r_meshbuffer_t *element3s_indexbuffer; int element3s_bufferoffset; r_vertexmesh_t *vertexmesh; int sideoffsets[6], sidetotals[6]; int *neighbor3i; shadowmeshvertexhash_t **vertexhashtable, *vertexhashentries; r_meshbuffer_t *vbo_vertexbuffer; int vbooffset_vertex3f; int vbooffset_svector3f; int vbooffset_tvector3f; int vbooffset_normal3f; int vbooffset_texcoord2f; int vbooffset_vertexmesh; } shadowmesh_t; # 274 "../../../model_shared.h" typedef enum q3wavefunc_e { Q3WAVEFUNC_NONE, Q3WAVEFUNC_INVERSESAWTOOTH, Q3WAVEFUNC_NOISE, Q3WAVEFUNC_SAWTOOTH, Q3WAVEFUNC_SIN, Q3WAVEFUNC_SQUARE, Q3WAVEFUNC_TRIANGLE, Q3WAVEFUNC_COUNT } q3wavefunc_e; typedef int q3wavefunc_t; typedef enum q3deform_e { Q3DEFORM_NONE, Q3DEFORM_PROJECTIONSHADOW, Q3DEFORM_AUTOSPRITE, Q3DEFORM_AUTOSPRITE2, Q3DEFORM_TEXT0, Q3DEFORM_TEXT1, Q3DEFORM_TEXT2, Q3DEFORM_TEXT3, Q3DEFORM_TEXT4, Q3DEFORM_TEXT5, Q3DEFORM_TEXT6, Q3DEFORM_TEXT7, Q3DEFORM_BULGE, Q3DEFORM_WAVE, Q3DEFORM_NORMAL, Q3DEFORM_MOVE, Q3DEFORM_COUNT } q3deform_t; typedef enum q3rgbgen_e { Q3RGBGEN_IDENTITY, Q3RGBGEN_CONST, Q3RGBGEN_ENTITY, Q3RGBGEN_EXACTVERTEX, Q3RGBGEN_IDENTITYLIGHTING, Q3RGBGEN_LIGHTINGDIFFUSE, Q3RGBGEN_ONEMINUSENTITY, Q3RGBGEN_ONEMINUSVERTEX, Q3RGBGEN_VERTEX, Q3RGBGEN_WAVE, Q3RGBGEN_COUNT } q3rgbgen_t; typedef enum q3alphagen_e { Q3ALPHAGEN_IDENTITY, Q3ALPHAGEN_CONST, Q3ALPHAGEN_ENTITY, Q3ALPHAGEN_LIGHTINGSPECULAR, Q3ALPHAGEN_ONEMINUSENTITY, Q3ALPHAGEN_ONEMINUSVERTEX, Q3ALPHAGEN_PORTAL, Q3ALPHAGEN_VERTEX, Q3ALPHAGEN_WAVE, Q3ALPHAGEN_COUNT } q3alphagen_t; typedef enum q3tcgen_e { Q3TCGEN_NONE, Q3TCGEN_TEXTURE, Q3TCGEN_ENVIRONMENT, Q3TCGEN_LIGHTMAP, Q3TCGEN_VECTOR, Q3TCGEN_COUNT } q3tcgen_t; typedef enum q3tcmod_e { Q3TCMOD_NONE, Q3TCMOD_ENTITYTRANSLATE, Q3TCMOD_ROTATE, Q3TCMOD_SCALE, Q3TCMOD_SCROLL, Q3TCMOD_STRETCH, Q3TCMOD_TRANSFORM, Q3TCMOD_TURBULENT, Q3TCMOD_PAGE, Q3TCMOD_COUNT } q3tcmod_t; typedef struct q3shaderinfo_layer_rgbgen_s { q3rgbgen_t rgbgen; float parms[3]; q3wavefunc_t wavefunc; float waveparms[4]; } q3shaderinfo_layer_rgbgen_t; typedef struct q3shaderinfo_layer_alphagen_s { q3alphagen_t alphagen; float parms[1]; q3wavefunc_t wavefunc; float waveparms[4]; } q3shaderinfo_layer_alphagen_t; typedef struct q3shaderinfo_layer_tcgen_s { q3tcgen_t tcgen; float parms[6]; } q3shaderinfo_layer_tcgen_t; typedef struct q3shaderinfo_layer_tcmod_s { q3tcmod_t tcmod; float parms[6]; q3wavefunc_t wavefunc; float waveparms[4]; } q3shaderinfo_layer_tcmod_t; typedef struct q3shaderinfo_layer_s { int alphatest; int clampmap; float framerate; int numframes; int texflags; char** texturename; int blendfunc[2]; q3shaderinfo_layer_rgbgen_t rgbgen; q3shaderinfo_layer_alphagen_t alphagen; q3shaderinfo_layer_tcgen_t tcgen; q3shaderinfo_layer_tcmod_t tcmods[8]; } q3shaderinfo_layer_t; typedef struct q3shaderinfo_deform_s { q3deform_t deform; float parms[3]; q3wavefunc_t wavefunc; float waveparms[4]; } q3shaderinfo_deform_t; typedef enum dpoffsetmapping_technique_s { OFFSETMAPPING_OFF, OFFSETMAPPING_DEFAULT, OFFSETMAPPING_LINEAR, OFFSETMAPPING_RELIEF }dpoffsetmapping_technique_t; typedef enum dptransparentsort_category_e { TRANSPARENTSORT_SKY, TRANSPARENTSORT_DISTANCE, TRANSPARENTSORT_HUD, }dptransparentsortcategory_t; typedef struct q3shaderinfo_s { char name[64]; int surfaceparms; int surfaceflags; int textureflags; int numlayers; qboolean lighting; qboolean vertexalpha; qboolean textureblendalpha; int primarylayer, backgroundlayer; q3shaderinfo_layer_t layers[2]; char skyboxname[64]; q3shaderinfo_deform_t deforms[4]; qboolean dpnortlight; qboolean dpshadow; qboolean dpnoshadow; qboolean dpmeshcollisions; qboolean dpshaderkill; char dpreflectcube[64]; float reflectmin; float reflectmax; float refractfactor; vec4_t refractcolor4f; float reflectfactor; vec4_t reflectcolor4f; float r_water_wateralpha; float r_water_waterscroll[2]; dpoffsetmapping_technique_t offsetmapping; float offsetscale; float offsetbias; float biaspolygonoffset, biaspolygonfactor; dptransparentsortcategory_t transparentsort; float specularscalemod; float specularpowermod; float rtlightambient; } q3shaderinfo_t; typedef enum texturelayertype_e { TEXTURELAYERTYPE_INVALID, TEXTURELAYERTYPE_LITTEXTURE, TEXTURELAYERTYPE_TEXTURE, TEXTURELAYERTYPE_FOG } texturelayertype_t; typedef struct texturelayer_s { texturelayertype_t type; qboolean depthmask; int blendfunc1; int blendfunc2; rtexture_t *texture; matrix4x4_t texmatrix; vec4_t color; } texturelayer_t; typedef struct texture_s { unsigned int width, height; int basematerialflags; int currentmaterialflags; float basealpha; float biaspolygonfactor; float biaspolygonoffset; skinframe_t *currentskinframe; int numskinframes; float skinframerate; skinframe_t *skinframes[64]; skinframe_t *backgroundcurrentskinframe; int backgroundnumskinframes; float backgroundskinframerate; skinframe_t *backgroundskinframes[64]; int anim_total[2]; struct texture_s *anim_frames[2][10]; int animated; int update_lastrenderframe; void *update_lastrenderentity; float currentalpha; struct texture_s *currentframe; matrix4x4_t currenttexmatrix; matrix4x4_t currentbackgroundtexmatrix; q3shaderinfo_layer_rgbgen_t rgbgen; q3shaderinfo_layer_alphagen_t alphagen; q3shaderinfo_layer_tcgen_t tcgen; q3shaderinfo_layer_tcmod_t tcmods[8]; q3shaderinfo_layer_tcmod_t backgroundtcmods[8]; q3shaderinfo_deform_t deforms[4]; qboolean colormapping; rtexture_t *basetexture; rtexture_t *pantstexture; rtexture_t *shirttexture; rtexture_t *nmaptexture; rtexture_t *glosstexture; rtexture_t *glowtexture; rtexture_t *fogtexture; rtexture_t *reflectmasktexture; rtexture_t *reflectcubetexture; rtexture_t *backgroundbasetexture; rtexture_t *backgroundnmaptexture; rtexture_t *backgroundglosstexture; rtexture_t *backgroundglowtexture; float specularscale; float specularpower; float dlightcolor[3]; float lightmapcolor[4]; int customblendfunc[2]; int currentnumlayers; texturelayer_t currentlayers[16]; char name[64]; int surfaceflags; int supercontents; int textureflags; int q2flags; int q2value; int q2contents; float reflectmin; float reflectmax; float refractfactor; vec4_t refractcolor4f; float reflectfactor; vec4_t reflectcolor4f; float r_water_wateralpha; float r_water_waterscroll[2]; int camera_entity; dpoffsetmapping_technique_t offsetmapping; float offsetscale; float offsetbias; dptransparentsortcategory_t transparentsort; float specularscalemod; float specularpowermod; float rtlightambient; } texture_t; typedef struct mtexinfo_s { float vecs[2][4]; int textureindex; int q1flags; int q2flags; int q2value; char q2texture[32]; int q2nexttexinfo; } mtexinfo_t; typedef struct msurface_lightmapinfo_s { mtexinfo_t *texinfo; unsigned char styles[4]; unsigned char *samples; unsigned char *nmapsamples; unsigned char *stainsamples; int texturemins[2]; int extents[2]; int lightmaporigin[2]; } msurface_lightmapinfo_t; struct q3deffect_s; typedef struct msurface_s { vec3_t mins; vec3_t maxs; texture_t *texture; rtexture_t *lightmaptexture; rtexture_t *deluxemaptexture; msurface_lightmapinfo_t *lightmapinfo; struct q3deffect_s *effect; int num_firstcollisiontriangle; int *deprecatedq3data_collisionelement3i; float *deprecatedq3data_collisionvertex3f; float *deprecatedq3data_collisionbbox6f; float *deprecatedq3data_bbox6f; int num_triangles; int num_firsttriangle; int num_vertices; int num_firstvertex; int num_firstshadowmeshtriangle; int num_collisiontriangles; int num_collisionvertices; int deprecatedq3num_collisionbboxstride; int deprecatedq3num_bboxstride; int deprecatedq3collisionmarkframe; } msurface_t; # 1 "../../../bih.h" 1 # 11 "../../../bih.h" typedef enum biherror_e { BIHERROR_OK, BIHERROR_OUT_OF_NODES } biherror_t; typedef enum bih_nodetype_e { BIH_SPLITX = 0, BIH_SPLITY = 1, BIH_SPLITZ = 2, BIH_UNORDERED = 3, } bih_nodetype_t; typedef enum bih_leaftype_e { BIH_BRUSH = 4, BIH_COLLISIONTRIANGLE = 5, BIH_RENDERTRIANGLE = 6 } bih_leaftype_t; typedef struct bih_node_s { bih_nodetype_t type; float mins[3]; float maxs[3]; int front; int back; float frontmin; float backmax; int children[8]; } bih_node_t; typedef struct bih_leaf_s { bih_leaftype_t type; float mins[3]; float maxs[3]; int textureindex; int surfaceindex; int itemindex; } bih_leaf_t; typedef struct bih_s { int numleafs; bih_leaf_t *leafs; int numnodes; bih_node_t *nodes; int rootnode; float mins[3]; float maxs[3]; int maxnodes; int error; int *leafsort; int *leafsortscratch; } bih_t; int BIH_Build(bih_t *bih, int numleafs, bih_leaf_t *leafs, int maxnodes, bih_node_t *nodes, int *temp_leafsort, int *temp_leafsortscratch); int BIH_GetTriangleListForBox(const bih_t *bih, int maxtriangles, int *trianglelist_idx, int *trianglelist_surf, const float *mins, const float *maxs); # 732 "../../../model_shared.h" 2 # 1 "../../../model_brush.h" 1 # 37 "../../../model_brush.h" typedef struct mvertex_s { vec3_t position; } mvertex_t; typedef struct mplane_s { union { struct { vec3_t normal; vec_t dist; }; vec4_t normal_and_dist; }; int type; int signbits; } mplane_t; # 137 "../../../model_brush.h" typedef struct medge_s { unsigned int v[2]; } medge_t; struct entity_render_s; struct texture_s; struct msurface_s; typedef struct mnode_s { mplane_t *plane; struct mnode_s *parent; struct mportal_s *portals; vec3_t mins; vec3_t maxs; int combinedsupercontents; struct mnode_s *children[2]; unsigned int firstsurface; unsigned int numsurfaces; } mnode_t; typedef struct mleaf_s { mplane_t *plane; struct mnode_s *parent; struct mportal_s *portals; vec3_t mins; vec3_t maxs; int combinedsupercontents; int clusterindex; int areaindex; int containscollisionsurfaces; int numleafsurfaces; int *firstleafsurface; int numleafbrushes; int *firstleafbrush; unsigned char ambient_sound_level[4]; int contents; int portalmarkid; } mleaf_t; typedef struct mclipnode_s { int planenum; int children[2]; } mclipnode_t; typedef struct hull_s { mclipnode_t *clipnodes; mplane_t *planes; int firstclipnode; int lastclipnode; vec3_t clip_mins; vec3_t clip_maxs; vec3_t clip_size; } hull_t; typedef struct mportal_s { struct mportal_s *next; mleaf_t *here; mleaf_t *past; int numpoints; mvertex_t *points; vec3_t mins, maxs; mplane_t plane; } mportal_t; typedef struct svbspmesh_s { struct svbspmesh_s *next; int numverts, maxverts; int numtriangles, maxtriangles; float *verts; int *elements; } svbspmesh_t; # 266 "../../../model_brush.h" typedef struct q2dheader_s { int ident; int version; lump_t lumps[19]; } q2dheader_t; typedef struct q2dmodel_s { float mins[3], maxs[3]; float origin[3]; int headnode; int firstface, numfaces; } q2dmodel_t; # 448 "../../../model_brush.h" typedef struct q3dheader_s { int ident; int version; lump_t lumps[18]; } q3dheader_t; typedef struct q3dtexture_s { char name[64]; int surfaceflags; int contents; } q3dtexture_t; typedef struct q3dplane_s { float normal[3]; float dist; } q3dplane_t; typedef struct q3dnode_s { int planeindex; int childrenindex[2]; int mins[3]; int maxs[3]; } q3dnode_t; typedef struct q3dleaf_s { int clusterindex; int areaindex; int mins[3]; int maxs[3]; int firstleafface; int numleaffaces; int firstleafbrush; int numleafbrushes; } q3dleaf_t; typedef struct q3dmodel_s { float mins[3]; float maxs[3]; int firstface; int numfaces; int firstbrush; int numbrushes; } q3dmodel_t; typedef struct q3dbrush_s { int firstbrushside; int numbrushsides; int textureindex; } q3dbrush_t; typedef struct q3dbrushside_s { int planeindex; int textureindex; } q3dbrushside_t; typedef struct q3dbrushside_ig_s { int planeindex; int textureindex; int surfaceflags; } q3dbrushside_ig_t; typedef struct q3dvertex_s { float origin3f[3]; float texcoord2f[2]; float lightmap2f[2]; float normal3f[3]; unsigned char color4ub[4]; } q3dvertex_t; typedef struct q3dmeshvertex_s { int offset; } q3dmeshvertex_t; typedef struct q3deffect_s { char shadername[64]; int brushindex; int unknown; } q3deffect_t; typedef struct q3dface_s { int textureindex; int effectindex; int type; int firstvertex; int numvertices; int firstelement; int numelements; int lightmapindex; int lightmap_base[2]; int lightmap_size[2]; union { struct { int blah[14]; } unknown; struct { float lightmap_origin[3]; float lightmap_vectors[2][3]; float normal[3]; int unused1[2]; } flat; struct { int unused1[3]; float mins[3]; float maxs[3]; int unused2[3]; int patchsize[2]; } patch; struct { int unused1[3]; float mins[3]; float maxs[3]; int unused2[5]; } mesh; struct { float origin[3]; int unused1[11]; } flare; } specific; } q3dface_t; typedef struct q3dlightmap_s { unsigned char rgb[128*128*3]; } q3dlightmap_t; typedef struct q3dlightgrid_s { unsigned char ambientrgb[3]; unsigned char diffusergb[3]; unsigned char diffusepitch; unsigned char diffuseyaw; } q3dlightgrid_t; typedef struct q3dpvs_s { int numclusters; int chainlength; } q3dpvs_t; # 707 "../../../model_brush.h" typedef struct q3mbrush_s { struct colbrushf_s *colbrushf; int numbrushsides; struct q3mbrushside_s *firstbrushside; struct texture_s *texture; } q3mbrush_t; typedef struct q3mbrushside_s { struct mplane_s *plane; struct texture_s *texture; } q3mbrushside_t; # 734 "../../../model_shared.h" 2 # 1 "../../../model_sprite.h" 1 # 32 "../../../model_sprite.h" # 1 "../../../spritegn.h" 1 # 54 "../../../spritegn.h" typedef struct dsprite_s { int ident; int version; int type; float boundingradius; int width; int height; int numframes; float beamlength; synctype_t synctype; } dsprite_t; typedef struct dspritehl_s { int ident; int version; int type; int rendermode; float boundingradius; int width; int height; int numframes; float beamlength; synctype_t synctype; } dspritehl_t; typedef struct dsprite2frame_s { int width, height; int origin_x, origin_y; char name[64]; } dsprite2frame_t; typedef struct dsprite2_s { int ident; int version; int numframes; dsprite2frame_t frames[1]; } dsprite2_t; # 110 "../../../spritegn.h" typedef struct dspriteframe_s { int origin[2]; int width; int height; } dspriteframe_t; typedef struct dspritegroup_s { int numframes; } dspritegroup_t; typedef struct dspriteinterval_s { float interval; } dspriteinterval_t; typedef enum spriteframetype_e { SPR_SINGLE=0, SPR_GROUP } spriteframetype_t; typedef struct dspriteframetype_s { spriteframetype_t type; } dspriteframetype_t; # 33 "../../../model_sprite.h" 2 typedef struct mspriteframe_s { float up, down, left, right; } mspriteframe_t; # 735 "../../../model_shared.h" 2 # 1 "../../../model_alias.h" 1 # 33 "../../../model_alias.h" # 1 "../../../modelgen.h" 1 # 37 "../../../modelgen.h" typedef enum aliasframetype_e { ALIAS_SINGLE=0, ALIAS_GROUP } aliasframetype_t; typedef enum aliasskintype_e { ALIAS_SKIN_SINGLE=0, ALIAS_SKIN_GROUP } aliasskintype_t; typedef struct mdl_s { int ident; int version; vec3_t scale; vec3_t scale_origin; float boundingradius; vec3_t eyeposition; int numskins; int skinwidth; int skinheight; int numverts; int numtris; int numframes; synctype_t synctype; int flags; float size; } mdl_t; typedef struct stvert_s { int onseam; int s; int t; } stvert_t; typedef struct dtriangle_s { int facesfront; int vertindex[3]; } dtriangle_t; typedef struct trivertx_s { unsigned char v[3]; unsigned char lightnormalindex; } trivertx_t; typedef struct daliasframe_s { trivertx_t bboxmin; trivertx_t bboxmax; char name[16]; } daliasframe_t; typedef struct daliasgroup_s { int numframes; trivertx_t bboxmin; trivertx_t bboxmax; } daliasgroup_t; typedef struct daliasskingroup_s { int numskins; } daliasskingroup_t; typedef struct daliasinterval_s { float interval; } daliasinterval_t; typedef struct daliasskininterval_s { float interval; } daliasskininterval_t; typedef struct daliasframetype_s { aliasframetype_t type; } daliasframetype_t; typedef struct daliasskintype_s { aliasskintype_t type; } daliasskintype_t; # 34 "../../../model_alias.h" 2 typedef struct daliashdr_s { int ident; int version; vec3_t scale; vec3_t scale_origin; float boundingradius; vec3_t eyeposition; int numskins; int skinwidth; int skinheight; int numverts; int numtris; int numframes; synctype_t synctype; int flags; float size; } daliashdr_t; # 69 "../../../model_alias.h" typedef struct md2stvert_s { short s; short t; } md2stvert_t; typedef struct md2triangle_s { short index_xyz[3]; short index_st[3]; } md2triangle_t; typedef struct md2frame_s { float scale[3]; float translate[3]; char name[16]; } md2frame_t; # 97 "../../../model_alias.h" typedef struct md2_s { int ident; int version; int skinwidth; int skinheight; int framesize; int num_skins; int num_xyz; int num_st; int num_tris; int num_glcmds; int num_frames; int ofs_skins; int ofs_st; int ofs_tris; int ofs_frames; int ofs_glcmds; int ofs_end; } md2_t; # 130 "../../../model_alias.h" typedef struct md3vertex_s { short origin[3]; unsigned char pitch; unsigned char yaw; } md3vertex_t; typedef struct md3frameinfo_s { float mins[3]; float maxs[3]; float origin[3]; float radius; char name[16]; } md3frameinfo_t; typedef struct md3tag_s { char name[64]; float origin[3]; float rotationmatrix[9]; } md3tag_t; typedef struct md3shader_s { char name[64]; int shadernum; } md3shader_t; # 174 "../../../model_alias.h" typedef struct md3mesh_s { char identifier[4]; char name[64]; int flags; int num_frames; int num_shaders; int num_vertices; int num_triangles; int lump_elements; int lump_shaders; int lump_texcoords; int lump_framevertices; int lump_end; } md3mesh_t; typedef struct md3modelheader_s { char identifier[4]; int version; char name[64]; int flags; int num_frames; int num_tags; int num_meshes; int num_skins; int lump_frameinfo; int lump_tags; int lump_meshes; int lump_end; } md3modelheader_t; typedef struct aliastag_s { char name[64]; float matrixgl[12]; } aliastag_t; typedef struct aliasbone_s { char name[64]; int flags; int parent; } aliasbone_t; # 1 "../../../model_zymotic.h" 1 typedef struct zymlump_s { int start; int length; } zymlump_t; typedef struct zymtype1header_s { char id[12]; int type; int filesize; float mins[3], maxs[3], radius; int numverts; int numtris; int numshaders; int numbones; int numscenes; zymlump_t lump_scenes; zymlump_t lump_poses; zymlump_t lump_bones; zymlump_t lump_vertbonecounts; zymlump_t lump_verts; zymlump_t lump_texcoords; zymlump_t lump_render; zymlump_t lump_shaders; zymlump_t lump_trizone; } zymtype1header_t; typedef struct zymbone_s { char name[32]; int flags; int parent; } zymbone_t; typedef struct zymscene_s { char name[32]; float mins[3], maxs[3], radius; float framerate; int flags; int start, length; } zymscene_t; typedef struct zymvertex_s { int bonenum; float origin[3]; } zymvertex_t; # 228 "../../../model_alias.h" 2 # 1 "../../../model_dpmodel.h" 1 # 39 "../../../model_dpmodel.h" typedef struct dpmheader_s { char id[16]; unsigned int type; unsigned int filesize; float mins[3], maxs[3], yawradius, allradius; unsigned int num_bones; unsigned int num_meshs; unsigned int num_frames; unsigned int ofs_bones; unsigned int ofs_meshs; unsigned int ofs_frames; } dpmheader_t; typedef struct dpmmesh_s { char shadername[32]; unsigned int num_verts; unsigned int num_tris; unsigned int ofs_verts; unsigned int ofs_texcoords; unsigned int ofs_indices; unsigned int ofs_groupids; } dpmmesh_t; typedef struct dpmbone_s { char name[32]; signed int parent; unsigned int flags; } dpmbone_t; typedef struct dpmbonepose_s { float matrix[3][4]; } dpmbonepose_t; typedef struct dpmframe_s { char name[32]; float mins[3], maxs[3], yawradius, allradius; int ofs_bonepositions; } dpmframe_t; typedef struct dpmbonevert_s { float origin[3]; float influence; float normal[3]; unsigned int bonenum; } dpmbonevert_t; typedef struct dpmvertex_s { unsigned int numbones; } dpmvertex_t; # 230 "../../../model_alias.h" 2 # 1 "../../../model_psk.h" 1 typedef struct pskchunk_s { # 21 "../../../model_psk.h" char id[20]; int version; int recordsize; int numrecords; } pskchunk_t; typedef struct pskpnts_s { float origin[3]; } pskpnts_t; typedef struct pskvtxw_s { unsigned short pntsindex; unsigned char unknown1[2]; float texcoord[2]; unsigned char mattindex; unsigned char unknown2; unsigned char unknown3[2]; } pskvtxw_t; typedef struct pskface_s { unsigned short vtxwindex[3]; unsigned char mattindex; unsigned char unknown; unsigned int group; } pskface_t; typedef struct pskmatt_s { char name[64]; int unknown[6]; } pskmatt_t; typedef struct pskpose_s { float quat[4]; float origin[3]; float unknown; float size[3]; } pskpose_t; typedef struct pskboneinfo_s { char name[64]; int unknown1; int numchildren; int parent; pskpose_t basepose; } pskboneinfo_t; typedef struct pskrawweights_s { float weight; int pntsindex; int boneindex; } pskrawweights_t; typedef struct pskaniminfo_s { char name[64]; char group[64]; int numbones; int unknown1; int unknown2; int unknown3; float unknown4; float playtime; float fps; int unknown5; int firstframe; int numframes; } pskaniminfo_t; typedef struct pskanimkeys_s { float origin[3]; float quat[4]; float frametime; } pskanimkeys_t; # 232 "../../../model_alias.h" 2 # 1 "../../../model_iqm.h" 1 typedef struct iqmheader_s { char id[16]; unsigned int version; unsigned int filesize; unsigned int flags; unsigned int num_text, ofs_text; unsigned int num_meshes, ofs_meshes; unsigned int num_vertexarrays, num_vertexes, ofs_vertexarrays; unsigned int num_triangles, ofs_triangles, ofs_neighbors; unsigned int num_joints, ofs_joints; unsigned int num_poses, ofs_poses; unsigned int num_anims, ofs_anims; unsigned int num_frames, num_framechannels, ofs_frames, ofs_bounds; unsigned int num_comment, ofs_comment; unsigned int num_extensions, ofs_extensions; } iqmheader_t; typedef struct iqmmesh_s { unsigned int name; unsigned int material; unsigned int first_vertex, num_vertexes; unsigned int first_triangle, num_triangles; } iqmmesh_t; # 54 "../../../model_iqm.h" typedef struct iqmtriangle_s { unsigned int vertex[3]; } iqmtriangle_t; typedef struct iqmjoint1_s { unsigned int name; signed int parent; float origin[3], rotation[3], scale[3]; } iqmjoint1_t; typedef struct iqmjoint_s { unsigned int name; signed int parent; float origin[3], rotation[4], scale[3]; } iqmjoint_t; typedef struct iqmpose1_s { signed int parent; unsigned int channelmask; float channeloffset[9], channelscale[9]; } iqmpose1_t; typedef struct iqmpose_s { signed int parent; unsigned int channelmask; float channeloffset[10], channelscale[10]; } iqmpose_t; typedef struct iqmanim_s { unsigned int name; unsigned int first_frame, num_frames; float framerate; unsigned int flags; } iqmanim_t; typedef struct iqmvertexarray_s { unsigned int type; unsigned int flags; unsigned int format; unsigned int size; unsigned int offset; } iqmvertexarray_t; typedef struct iqmextension_s { unsigned int name; unsigned int num_data, ofs_data; unsigned int ofs_extensions; } iqmextension_t; typedef struct iqmbounds_s { float mins[3], maxs[3]; float xyradius, radius; } iqmbounds_t; # 234 "../../../model_alias.h" 2 extern float mod_md3_sin[320]; extern cvar_t r_skeletal_debugbone; extern cvar_t r_skeletal_debugbonecomponent; extern cvar_t r_skeletal_debugbonevalue; extern cvar_t r_skeletal_debugtranslatex; extern cvar_t r_skeletal_debugtranslatey; extern cvar_t r_skeletal_debugtranslatez; struct model_s; struct frameblend_s; void *Mod_Skeletal_AnimateVertices_AllocBuffers(size_t nbytes); void Mod_Skeletal_BuildTransforms(const struct model_s * __restrict model, const struct frameblend_s * __restrict frameblend, const skeleton_t *skeleton, float * __restrict bonepose, float * __restrict boneposerelative); # 736 "../../../model_shared.h" 2 typedef struct model_sprite_s { int sprnum_type; mspriteframe_t *sprdata_frames; } model_sprite_t; struct trace_s; typedef struct model_brush_lightstyleinfo_s { int style; int value; int numsurfaces; int *surfacelist; } model_brush_lightstyleinfo_t; typedef struct model_brush_s { qboolean ishlbsp; qboolean isbsp2rmqe; qboolean isbsp2; qboolean isq2bsp; qboolean isq3bsp; qboolean skymasking; char *entities; struct model_s *parentmodel; int submodel; int numsubmodels; struct model_s **submodels; int num_planes; mplane_t *data_planes; int num_nodes; mnode_t *data_nodes; int num_visleafs; int num_leafs; mleaf_t *data_leafs; int num_leafbrushes; int *data_leafbrushes; int num_leafsurfaces; int *data_leafsurfaces; int num_portals; mportal_t *data_portals; int num_portalpoints; mvertex_t *data_portalpoints; int num_brushes; q3mbrush_t *data_brushes; int num_brushsides; q3mbrushside_t *data_brushsides; int num_pvsclusters; int num_pvsclusterbytes; unsigned char *data_pvsclusters; int num_collisionvertices; int num_collisiontriangles; float *data_collisionvertex3f; int *data_collisionelement3i; shadowmesh_t *shadowmesh; shadowmesh_t *collisionmesh; int (*SuperContentsFromNativeContents)(struct model_s *model, int nativecontents); int (*NativeContentsFromSuperContents)(struct model_s *model, int supercontents); unsigned char *(*GetPVS)(struct model_s *model, const vec3_t p); int (*FatPVS)(struct model_s *model, const vec3_t org, vec_t radius, unsigned char *pvsbuffer, int pvsbufferlength, qboolean merge); int (*BoxTouchingPVS)(struct model_s *model, const unsigned char *pvs, const vec3_t mins, const vec3_t maxs); int (*BoxTouchingLeafPVS)(struct model_s *model, const unsigned char *pvs, const vec3_t mins, const vec3_t maxs); int (*BoxTouchingVisibleLeafs)(struct model_s *model, const unsigned char *visibleleafs, const vec3_t mins, const vec3_t maxs); int (*FindBoxClusters)(struct model_s *model, const vec3_t mins, const vec3_t maxs, int maxclusters, int *clusterlist); void (*LightPoint)(struct model_s *model, const vec3_t p, vec3_t ambientcolor, vec3_t diffusecolor, vec3_t diffusenormal); void (*FindNonSolidLocation)(struct model_s *model, const vec3_t in, vec3_t out, vec_t radius); mleaf_t *(*PointInLeaf)(struct model_s *model, const vec3_t p); void (*AmbientSoundLevelsForPoint)(struct model_s *model, const vec3_t p, unsigned char *out, int outsize); void (*RoundUpToHullSize)(struct model_s *cmodel, const vec3_t inmins, const vec3_t inmaxs, vec3_t outmins, vec3_t outmaxs); qboolean (*TraceLineOfSight)(struct model_s *model, const vec3_t start, const vec3_t end); char skybox[128]; skinframe_t *solidskyskinframe; skinframe_t *alphaskyskinframe; qboolean supportwateralpha; int qw_md4sum; int qw_md4sum2; } model_brush_t; typedef struct model_brushq1_s { mmodel_t *submodels; int numvertexes; mvertex_t *vertexes; int numedges; medge_t *edges; int numtexinfo; mtexinfo_t *texinfo; int numsurfedges; int *surfedges; int numclipnodes; mclipnode_t *clipnodes; hull_t hulls[16]; int num_compressedpvs; unsigned char *data_compressedpvs; int num_lightdata; unsigned char *lightdata; unsigned char *nmaplightdata; int num_lightstyles; model_brush_lightstyleinfo_t *data_lightstyleinfo; unsigned char *lightmapupdateflags; qboolean firstrender; } model_brushq1_t; typedef struct model_brushq2_s { int dummy; } model_brushq2_t; typedef struct model_brushq3_s { int num_models; q3dmodel_t *data_models; int num_vertices; float *data_vertex3f; float *data_normal3f; float *data_texcoordtexture2f; float *data_texcoordlightmap2f; float *data_color4f; int num_triangles; int *data_element3i; int num_effects; q3deffect_t *data_effects; int num_originallightmaps; int num_mergedlightmaps; int num_lightmapmergedwidthpower; int num_lightmapmergedheightpower; int num_lightmapmergedwidthheightdeluxepower; int num_lightmapmerge; rtexture_t **data_lightmaps; rtexture_t **data_deluxemaps; int num_lightgrid; q3dlightgrid_t *data_lightgrid; float num_lightgrid_cellsize[3]; float num_lightgrid_scale[3]; int num_lightgrid_imins[3]; int num_lightgrid_imaxs[3]; int num_lightgrid_isize[3]; matrix4x4_t num_lightgrid_indexfromworld; qboolean deluxemapping; qboolean deluxemapping_modelspace; int lightmapsize; } model_brushq3_t; struct frameblend_s; struct skeleton_s; typedef struct model_s { char name[128]; qboolean loaded; qboolean used; unsigned int crc; modtype_t type; mempool_t *mempool; rtexturepool_t *texturepool; int effects; int numframes; int numskins; synctype_t synctype; vec3_t normalmins, normalmaxs; vec3_t yawmins, yawmaxs; vec3_t rotatedmins, rotatedmaxs; float radius; float radius2; animscene_t *skinscenes; animscene_t *animscenes; int firstmodelsurface; int nummodelsurfaces; int *sortedmodelsurfaces; int firstmodelbrush; int nummodelbrushes; bih_t collision_bih; bih_t render_bih; int num_tags; int num_tagframes; aliastag_t *data_tags; int num_bones; aliasbone_t *data_bones; float num_posescale; float num_poseinvscale; int num_poses; short *data_poses7s; float *data_baseboneposeinverse; int num_textures; int num_texturesperskin; texture_t *data_textures; qboolean wantnormals; qboolean wanttangents; int num_surfaces; msurface_t *data_surfaces; msurface_lightmapinfo_t *data_surfaces_lightmapinfo; surfmesh_t surfmesh; const char *modeldatatypestring; void(*AnimateVertices)(const struct model_s * __restrict model, const struct frameblend_s * __restrict frameblend, const struct skeleton_s *skeleton, float * __restrict vertex3f, float * __restrict normal3f, float * __restrict svector3f, float * __restrict tvector3f); void(*DrawSky)(struct entity_render_s *ent); void(*DrawAddWaterPlanes)(struct entity_render_s *ent); void(*Draw)(struct entity_render_s *ent); void(*DrawDepth)(struct entity_render_s *ent); void(*DrawDebug)(struct entity_render_s *ent); void(*DrawPrepass)(struct entity_render_s *ent); void(*CompileShadowMap)(struct entity_render_s *ent, vec3_t relativelightorigin, vec3_t relativelightdirection, float lightradius, int numsurfaces, const int *surfacelist); void(*DrawShadowMap)(int side, struct entity_render_s *ent, const vec3_t relativelightorigin, const vec3_t relativelightdirection, float lightradius, int numsurfaces, const int *surfacelist, const unsigned char *surfacesides, const vec3_t lightmins, const vec3_t lightmaxs); void(*GetLightInfo)(struct entity_render_s *ent, vec3_t relativelightorigin, float lightradius, vec3_t outmins, vec3_t outmaxs, int *outleaflist, unsigned char *outleafpvs, int *outnumleafspointer, int *outsurfacelist, unsigned char *outsurfacepvs, int *outnumsurfacespointer, unsigned char *outshadowtrispvs, unsigned char *outlighttrispvs, unsigned char *visitingleafpvs, int numfrustumplanes, const mplane_t *frustumplanes); void(*CompileShadowVolume)(struct entity_render_s *ent, vec3_t relativelightorigin, vec3_t relativelightdirection, float lightradius, int numsurfaces, const int *surfacelist); void(*DrawShadowVolume)(struct entity_render_s *ent, const vec3_t relativelightorigin, const vec3_t relativelightdirection, float lightradius, int numsurfaces, const int *surfacelist, const vec3_t lightmins, const vec3_t lightmaxs); void(*DrawLight)(struct entity_render_s *ent, int numsurfaces, const int *surfacelist, const unsigned char *trispvs); void (*TraceBox)(struct model_s *model, const struct frameblend_s *frameblend, const struct skeleton_s *skeleton, struct trace_s *trace, const vec3_t start, const vec3_t boxmins, const vec3_t boxmaxs, const vec3_t end, int hitsupercontentsmask); void (*TraceBrush)(struct model_s *model, const struct frameblend_s *frameblend, const struct skeleton_s *skeleton, struct trace_s *trace, struct colbrushf_s *start, struct colbrushf_s *end, int hitsupercontentsmask); void (*TraceLine)(struct model_s *model, const struct frameblend_s *frameblend, const struct skeleton_s *skeleton, struct trace_s *trace, const vec3_t start, const vec3_t end, int hitsupercontentsmask); void (*TracePoint)(struct model_s *model, const struct frameblend_s *frameblend, const struct skeleton_s *skeleton, struct trace_s *trace, const vec3_t start, int hitsupercontentsmask); int (*PointSuperContents)(struct model_s *model, int frame, const vec3_t point); void (*TraceLineAgainstSurfaces)(struct model_s *model, const struct frameblend_s *frameblend, const struct skeleton_s *skeleton, struct trace_s *trace, const vec3_t start, const vec3_t end, int hitsupercontentsmask); model_sprite_t sprite; model_brush_t brush; model_brushq1_t brushq1; model_brushq2_t brushq2; model_brushq3_t brushq3; int soundfromcenter; qboolean lit; float lightmapscale; } dp_model_t; extern dp_model_t *loadmodel; extern unsigned char *mod_base; extern cvar_t r_fullbrights; extern cvar_t r_enableshadowvolumes; void Mod_Init (void); void Mod_Reload (void); dp_model_t *Mod_LoadModel(dp_model_t *mod, qboolean crash, qboolean checkdisk); dp_model_t *Mod_FindName (const char *name, const char *parentname); dp_model_t *Mod_ForName (const char *name, qboolean crash, qboolean checkdisk, const char *parentname); void Mod_UnloadModel (dp_model_t *mod); void Mod_ClearUsed(void); void Mod_PurgeUnused(void); void Mod_RemoveStaleWorldModels(dp_model_t *skip); extern dp_model_t *loadmodel; extern char loadname[32]; int Mod_BuildVertexRemapTableFromElements(int numelements, const int *elements, int numvertices, int *remapvertices); void Mod_BuildTriangleNeighbors(int *neighbors, const int *elements, int numtriangles); void Mod_ValidateElements(int *elements, int numtriangles, int firstvertex, int numverts, const char *filename, int fileline); void Mod_BuildNormals(int firstvertex, int numvertices, int numtriangles, const float *vertex3f, const int *elements, float *normal3f, qboolean areaweighting); void Mod_BuildTextureVectorsFromNormals(int firstvertex, int numvertices, int numtriangles, const float *vertex3f, const float *texcoord2f, const float *normal3f, const int *elements, float *svector3f, float *tvector3f, qboolean areaweighting); void Mod_AllocSurfMesh(mempool_t *mempool, int numvertices, int numtriangles, qboolean lightmapoffsets, qboolean vertexcolors, qboolean neighbors); void Mod_MakeSortedSurfaces(dp_model_t *mod); void Mod_BuildVBOs(void); shadowmesh_t *Mod_ShadowMesh_Alloc(mempool_t *mempool, int maxverts, int maxtriangles, rtexture_t *map_diffuse, rtexture_t *map_specular, rtexture_t *map_normal, int light, int neighbors, int expandable); shadowmesh_t *Mod_ShadowMesh_ReAlloc(mempool_t *mempool, shadowmesh_t *oldmesh, int light, int neighbors); int Mod_ShadowMesh_AddVertex(shadowmesh_t *mesh, float *vertex14f); void Mod_ShadowMesh_AddTriangle(mempool_t *mempool, shadowmesh_t *mesh, rtexture_t *map_diffuse, rtexture_t *map_specular, rtexture_t *map_normal, float *vertex14f); void Mod_ShadowMesh_AddMesh(mempool_t *mempool, shadowmesh_t *mesh, rtexture_t *map_diffuse, rtexture_t *map_specular, rtexture_t *map_normal, const float *vertex3f, const float *svector3f, const float *tvector3f, const float *normal3f, const float *texcoord2f, int numtris, const int *element3i); shadowmesh_t *Mod_ShadowMesh_Begin(mempool_t *mempool, int maxverts, int maxtriangles, rtexture_t *map_diffuse, rtexture_t *map_specular, rtexture_t *map_normal, int light, int neighbors, int expandable); shadowmesh_t *Mod_ShadowMesh_Finish(mempool_t *mempool, shadowmesh_t *firstmesh, qboolean light, qboolean neighbors, qboolean createvbo); void Mod_ShadowMesh_CalcBBox(shadowmesh_t *firstmesh, vec3_t mins, vec3_t maxs, vec3_t center, float *radius); void Mod_ShadowMesh_Free(shadowmesh_t *mesh); void Mod_CreateCollisionMesh(dp_model_t *mod); void Mod_FreeQ3Shaders(void); void Mod_LoadQ3Shaders(void); q3shaderinfo_t *Mod_LookupQ3Shader(const char *name); qboolean Mod_LoadTextureFromQ3Shader(texture_t *texture, const char *name, qboolean warnmissing, qboolean fallback, int defaulttexflags); extern cvar_t r_mipskins; extern cvar_t r_mipnormalmaps; typedef struct skinfileitem_s { struct skinfileitem_s *next; char name[128]; char replacement[128]; } skinfileitem_t; typedef struct skinfile_s { struct skinfile_s *next; skinfileitem_t *items; } skinfile_t; skinfile_t *Mod_LoadSkinFiles(void); void Mod_FreeSkinFiles(skinfile_t *skinfile); int Mod_CountSkinFiles(skinfile_t *skinfile); void Mod_BuildAliasSkinsFromSkinFiles(texture_t *skin, skinfile_t *skinfile, const char *meshname, const char *shadername); void Mod_SnapVertices(int numcomponents, int numvertices, float *vertices, float snap); int Mod_RemoveDegenerateTriangles(int numtriangles, const int *inelement3i, int *outelement3i, const float *vertex3f); void Mod_VertexRangeFromElements(int numelements, const int *elements, int *firstvertexpointer, int *lastvertexpointer); typedef struct mod_alloclightmap_row_s { int rowY; int currentX; } mod_alloclightmap_row_t; typedef struct mod_alloclightmap_state_s { int width; int height; int currentY; mod_alloclightmap_row_t *rows; } mod_alloclightmap_state_t; void Mod_AllocLightmap_Init(mod_alloclightmap_state_t *state, int width, int height); void Mod_AllocLightmap_Free(mod_alloclightmap_state_t *state); void Mod_AllocLightmap_Reset(mod_alloclightmap_state_t *state); qboolean Mod_AllocLightmap_Block(mod_alloclightmap_state_t *state, int blockwidth, int blockheight, int *outx, int *outy); void Mod_BrushInit(void); int Mod_Q1BSP_NativeContentsFromSuperContents(struct model_s *model, int supercontents); int Mod_Q1BSP_SuperContentsFromNativeContents(struct model_s *model, int nativecontents); int Mod_Q2BSP_SuperContentsFromNativeContents(dp_model_t *model, int nativecontents); int Mod_Q2BSP_NativeContentsFromSuperContents(dp_model_t *model, int supercontents); struct entity_render_s; void R_Q1BSP_DrawAddWaterPlanes(struct entity_render_s *ent); void R_Q1BSP_DrawSky(struct entity_render_s *ent); void R_Q1BSP_Draw(struct entity_render_s *ent); void R_Q1BSP_DrawDepth(struct entity_render_s *ent); void R_Q1BSP_DrawDebug(struct entity_render_s *ent); void R_Q1BSP_DrawPrepass(struct entity_render_s *ent); void R_Q1BSP_GetLightInfo(struct entity_render_s *ent, vec3_t relativelightorigin, float lightradius, vec3_t outmins, vec3_t outmaxs, int *outleaflist, unsigned char *outleafpvs, int *outnumleafspointer, int *outsurfacelist, unsigned char *outsurfacepvs, int *outnumsurfacespointer, unsigned char *outshadowtrispvs, unsigned char *outlighttrispvs, unsigned char *visitingleafpvs, int numfrustumplanes, const mplane_t *frustumplanes); void R_Q1BSP_CompileShadowMap(struct entity_render_s *ent, vec3_t relativelightorigin, vec3_t relativelightdirection, float lightradius, int numsurfaces, const int *surfacelist); void R_Q1BSP_DrawShadowMap(int side, struct entity_render_s *ent, const vec3_t relativelightorigin, const vec3_t relativelightdirection, float lightradius, int modelnumsurfaces, const int *modelsurfacelist, const unsigned char *surfacesides, const vec3_t lightmins, const vec3_t lightmaxs); void R_Q1BSP_CompileShadowVolume(struct entity_render_s *ent, vec3_t relativelightorigin, vec3_t relativelightdirection, float lightradius, int numsurfaces, const int *surfacelist); void R_Q1BSP_DrawShadowVolume(struct entity_render_s *ent, const vec3_t relativelightorigin, const vec3_t relativelightdirection, float lightradius, int numsurfaces, const int *surfacelist, const vec3_t lightmins, const vec3_t lightmaxs); void R_Q1BSP_DrawLight(struct entity_render_s *ent, int numsurfaces, const int *surfacelist, const unsigned char *trispvs); void Mod_CollisionBIH_TracePoint(dp_model_t *model, const struct frameblend_s *frameblend, const skeleton_t *skeleton, struct trace_s *trace, const vec3_t start, int hitsupercontentsmask); void Mod_CollisionBIH_TraceLine(dp_model_t *model, const struct frameblend_s *frameblend, const skeleton_t *skeleton, struct trace_s *trace, const vec3_t start, const vec3_t end, int hitsupercontentsmask); void Mod_CollisionBIH_TraceBox(dp_model_t *model, const struct frameblend_s *frameblend, const skeleton_t *skeleton, struct trace_s *trace, const vec3_t start, const vec3_t boxmins, const vec3_t boxmaxs, const vec3_t end, int hitsupercontentsmask); void Mod_CollisionBIH_TraceBrush(dp_model_t *model, const struct frameblend_s *frameblend, const skeleton_t *skeleton, struct trace_s *trace, struct colbrushf_s *start, struct colbrushf_s *end, int hitsupercontentsmask); void Mod_CollisionBIH_TracePoint_Mesh(dp_model_t *model, const struct frameblend_s *frameblend, const skeleton_t *skeleton, struct trace_s *trace, const vec3_t start, int hitsupercontentsmask); qboolean Mod_CollisionBIH_TraceLineOfSight(struct model_s *model, const vec3_t start, const vec3_t end); int Mod_CollisionBIH_PointSuperContents(struct model_s *model, int frame, const vec3_t point); int Mod_CollisionBIH_PointSuperContents_Mesh(struct model_s *model, int frame, const vec3_t point); bih_t *Mod_MakeCollisionBIH(dp_model_t *model, qboolean userendersurfaces, bih_t *out); struct frameblend_s; struct skeleton_s; void Mod_AliasInit(void); int Mod_Alias_GetTagMatrix(const dp_model_t *model, const struct frameblend_s *frameblend, const struct skeleton_s *skeleton, int tagindex, matrix4x4_t *outmatrix); int Mod_Alias_GetTagIndexForName(const dp_model_t *model, unsigned int skin, const char *tagname); int Mod_Alias_GetExtendedTagInfoForIndex(const dp_model_t *model, unsigned int skin, const struct frameblend_s *frameblend, const struct skeleton_s *skeleton, int tagindex, int *parentindex, const char **tagname, matrix4x4_t *tag_localmatrix); void Mod_Skeletal_FreeBuffers(void); void Mod_SpriteInit(void); void Mod_Q1BSP_Load(dp_model_t *mod, void *buffer, void *bufferend); void Mod_IBSP_Load(dp_model_t *mod, void *buffer, void *bufferend); void Mod_MAP_Load(dp_model_t *mod, void *buffer, void *bufferend); void Mod_OBJ_Load(dp_model_t *mod, void *buffer, void *bufferend); void Mod_IDP0_Load(dp_model_t *mod, void *buffer, void *bufferend); void Mod_IDP2_Load(dp_model_t *mod, void *buffer, void *bufferend); void Mod_IDP3_Load(dp_model_t *mod, void *buffer, void *bufferend); void Mod_ZYMOTICMODEL_Load(dp_model_t *mod, void *buffer, void *bufferend); void Mod_DARKPLACESMODEL_Load(dp_model_t *mod, void *buffer, void *bufferend); void Mod_PSKMODEL_Load(dp_model_t *mod, void *buffer, void *bufferend); void Mod_IDSP_Load(dp_model_t *mod, void *buffer, void *bufferend); void Mod_IDS2_Load(dp_model_t *mod, void *buffer, void *bufferend); void Mod_INTERQUAKEMODEL_Load(dp_model_t *mod, void *buffer, void *bufferend); # 393 "../../../quakedef.h" 2 # 1 "../../../world.h" 1 # 25 "../../../world.h" # 1 "../../../collision.h" 1 typedef union plane_s { struct { vec3_t normal; vec_t dist; }; vec4_t normal_and_dist; } plane_t; struct texture_s; typedef struct trace_s { int allsolid; int startsolid; int worldstartsolid; int bmodelstartsolid; int inopen; int inwater; double fraction; double endpos[3]; plane_t plane; void *ent; int hitsupercontentsmask; int startsupercontents; int hitsupercontents; int hitq3surfaceflags; const struct texture_s *hittexture; int startfound; double startdepth; double startdepthnormal[3]; } trace_t; void Collision_Init(void); void Collision_ClipTrace_Box(trace_t *trace, const vec3_t cmins, const vec3_t cmaxs, const vec3_t start, const vec3_t mins, const vec3_t maxs, const vec3_t end, int hitsupercontentsmask, int boxsupercontents, int boxq3surfaceflags, const texture_t *boxtexture); void Collision_ClipTrace_Point(trace_t *trace, const vec3_t cmins, const vec3_t cmaxs, const vec3_t start, int hitsupercontentsmask, int boxsupercontents, int boxq3surfaceflags, const texture_t *boxtexture); void Collision_Cache_Reset(qboolean resetlimits); void Collision_Cache_Init(mempool_t *mempool); void Collision_Cache_NewFrame(void); typedef struct colpointf_s { vec3_t v; } colpointf_t; typedef struct colplanef_s { const struct texture_s *texture; int q3surfaceflags; union { struct { vec3_t normal; vec_t dist; }; vec4_t normal_and_dist; }; } colplanef_t; typedef struct colbrushf_s { vec3_t mins; vec3_t maxs; int markframe; int supercontents; int numplanes; colplanef_t *planes; int numedgedirs; colpointf_t *edgedirs; int numpoints; colpointf_t *points; int numtriangles; int *elements; const struct texture_s *texture; int q3surfaceflags; int isaabb; int hasaabbplanes; } colbrushf_t; typedef struct colboxbrushf_s { colpointf_t points[8]; colpointf_t edgedirs[6]; colplanef_t planes[6]; colbrushf_t brush; } colboxbrushf_t; void Collision_CalcPlanesForTriangleBrushFloat(colbrushf_t *brush); colbrushf_t *Collision_AllocBrushFromPermanentPolygonFloat(mempool_t *mempool, int numpoints, float *points, int supercontents, int q3surfaceflags, const texture_t *texture); colbrushf_t *Collision_NewBrushFromPlanes(mempool_t *mempool, int numoriginalplanes, const colplanef_t *originalplanes, int supercontents, int q3surfaceflags, const texture_t *texture, int hasaabbplanes); void Collision_TraceBrushBrushFloat(trace_t *trace, const colbrushf_t *thisbrush_start, const colbrushf_t *thisbrush_end, const colbrushf_t *thatbrush_start, const colbrushf_t *thatbrush_end); void Collision_TraceBrushTriangleMeshFloat(trace_t *trace, const colbrushf_t *thisbrush_start, const colbrushf_t *thisbrush_end, int numtriangles, const int *element3i, const float *vertex3f, int stride, float *bbox6f, int supercontents, int q3surfaceflags, const texture_t *texture, const vec3_t segmentmins, const vec3_t segmentmaxs); void Collision_TraceLineBrushFloat(trace_t *trace, const vec3_t linestart, const vec3_t lineend, const colbrushf_t *thatbrush_start, const colbrushf_t *thatbrush_end); void Collision_TraceLineTriangleMeshFloat(trace_t *trace, const vec3_t linestart, const vec3_t lineend, int numtriangles, const int *element3i, const float *vertex3f, int stride, float *bbox6f, int supercontents, int q3surfaceflags, const texture_t *texture, const vec3_t segmentmins, const vec3_t segmentmaxs); void Collision_TracePointBrushFloat(trace_t *trace, const vec3_t point, const colbrushf_t *thatbrush); qboolean Collision_PointInsideBrushFloat(const vec3_t point, const colbrushf_t *brush); void Collision_BrushForBox(colboxbrushf_t *boxbrush, const vec3_t mins, const vec3_t maxs, int supercontents, int q3surfaceflags, const texture_t *texture); void Collision_BoundingBoxOfBrushTraceSegment(const colbrushf_t *start, const colbrushf_t *end, vec3_t mins, vec3_t maxs, float startfrac, float endfrac); float Collision_ClipTrace_Line_Sphere(double *linestart, double *lineend, double *sphereorigin, double sphereradius, double *impactpoint, double *impactnormal); void Collision_TraceLineTriangleFloat(trace_t *trace, const vec3_t linestart, const vec3_t lineend, const float *point0, const float *point1, const float *point2, int supercontents, int q3surfaceflags, const texture_t *texture); void Collision_TraceBrushTriangleFloat(trace_t *trace, const colbrushf_t *thisbrush_start, const colbrushf_t *thisbrush_end, const float *v0, const float *v1, const float *v2, int supercontents, int q3surfaceflags, const texture_t *texture); # 164 "../../../collision.h" struct frameblend_s; struct skeleton_s; void Collision_ClipToGenericEntity(trace_t *trace, dp_model_t *model, const struct frameblend_s *frameblend, const struct skeleton_s *skeleton, const vec3_t bodymins, const vec3_t bodymaxs, int bodysupercontents, matrix4x4_t *matrix, matrix4x4_t *inversematrix, const vec3_t start, const vec3_t mins, const vec3_t maxs, const vec3_t end, int hitsupercontentsmask, float extend); void Collision_ClipLineToGenericEntity(trace_t *trace, dp_model_t *model, const struct frameblend_s *frameblend, const struct skeleton_s *skeleton, const vec3_t bodymins, const vec3_t bodymaxs, int bodysupercontents, matrix4x4_t *matrix, matrix4x4_t *inversematrix, const vec3_t start, const vec3_t end, int hitsupercontentsmask, float extend, qboolean hitsurfaces); void Collision_ClipPointToGenericEntity(trace_t *trace, dp_model_t *model, const struct frameblend_s *frameblend, const struct skeleton_s *skeleton, const vec3_t bodymins, const vec3_t bodymaxs, int bodysupercontents, matrix4x4_t *matrix, matrix4x4_t *inversematrix, const vec3_t start, int hitsupercontentsmask); void Collision_ClipToWorld(trace_t *trace, dp_model_t *model, const vec3_t start, const vec3_t mins, const vec3_t maxs, const vec3_t end, int hitsupercontents, float extend); void Collision_ClipLineToWorld(trace_t *trace, dp_model_t *model, const vec3_t start, const vec3_t end, int hitsupercontents, float extend, qboolean hitsurfaces); void Collision_ClipPointToWorld(trace_t *trace, dp_model_t *model, const vec3_t start, int hitsupercontents); void Collision_Cache_ClipLineToGenericEntitySurfaces(trace_t *trace, dp_model_t *model, matrix4x4_t *matrix, matrix4x4_t *inversematrix, const vec3_t start, const vec3_t end, int hitsupercontentsmask); void Collision_Cache_ClipLineToWorldSurfaces(trace_t *trace, dp_model_t *model, const vec3_t start, const vec3_t end, int hitsupercontents); void Collision_CombineTraces(trace_t *cliptrace, const trace_t *trace, void *touch, qboolean isbmodel); # 189 "../../../collision.h" extern cvar_t collision_impactnudge; extern cvar_t collision_extendtracelinelength; extern cvar_t collision_extendtraceboxlength; extern cvar_t collision_extendmovelength; # 26 "../../../world.h" 2 # 36 "../../../world.h" typedef struct link_s { int entitynumber; struct link_s *prev, *next; } link_t; typedef struct world_physics_s { qboolean ode; void *ode_world; void *ode_space; void *ode_contactgroup; int ode_iterations; vec_t ode_step; vec_t ode_time; int ode_numobjects; int ode_activeovjects; vec_t ode_movelimit; } world_physics_t; struct prvm_prog_s; typedef struct world_s { char filename[128]; vec3_t mins; vec3_t maxs; struct prvm_prog_s *prog; int areagrid_stats_calls; int areagrid_stats_nodechecks; int areagrid_stats_entitychecks; link_t areagrid[(128 * 128)]; link_t areagrid_outside; vec3_t areagrid_bias; vec3_t areagrid_scale; vec3_t areagrid_mins; vec3_t areagrid_maxs; vec3_t areagrid_size; int areagrid_marknumber; world_physics_t physics; } world_t; struct prvm_edict_s; void World_ClearLink(link_t *l); void World_RemoveLink(link_t *l); void World_InsertLinkBefore(link_t *l, link_t *before, int entitynumber); void World_Init(void); void World_Shutdown(void); void World_SetSize(world_t *world, const char *filename, const vec3_t mins, const vec3_t maxs, struct prvm_prog_s *prog); void World_UnlinkAll(world_t *world); void World_PrintAreaStats(world_t *world, const char *worldname); void World_UnlinkEdict(struct prvm_edict_s *ent); void World_LinkEdict(world_t *world, struct prvm_edict_s *ent, const vec3_t mins, const vec3_t maxs); int World_EntitiesInBox(world_t *world, const vec3_t mins, const vec3_t maxs, int maxlist, struct prvm_edict_s **list); void World_Start(world_t *world); void World_End(world_t *world); void World_Physics_Frame(world_t *world, double frametime, double gravity); struct prvm_edict_s; struct edict_odefunc_s; void World_Physics_ApplyCmd(struct prvm_edict_s *ed, struct edict_odefunc_s *f); void World_Physics_RemoveFromEntity(world_t *world, struct prvm_edict_s *ed); void World_Physics_RemoveJointFromEntity(world_t *world, struct prvm_edict_s *ed); # 394 "../../../quakedef.h" 2 # 1 "../../../client.h" 1 # 26 "../../../client.h" # 1 "../../../snd_main.h" 1 # 27 "../../../snd_main.h" typedef struct snd_format_s { unsigned int speed; unsigned short width; unsigned short channels; } snd_format_t; typedef struct snd_buffer_s { snd_format_t format; unsigned int nbframes; unsigned int maxframes; unsigned char samples[4]; } snd_buffer_t; typedef struct snd_ringbuffer_s { snd_format_t format; unsigned char* ring; unsigned int maxframes; unsigned int startframe; unsigned int endframe; } snd_ringbuffer_t; # 60 "../../../snd_main.h" typedef struct snd_fetcher_s snd_fetcher_t; struct sfx_s { char name[128]; sfx_t *next; size_t memsize; snd_format_t format; unsigned int flags; unsigned int loopstart; unsigned int total_length; const snd_fetcher_t *fetcher; void *fetcher_data; float volume_mult; float volume_peak; }; typedef struct channel_s { sfx_t *sfx; float basevolume; unsigned int flags; int entnum; int entchannel; vec3_t origin; vec_t distfade; void *fetcher_data; int prologic_invert; float basespeed; float mixspeed; float volume[8]; double position; } channel_t; typedef void (*snd_fetcher_getsamplesfloat_t) (channel_t *ch, sfx_t *sfx, int firstsampleframe, int numsampleframes, float *outsamplesfloat); typedef void (*snd_fetcher_stopchannel_t) (channel_t *ch); typedef void (*snd_fetcher_freesfx_t) (sfx_t *sfx); struct snd_fetcher_s { snd_fetcher_getsamplesfloat_t getsamplesfloat; snd_fetcher_stopchannel_t stopchannel; snd_fetcher_freesfx_t freesfx; }; extern unsigned int total_channels; extern channel_t channels[1028]; extern snd_ringbuffer_t *snd_renderbuffer; extern qboolean snd_threaded; extern qboolean snd_usethreadedmixing; extern cvar_t _snd_mixahead; extern cvar_t snd_swapstereo; extern cvar_t snd_streaming; extern cvar_t snd_streaming_length; extern cvar_t snd_channellayout; extern int snd_blocked; extern mempool_t *snd_mempool; extern qboolean simsound; # 152 "../../../snd_main.h" void S_MixToBuffer(void *stream, unsigned int frames); qboolean S_LoadSound (sfx_t *sfx, qboolean complain); snd_buffer_t *Snd_CreateSndBuffer (const unsigned char *samples, unsigned int sampleframes, const snd_format_t* in_format, unsigned int sb_speed); qboolean Snd_AppendToSndBuffer (snd_buffer_t* sb, const unsigned char *samples, unsigned int sampleframes, const snd_format_t* format); snd_ringbuffer_t *Snd_CreateRingBuffer (const snd_format_t* format, unsigned int sampleframes, void* buffer); # 170 "../../../snd_main.h" qboolean SndSys_Init (const snd_format_t* requested, snd_format_t* suggested); void SndSys_Shutdown (void); void SndSys_Submit (void); unsigned int SndSys_GetSoundTime (void); qboolean SndSys_LockRenderBuffer (void); void SndSys_UnlockRenderBuffer (void); void SndSys_SendKeyEvents(void); typedef struct portable_samplepair_s { float sample[8]; } portable_sampleframe_t; typedef struct listener_s { int channel_unswapped; float yawangle; float dotscale; float dotbias; float ambientvolume; } listener_t; typedef struct speakerlayout_s { const char *name; unsigned int channels; listener_t listeners[8]; } speakerlayout_t; # 27 "../../../client.h" 2 typedef enum r_stat_e { r_stat_timedelta, r_stat_quality, r_stat_renders, r_stat_entities, r_stat_entities_surfaces, r_stat_entities_triangles, r_stat_world_leafs, r_stat_world_portals, r_stat_world_surfaces, r_stat_world_triangles, r_stat_lightmapupdates, r_stat_lightmapupdatepixels, r_stat_particles, r_stat_drawndecals, r_stat_totaldecals, r_stat_draws, r_stat_draws_vertices, r_stat_draws_elements, r_stat_lights, r_stat_lights_clears, r_stat_lights_scissored, r_stat_lights_lighttriangles, r_stat_lights_shadowtriangles, r_stat_lights_dynamicshadowtriangles, r_stat_bouncegrid_lights, r_stat_bouncegrid_particles, r_stat_bouncegrid_traces, r_stat_bouncegrid_hits, r_stat_bouncegrid_splats, r_stat_bouncegrid_bounces, r_stat_photoncache_animated, r_stat_photoncache_cached, r_stat_photoncache_traced, r_stat_bloom, r_stat_bloom_copypixels, r_stat_bloom_drawpixels, r_stat_indexbufferuploadcount, r_stat_indexbufferuploadsize, r_stat_vertexbufferuploadcount, r_stat_vertexbufferuploadsize, r_stat_framedatacurrent, r_stat_framedatasize, r_stat_bufferdatacurrent_vertex, r_stat_bufferdatacurrent_index16, r_stat_bufferdatacurrent_index32, r_stat_bufferdatacurrent_uniform, r_stat_bufferdatasize_vertex, r_stat_bufferdatasize_index16, r_stat_bufferdatasize_index32, r_stat_bufferdatasize_uniform, r_stat_animcache_vertexmesh_count, r_stat_animcache_vertexmesh_vertices, r_stat_animcache_vertexmesh_maxvertices, r_stat_animcache_skeletal_count, r_stat_animcache_skeletal_bones, r_stat_animcache_skeletal_maxbones, r_stat_animcache_shade_count, r_stat_animcache_shade_vertices, r_stat_animcache_shade_maxvertices, r_stat_animcache_shape_count, r_stat_animcache_shape_vertices, r_stat_animcache_shape_maxvertices, r_stat_batch_batches, r_stat_batch_withgaps, r_stat_batch_surfaces, r_stat_batch_vertices, r_stat_batch_triangles, r_stat_batch_fast_batches, r_stat_batch_fast_surfaces, r_stat_batch_fast_vertices, r_stat_batch_fast_triangles, r_stat_batch_copytriangles_batches, r_stat_batch_copytriangles_surfaces, r_stat_batch_copytriangles_vertices, r_stat_batch_copytriangles_triangles, r_stat_batch_dynamic_batches, r_stat_batch_dynamic_surfaces, r_stat_batch_dynamic_vertices, r_stat_batch_dynamic_triangles, r_stat_batch_dynamicskeletal_batches, r_stat_batch_dynamicskeletal_surfaces, r_stat_batch_dynamicskeletal_vertices, r_stat_batch_dynamicskeletal_triangles, r_stat_batch_dynamic_batches_because_cvar, r_stat_batch_dynamic_surfaces_because_cvar, r_stat_batch_dynamic_vertices_because_cvar, r_stat_batch_dynamic_triangles_because_cvar, r_stat_batch_dynamic_batches_because_lightmapvertex, r_stat_batch_dynamic_surfaces_because_lightmapvertex, r_stat_batch_dynamic_vertices_because_lightmapvertex, r_stat_batch_dynamic_triangles_because_lightmapvertex, r_stat_batch_dynamic_batches_because_deformvertexes_autosprite, r_stat_batch_dynamic_surfaces_because_deformvertexes_autosprite, r_stat_batch_dynamic_vertices_because_deformvertexes_autosprite, r_stat_batch_dynamic_triangles_because_deformvertexes_autosprite, r_stat_batch_dynamic_batches_because_deformvertexes_autosprite2, r_stat_batch_dynamic_surfaces_because_deformvertexes_autosprite2, r_stat_batch_dynamic_vertices_because_deformvertexes_autosprite2, r_stat_batch_dynamic_triangles_because_deformvertexes_autosprite2, r_stat_batch_dynamic_batches_because_deformvertexes_normal, r_stat_batch_dynamic_surfaces_because_deformvertexes_normal, r_stat_batch_dynamic_vertices_because_deformvertexes_normal, r_stat_batch_dynamic_triangles_because_deformvertexes_normal, r_stat_batch_dynamic_batches_because_deformvertexes_wave, r_stat_batch_dynamic_surfaces_because_deformvertexes_wave, r_stat_batch_dynamic_vertices_because_deformvertexes_wave, r_stat_batch_dynamic_triangles_because_deformvertexes_wave, r_stat_batch_dynamic_batches_because_deformvertexes_bulge, r_stat_batch_dynamic_surfaces_because_deformvertexes_bulge, r_stat_batch_dynamic_vertices_because_deformvertexes_bulge, r_stat_batch_dynamic_triangles_because_deformvertexes_bulge, r_stat_batch_dynamic_batches_because_deformvertexes_move, r_stat_batch_dynamic_surfaces_because_deformvertexes_move, r_stat_batch_dynamic_vertices_because_deformvertexes_move, r_stat_batch_dynamic_triangles_because_deformvertexes_move, r_stat_batch_dynamic_batches_because_tcgen_lightmap, r_stat_batch_dynamic_surfaces_because_tcgen_lightmap, r_stat_batch_dynamic_vertices_because_tcgen_lightmap, r_stat_batch_dynamic_triangles_because_tcgen_lightmap, r_stat_batch_dynamic_batches_because_tcgen_vector, r_stat_batch_dynamic_surfaces_because_tcgen_vector, r_stat_batch_dynamic_vertices_because_tcgen_vector, r_stat_batch_dynamic_triangles_because_tcgen_vector, r_stat_batch_dynamic_batches_because_tcgen_environment, r_stat_batch_dynamic_surfaces_because_tcgen_environment, r_stat_batch_dynamic_vertices_because_tcgen_environment, r_stat_batch_dynamic_triangles_because_tcgen_environment, r_stat_batch_dynamic_batches_because_tcmod_turbulent, r_stat_batch_dynamic_surfaces_because_tcmod_turbulent, r_stat_batch_dynamic_vertices_because_tcmod_turbulent, r_stat_batch_dynamic_triangles_because_tcmod_turbulent, r_stat_batch_dynamic_batches_because_interleavedarrays, r_stat_batch_dynamic_surfaces_because_interleavedarrays, r_stat_batch_dynamic_vertices_because_interleavedarrays, r_stat_batch_dynamic_triangles_because_interleavedarrays, r_stat_batch_dynamic_batches_because_nogaps, r_stat_batch_dynamic_surfaces_because_nogaps, r_stat_batch_dynamic_vertices_because_nogaps, r_stat_batch_dynamic_triangles_because_nogaps, r_stat_batch_dynamic_batches_because_derived, r_stat_batch_dynamic_surfaces_because_derived, r_stat_batch_dynamic_vertices_because_derived, r_stat_batch_dynamic_triangles_because_derived, r_stat_batch_entitycache_count, r_stat_batch_entitycache_surfaces, r_stat_batch_entitycache_vertices, r_stat_batch_entitycache_triangles, r_stat_batch_entityanimate_count, r_stat_batch_entityanimate_surfaces, r_stat_batch_entityanimate_vertices, r_stat_batch_entityanimate_triangles, r_stat_batch_entityskeletal_count, r_stat_batch_entityskeletal_surfaces, r_stat_batch_entityskeletal_vertices, r_stat_batch_entityskeletal_triangles, r_stat_batch_entitystatic_count, r_stat_batch_entitystatic_surfaces, r_stat_batch_entitystatic_vertices, r_stat_batch_entitystatic_triangles, r_stat_batch_entitycustom_count, r_stat_batch_entitycustom_surfaces, r_stat_batch_entitycustom_vertices, r_stat_batch_entitycustom_triangles, r_stat_count } r_stat_t; typedef struct tridecal_s { float texcoord2f[3][2]; float vertex3f[3][3]; float color4f[3][4]; float plane[4]; float lived; int triangleindex; int surfaceindex; unsigned int decalsequence; } tridecal_t; typedef struct decalsystem_s { dp_model_t *model; double lastupdatetime; int maxdecals; int freedecal; int numdecals; tridecal_t *decals; float *vertex3f; float *texcoord2f; float *color4f; int *element3i; unsigned short *element3s; } decalsystem_t; typedef struct effect_s { int active; vec3_t origin; double starttime; float framerate; int modelindex; int startframe; int endframe; int frame; double frame1time; double frame2time; } cl_effect_t; typedef struct beam_s { int entity; int lightning; struct model_s *model; float endtime; vec3_t start, end; } beam_t; typedef struct rtlight_particle_s { float origin[3]; float color[3]; } rtlight_particle_t; typedef struct rtlight_s { matrix4x4_t matrix_lighttoworld; matrix4x4_t matrix_worldtolight; vec3_t color; vec_t radius; char cubemapname[64]; int style; int shadow; vec_t corona; vec_t coronasizescale; vec_t ambientscale; vec_t diffusescale; vec_t specularscale; int flags; vec3_t shadoworigin; vec3_t cullmins; vec3_t cullmaxs; vec3_t currentcolor; float corona_visibility; unsigned int corona_queryindex_visiblepixels; unsigned int corona_queryindex_allpixels; rtexture_t *currentcubemap; qboolean draw; int cached_numlightentities; int cached_numlightentities_noselfshadow; int cached_numshadowentities; int cached_numshadowentities_noselfshadow; int cached_numsurfaces; struct entity_render_s **cached_lightentities; struct entity_render_s **cached_lightentities_noselfshadow; struct entity_render_s **cached_shadowentities; struct entity_render_s **cached_shadowentities_noselfshadow; unsigned char *cached_shadowtrispvs; unsigned char *cached_lighttrispvs; int *cached_surfacelist; vec3_t cached_cullmins; vec3_t cached_cullmaxs; int cached_numfrustumplanes; mplane_t cached_frustumplanes[5]; int isstatic; int compiled; int shadowmode; shadowmesh_t *static_meshchain_shadow_zpass; shadowmesh_t *static_meshchain_shadow_zfail; shadowmesh_t *static_meshchain_shadow_shadowmap; int static_numleafs; int static_numleafpvsbytes; int *static_leaflist; unsigned char *static_leafpvs; int static_numsurfaces; int *static_surfacelist; int static_numshadowtrispvsbytes; unsigned char *static_shadowtrispvs; int static_numlighttrispvsbytes; unsigned char *static_lighttrispvs; int static_shadowmap_receivers; int static_shadowmap_casters; int particlecache_numparticles; int particlecache_maxparticles; int particlecache_updateparticle; rtlight_particle_t *particlecache_particles; float photoncolor[3]; float photons; } rtlight_t; typedef struct dlight_s { vec_t die; struct entity_render_s *ent; vec3_t origin; vec3_t angles; matrix4x4_t matrix; vec3_t color; char cubemapname[64]; int selected; vec_t radius; vec_t decay; vec_t intensity; vec_t initialradius; vec3_t initialcolor; int style; int shadow; vec_t corona; vec_t coronasizescale; vec_t ambientscale; vec_t diffusescale; vec_t specularscale; int flags; struct dlight_s *next; rtlight_t rtlight; } dlight_t; typedef struct frameblend_s { int subframe; float lerp; } frameblend_t; # 488 "../../../client.h" typedef struct entity_render_s { matrix4x4_t matrix; matrix4x4_t inversematrix; float alpha; float scale; float transparent_offset; dp_model_t *model; int entitynumber; vec3_t colormap_pantscolor; vec3_t colormap_shirtcolor; int effects; int internaleffects; int skinnum; int flags; float colormod[3]; float glowmod[3]; framegroupblend_t framegroupblend[4]; double shadertime; vec3_t mins, maxs; frameblend_t frameblend[(4 * 2)]; skeleton_t *skeleton; float *animcache_vertex3f; r_meshbuffer_t *animcache_vertex3f_vertexbuffer; int animcache_vertex3f_bufferoffset; float *animcache_normal3f; r_meshbuffer_t *animcache_normal3f_vertexbuffer; int animcache_normal3f_bufferoffset; float *animcache_svector3f; r_meshbuffer_t *animcache_svector3f_vertexbuffer; int animcache_svector3f_bufferoffset; float *animcache_tvector3f; r_meshbuffer_t *animcache_tvector3f_vertexbuffer; int animcache_tvector3f_bufferoffset; r_vertexmesh_t *animcache_vertexmesh; r_meshbuffer_t *animcache_vertexmesh_vertexbuffer; int animcache_vertexmesh_bufferoffset; float *animcache_skeletaltransform3x4; r_meshbuffer_t *animcache_skeletaltransform3x4buffer; int animcache_skeletaltransform3x4offset; int animcache_skeletaltransform3x4size; vec3_t modellight_ambient; vec3_t modellight_diffuse; vec3_t modellight_lightdir; int allowdecals; decalsystem_t decalsystem; double last_trace_visibility; vec_t userwavefunc_param[4]; } entity_render_t; typedef struct entity_persistent_s { vec3_t trail_origin; vec3_t oldorigin; vec3_t oldangles; vec3_t neworigin; vec3_t newangles; vec_t lerpstarttime; vec_t lerpdeltatime; float muzzleflash; float trail_time; qboolean trail_allowed; } entity_persistent_t; typedef struct entity_s { entity_state_t state_baseline; entity_state_t state_previous; entity_state_t state_current; entity_persistent_t persistent; entity_render_t render; } entity_t; typedef struct usercmd_s { vec3_t viewangles; float forwardmove; float sidemove; float upmove; vec3_t cursor_screen; vec3_t cursor_start; vec3_t cursor_end; vec3_t cursor_impact; vec3_t cursor_normal; vec_t cursor_fraction; int cursor_entitynumber; double time; double receivetime; double clienttime; int msec; int buttons; int impulse; unsigned int sequence; qboolean applied; qboolean predicted; double frametime; qboolean canjump; qboolean jump; qboolean crouch; } usercmd_t; typedef struct lightstyle_s { int length; char map[64]; } lightstyle_t; typedef struct scoreboard_s { char name[128]; int frags; int colors; int qw_userid; char qw_userinfo[1280]; float qw_entertime; int qw_ping; int qw_packetloss; int qw_movementloss; int qw_spectator; char qw_team[8]; char qw_skin[128]; } scoreboard_t; typedef struct cshift_s { float destcolor[3]; float percent; float alphafade; } cshift_t; # 698 "../../../client.h" typedef enum cactive_e { ca_uninitialized, ca_dedicated, ca_disconnected, ca_connected } cactive_t; typedef enum qw_downloadtype_e { dl_none, dl_single, dl_skin, dl_model, dl_sound } qw_downloadtype_t; typedef enum capturevideoformat_e { CAPTUREVIDEOFORMAT_AVI_I420, CAPTUREVIDEOFORMAT_OGG_VORBIS_THEORA } capturevideoformat_t; typedef struct capturevideostate_s { double startrealtime; double framerate; int framestep; int framestepframe; qboolean active; qboolean realtime; qboolean error; int soundrate; int soundchannels; int frame; double starttime; double lastfpstime; int lastfpsframe; int soundsampleframe; unsigned char *screenbuffer; unsigned char *outbuffer; char basename[128]; int width, height; short rgbtoyuvscaletable[3][3][256]; unsigned char yuvnormalizetable[3][256]; unsigned short vidramp[256 * 3]; capturevideoformat_t format; const char *formatextension; qfile_t *videofile; void (*endvideo) (void); void (*videoframes) (int num); void (*soundframe) (const portable_sampleframe_t *paintbuffer, size_t length); void *formatspecific; } capturevideostate_t; typedef struct cl_downloadack_s { int start, size; } cl_downloadack_t; typedef struct cl_soundstats_s { int mixedsounds; int totalsounds; int latency_milliseconds; } cl_soundstats_t; typedef struct client_static_s { cactive_t state; mempool_t *levelmempool; mempool_t *permanentmempool; int demonum; char demos[8][16]; char demoname[128]; qboolean demorecording; fs_offset_t demo_lastcsprogssize; int demo_lastcsprogscrc; qboolean demoplayback; qboolean demostarting; qboolean timedemo; int forcetrack; qfile_t *demofile; double td_starttime; int td_frames; double td_onesecondnexttime; double td_onesecondframes; double td_onesecondrealtime; double td_onesecondminfps; double td_onesecondmaxfps; double td_onesecondavgfps; int td_onesecondavgcount; qboolean demopaused; cl_soundstats_t soundstats; qboolean connect_trying; int connect_remainingtries; double connect_nextsendtime; lhnetsocket_t *connect_mysocket; lhnetaddress_t connect_address; protocolversion_t protocol; int rcon_trying; lhnetaddress_t rcon_addresses[16]; char rcon_commands[16][16384]; double rcon_timeout[16]; int rcon_ringpos; int signon; netconn_t *netcon; cl_downloadack_t dp_downloadack[4]; unsigned int servermovesequence; int qw_qport; unsigned int qw_incoming_sequence; unsigned int qw_outgoing_sequence; char qw_downloadname[128]; unsigned char *qw_downloadmemory; int qw_downloadmemorycursize; int qw_downloadmemorymaxsize; int qw_downloadnumber; int qw_downloadpercent; qw_downloadtype_t qw_downloadtype; double qw_downloadspeedtime; int qw_downloadspeedcount; int qw_downloadspeedrate; qboolean qw_download_deflate; unsigned char *qw_uploaddata; int qw_uploadsize; int qw_uploadpos; char userinfo[1280]; char connect_userinfo[1280]; capturevideostate_t capturevideo; crypto_t crypto; int proquake_servermod; int proquake_serverversion; int proquake_serverflags; unsigned char *caughtcsprogsdata; fs_offset_t caughtcsprogsdatasize; int r_speeds_graph_length; int r_speeds_graph_current; int *r_speeds_graph_data; int r_speeds_graph_datamin[r_stat_count]; int r_speeds_graph_datamax[r_stat_count]; } client_static_t; extern client_static_t cls; typedef struct { qboolean drawworld; qboolean drawenginesbar; qboolean drawcrosshair; }csqc_vidvars_t; typedef enum { PARTICLE_BILLBOARD = 0, PARTICLE_SPARK = 1, PARTICLE_ORIENTED_DOUBLESIDED = 2, PARTICLE_VBEAM = 3, PARTICLE_HBEAM = 4, PARTICLE_INVALID = -1 } porientation_t; typedef enum { PBLEND_ALPHA = 0, PBLEND_ADD = 1, PBLEND_INVMOD = 2, PBLEND_INVALID = -1 } pblend_t; typedef struct particletype_s { pblend_t blendmode; porientation_t orientation; qboolean lighting; } particletype_t; typedef enum ptype_e { pt_dead, pt_alphastatic, pt_static, pt_spark, pt_beam, pt_rain, pt_raindecal, pt_snow, pt_bubble, pt_blood, pt_smoke, pt_decal, pt_entityparticle, pt_total } ptype_t; typedef struct decal_s { unsigned short typeindex; unsigned short texnum; unsigned int decalsequence; vec3_t org; vec3_t normal; float size; float alpha; unsigned char color[3]; unsigned char unused1; int clusterindex; float time2; unsigned int owner; dp_model_t *ownermodel; vec3_t relativeorigin; vec3_t relativenormal; } decal_t; typedef struct particle_s { vec3_t sortorigin; vec3_t org; vec3_t vel; float size; float alpha; float stretch; float stainsize; float stainalpha; float sizeincrease; float alphafade; float time2; float bounce; float gravity; float airfriction; float liquidfriction; float delayedspawn; float die; short angle; short spin; unsigned char color[3]; unsigned char qualityreduction; unsigned char typeindex; unsigned char blendmode; unsigned char orientation; unsigned char texnum; unsigned char staincolor[3]; signed char staintexnum; } particle_t; typedef enum cl_parsingtextmode_e { CL_PARSETEXTMODE_NONE, CL_PARSETEXTMODE_PING, CL_PARSETEXTMODE_STATUS, CL_PARSETEXTMODE_STATUS_PLAYERID, CL_PARSETEXTMODE_STATUS_PLAYERIP } cl_parsingtextmode_t; typedef struct cl_locnode_s { struct cl_locnode_s *next; char *name; vec3_t mins, maxs; } cl_locnode_t; typedef struct showlmp_s { qboolean isactive; float x; float y; char label[32]; char pic[128]; } showlmp_t; typedef struct client_state_s { int islocalgame; float sendnoptime; usercmd_t cmd; usercmd_t movecmd[128]; int stats[256]; float *statsf; int olditems; float item_gettime[32]; int activeweapon; float weapontime; float faceanimtime; float stairsmoothz; double stairsmoothtime; cshift_t cshifts[5]; cshift_t prev_cshifts[5]; # 1105 "../../../client.h" vec3_t mviewangles[2], viewangles; vec3_t mpunchangle[2], punchangle; vec3_t mpunchvector[2], punchvector; vec3_t mvelocity[2], velocity; vec_t mviewzoom[2], viewzoom; qboolean fixangle[2]; qboolean movement_predicted; qboolean movement_replay; vec3_t movement_origin; vec3_t movement_velocity; qboolean movement_replay_canjump; vec3_t gunangles_prev; vec3_t gunangles_highpass; vec3_t gunangles_adjustment_lowpass; vec3_t gunangles_adjustment_highpass; vec3_t gunorg_prev; vec3_t gunorg_highpass; vec3_t gunorg_adjustment_lowpass; vec3_t gunorg_adjustment_highpass; float idealpitch; float pitchvel; qboolean nodrift; float driftmove; double laststop; float sensitivityscale; csqc_vidvars_t csqc_vidvars; qboolean csqc_wantsmousemove; qboolean csqc_paused; struct model_s *csqc_model_precache[8192]; qboolean paused; qboolean onground; qboolean inwater; qboolean oldonground; double lastongroundtime; double hitgroundtime; float bob2_smooth; float bobfall_speed; float bobfall_swing; double calcrefdef_prevtime; int intermission; double completed_time; double mtime[2]; double time, oldtime; double realframetime; float deathfade; float motionbluralpha; float last_received_message; struct model_s *model_precache[8192]; struct sfx_s *sound_precache[4096]; char model_name[8192][128]; char sound_name[4096][128]; char worldmessage[40]; char worldbasename[128]; char worldname[128]; char worldnamenoextension[128]; int viewentity; int realplayerentity; int playerentity; int maxclients; int gametype; dp_model_t *model_bolt; dp_model_t *model_bolt2; dp_model_t *model_bolt3; dp_model_t *model_beam; sfx_t *sfx_wizhit; sfx_t *sfx_knighthit; sfx_t *sfx_tink1; sfx_t *sfx_ric1; sfx_t *sfx_ric2; sfx_t *sfx_ric3; sfx_t *sfx_r_exp3; qboolean foundtalk2wav; struct model_s *worldmodel; entity_t viewent; int cdtrack, looptrack; scoreboard_t *scores; cl_parsingtextmode_t parsingtextmode; int parsingtextplayerindex; int parsingtextexpectingpingforscores; int latestframenumsposition; int latestframenums[32]; unsigned int latestsendnums[32]; entityframe_database_t *entitydatabase; entityframe4_database_t *entitydatabase4; entityframeqw_database_t *entitydatabaseqw; int lastquakeentity; unsigned char isquakeentity[32768]; vec3_t playerstandmins; vec3_t playerstandmaxs; vec3_t playercrouchmins; vec3_t playercrouchmaxs; unsigned int decalsequence; int max_entities; int max_csqcrenderentities; int max_static_entities; int max_effects; int max_beams; int max_dlights; int max_lightstyle; int max_brushmodel_entities; int max_particles; int max_decals; int max_showlmps; entity_t *entities; entity_render_t *csqcrenderentities; unsigned char *entities_active; entity_t *static_entities; cl_effect_t *effects; beam_t *beams; dlight_t *dlights; lightstyle_t *lightstyle; int *brushmodel_entities; particle_t *particles; decal_t *decals; showlmp_t *showlmps; int num_entities; int num_static_entities; int num_brushmodel_entities; int num_effects; int num_beams; int num_dlights; int num_particles; int num_decals; int num_showlmps; double particles_updatetime; double decals_updatetime; int free_particle; int free_decal; int loadmodel_current; int downloadmodel_current; int loadmodel_total; int loadsound_current; int downloadsound_current; int loadsound_total; qboolean downloadcsqc; qboolean loadcsqc; qboolean loadbegun; qboolean loadfinished; char qw_serverinfo[1280]; double last_ping_request; int qw_servercount; int qw_teamplay; double lastpackettime; unsigned int moveflags; float movevars_wallfriction; float movevars_waterfriction; float movevars_friction; float movevars_timescale; float movevars_gravity; float movevars_stopspeed; float movevars_maxspeed; float movevars_spectatormaxspeed; float movevars_accelerate; float movevars_airaccelerate; float movevars_wateraccelerate; float movevars_entgravity; float movevars_jumpvelocity; float movevars_edgefriction; float movevars_maxairspeed; float movevars_stepheight; float movevars_airaccel_qw; float movevars_airaccel_qw_stretchfactor; float movevars_airaccel_sideways_friction; float movevars_airstopaccelerate; float movevars_airstrafeaccelerate; float movevars_maxairstrafespeed; float movevars_airstrafeaccel_qw; float movevars_aircontrol; float movevars_aircontrol_power; float movevars_aircontrol_penalty; float movevars_warsowbunny_airforwardaccel; float movevars_warsowbunny_accel; float movevars_warsowbunny_topspeed; float movevars_warsowbunny_turnaccel; float movevars_warsowbunny_backtosideratio; float movevars_ticrate; float movevars_airspeedlimit_nonqw; int qw_modelindex_spike; int qw_modelindex_player; int qw_modelindex_flag; int qw_modelindex_s_explod; vec3_t qw_intermission_origin; vec3_t qw_intermission_angles; int qw_num_nails; vec_t qw_nails[255][6]; float qw_weaponkick; unsigned int qw_validsequence; unsigned int qw_deltasequence[64]; unsigned short csqc_server2csqcentitynumber[32768]; qboolean csqc_loaded; vec3_t csqc_vieworigin; vec3_t csqc_viewangles; vec3_t csqc_vieworiginfromengine; vec3_t csqc_viewanglesfromengine; matrix4x4_t csqc_viewmodelmatrixfromengine; qboolean csqc_usecsqclistener; matrix4x4_t csqc_listenermatrix; char csqc_printtextbuf[16384]; world_t world; cl_locnode_t *locnodes; vec3_t lastdeathorigin; size_t buildlightmapmemorysize; unsigned char *buildlightmapmemory; skeleton_t *engineskeletonobjects; } client_state_t; extern cvar_t cl_name; extern cvar_t cl_color; extern cvar_t cl_rate; extern cvar_t cl_rate_burstsize; extern cvar_t cl_pmodel; extern cvar_t cl_playermodel; extern cvar_t cl_playerskin; extern cvar_t rcon_password; extern cvar_t rcon_address; extern cvar_t cl_upspeed; extern cvar_t cl_forwardspeed; extern cvar_t cl_backspeed; extern cvar_t cl_sidespeed; extern cvar_t cl_movespeedkey; extern cvar_t cl_yawspeed; extern cvar_t cl_pitchspeed; extern cvar_t cl_anglespeedkey; extern cvar_t cl_autofire; extern cvar_t cl_shownet; extern cvar_t cl_nolerp; extern cvar_t cl_nettimesyncfactor; extern cvar_t cl_nettimesyncboundmode; extern cvar_t cl_nettimesyncboundtolerance; extern cvar_t cl_pitchdriftspeed; extern cvar_t lookspring; extern cvar_t lookstrafe; extern cvar_t sensitivity; extern cvar_t freelook; extern cvar_t m_pitch; extern cvar_t m_yaw; extern cvar_t m_forward; extern cvar_t m_side; extern cvar_t cl_autodemo; extern cvar_t cl_autodemo_nameformat; extern cvar_t cl_autodemo_delete; extern cvar_t r_draweffects; extern cvar_t cl_explosions_alpha_start; extern cvar_t cl_explosions_alpha_end; extern cvar_t cl_explosions_size_start; extern cvar_t cl_explosions_size_end; extern cvar_t cl_explosions_lifetime; extern cvar_t cl_stainmaps; extern cvar_t cl_stainmaps_clearonload; extern cvar_t cl_prydoncursor; extern cvar_t cl_prydoncursor_notrace; extern cvar_t cl_locs_enable; extern client_state_t cl; extern void CL_AllocLightFlash (entity_render_t *ent, matrix4x4_t *matrix, float radius, float red, float green, float blue, float decay, float lifetime, int cubemapnum, int style, int shadowenable, vec_t corona, vec_t coronasizescale, vec_t ambientscale, vec_t diffusescale, vec_t specularscale, int flags); cl_locnode_t *CL_Locs_FindNearest(const vec3_t point); void CL_Locs_FindLocationName(char *buffer, size_t buffersize, vec3_t point); void CL_Shutdown (void); void CL_Init (void); void CL_EstablishConnection(const char *host, int firstarg); void CL_Disconnect (void); void CL_Disconnect_f (void); void CL_UpdateRenderEntity(entity_render_t *ent); void CL_SetEntityColormapColors(entity_render_t *ent, int colormap); void CL_UpdateViewEntities(void); typedef struct kbutton_s { int down[2]; int state; } kbutton_t; extern kbutton_t in_mlook, in_klook; extern kbutton_t in_strafe; extern kbutton_t in_speed; void CL_InitInput (void); void CL_SendMove (void); void CL_ValidateState(entity_state_t *s); void CL_MoveLerpEntityStates(entity_t *ent); void CL_LerpUpdate(entity_t *e); void CL_ParseTEnt (void); void CL_NewBeam (int ent, vec3_t start, vec3_t end, dp_model_t *m, int lightning); void CL_RelinkBeams (void); void CL_Beam_CalculatePositions (const beam_t *b, vec3_t start, vec3_t end); void CL_ClientMovement_Replay(void); void CL_ClearTempEntities (void); entity_render_t *CL_NewTempEntity (double shadertime); void CL_Effect(vec3_t org, int modelindex, int startframe, int framecount, float framerate); void CL_ClearState (void); void CL_ExpandEntities(int num); void CL_ExpandCSQCRenderEntities(int num); void CL_SetInfo(const char *key, const char *value, qboolean send, qboolean allowstarkey, qboolean allowmodel, qboolean quiet); void CL_UpdateWorld (void); void CL_WriteToServer (void); void CL_Input (void); extern int cl_ignoremousemoves; float CL_KeyState (kbutton_t *key); const char *Key_KeynumToString (int keynum, char *buf, size_t buflength); int Key_StringToKeynum (const char *str); void CL_StopPlayback(void); void CL_ReadDemoMessage(void); void CL_WriteDemoMessage(sizebuf_t *mesage); void CL_CutDemo(unsigned char **buf, fs_offset_t *filesize); void CL_PasteDemo(unsigned char **buf, fs_offset_t *filesize); void CL_NextDemo(void); void CL_Stop_f(void); void CL_Record_f(void); void CL_PlayDemo_f(void); void CL_TimeDemo_f(void); void CL_Parse_Init(void); void CL_Parse_Shutdown(void); void CL_ParseServerMessage(void); void CL_Parse_DumpPacket(void); void CL_Parse_ErrorCleanUp(void); void QW_CL_StartUpload(unsigned char *data, int size); extern cvar_t qport; void CL_KeepaliveMessage(qboolean readmessages); void V_StartPitchDrift (void); void V_StopPitchDrift (void); void V_Init (void); float V_CalcRoll (const vec3_t angles, const vec3_t velocity); void V_UpdateBlends (void); void V_ParseDamage (void); extern cvar_t cl_particles; extern cvar_t cl_particles_quality; extern cvar_t cl_particles_size; extern cvar_t cl_particles_quake; extern cvar_t cl_particles_blood; extern cvar_t cl_particles_blood_alpha; extern cvar_t cl_particles_blood_decal_alpha; extern cvar_t cl_particles_blood_decal_scalemin; extern cvar_t cl_particles_blood_decal_scalemax; extern cvar_t cl_particles_blood_bloodhack; extern cvar_t cl_particles_bulletimpacts; extern cvar_t cl_particles_explosions_sparks; extern cvar_t cl_particles_explosions_shell; extern cvar_t cl_particles_rain; extern cvar_t cl_particles_snow; extern cvar_t cl_particles_smoke; extern cvar_t cl_particles_smoke_alpha; extern cvar_t cl_particles_smoke_alphafade; extern cvar_t cl_particles_sparks; extern cvar_t cl_particles_bubbles; extern cvar_t cl_decals; extern cvar_t cl_decals_time; extern cvar_t cl_decals_fadetime; void CL_Particles_Clear(void); void CL_Particles_Init(void); void CL_Particles_Shutdown(void); particle_t *CL_NewParticle(const vec3_t sortorigin, unsigned short ptypeindex, int pcolor1, int pcolor2, int ptex, float psize, float psizeincrease, float palpha, float palphafade, float pgravity, float pbounce, float px, float py, float pz, float pvx, float pvy, float pvz, float pairfriction, float pliquidfriction, float originjitter, float velocityjitter, qboolean pqualityreduction, float lifetime, float stretch, pblend_t blendmode, porientation_t orientation, int staincolor1, int staincolor2, int staintex, float stainalpha, float stainsize, float angle, float spin, float tint[4]); typedef enum effectnameindex_s { EFFECT_NONE, EFFECT_TE_GUNSHOT, EFFECT_TE_GUNSHOTQUAD, EFFECT_TE_SPIKE, EFFECT_TE_SPIKEQUAD, EFFECT_TE_SUPERSPIKE, EFFECT_TE_SUPERSPIKEQUAD, EFFECT_TE_WIZSPIKE, EFFECT_TE_KNIGHTSPIKE, EFFECT_TE_EXPLOSION, EFFECT_TE_EXPLOSIONQUAD, EFFECT_TE_TAREXPLOSION, EFFECT_TE_TELEPORT, EFFECT_TE_LAVASPLASH, EFFECT_TE_SMALLFLASH, EFFECT_TE_FLAMEJET, EFFECT_EF_FLAME, EFFECT_TE_BLOOD, EFFECT_TE_SPARK, EFFECT_TE_PLASMABURN, EFFECT_TE_TEI_G3, EFFECT_TE_TEI_SMOKE, EFFECT_TE_TEI_BIGEXPLOSION, EFFECT_TE_TEI_PLASMAHIT, EFFECT_EF_STARDUST, EFFECT_TR_ROCKET, EFFECT_TR_GRENADE, EFFECT_TR_BLOOD, EFFECT_TR_WIZSPIKE, EFFECT_TR_SLIGHTBLOOD, EFFECT_TR_KNIGHTSPIKE, EFFECT_TR_VORESPIKE, EFFECT_TR_NEHAHRASMOKE, EFFECT_TR_NEXUIZPLASMA, EFFECT_TR_GLOWTRAIL, EFFECT_SVC_PARTICLE, EFFECT_TOTAL } effectnameindex_t; int CL_ParticleEffectIndexForName(const char *name); const char *CL_ParticleEffectNameForIndex(int i); void CL_ParticleEffect(int effectindex, float pcount, const vec3_t originmins, const vec3_t originmaxs, const vec3_t velocitymins, const vec3_t velocitymaxs, entity_t *ent, int palettecolor); void CL_ParticleTrail(int effectindex, float pcount, const vec3_t originmins, const vec3_t originmaxs, const vec3_t velocitymins, const vec3_t velocitymaxs, entity_t *ent, int palettecolor, qboolean spawndlight, qboolean spawnparticles, float tintmins[4], float tintmaxs[4], float fade); void CL_ParticleBox(int effectindex, float pcount, const vec3_t originmins, const vec3_t originmaxs, const vec3_t velocitymins, const vec3_t velocitymaxs, entity_t *ent, int palettecolor, qboolean spawndlight, qboolean spawnparticles, float tintmins[4], float tintmaxs[4], float fade); void CL_ParseParticleEffect (void); void CL_ParticleCube (const vec3_t mins, const vec3_t maxs, const vec3_t dir, int count, int colorbase, vec_t gravity, vec_t randomvel); void CL_ParticleRain (const vec3_t mins, const vec3_t maxs, const vec3_t dir, int count, int colorbase, int type); void CL_EntityParticles (const entity_t *ent); void CL_ParticleExplosion (const vec3_t org); void CL_ParticleExplosion2 (const vec3_t org, int colorStart, int colorLength); void R_NewExplosion(const vec3_t org); void Debug_PolygonBegin(const char *picname, int flags); void Debug_PolygonVertex(float x, float y, float z, float s, float t, float r, float g, float b, float a); void Debug_PolygonEnd(void); # 1 "../../../cl_screen.h" 1 void SHOWLMP_decodehide(void); void SHOWLMP_decodeshow(void); void SHOWLMP_drawall(void); extern cvar_t vid_conwidth; extern cvar_t vid_conheight; extern cvar_t vid_pixelheight; extern cvar_t scr_screenshot_jpeg; extern cvar_t scr_screenshot_jpeg_quality; extern cvar_t scr_screenshot_png; extern cvar_t scr_screenshot_gammaboost; extern cvar_t scr_screenshot_name; void CL_Screen_NewMap(void); void CL_Screen_Init(void); void CL_Screen_Shutdown(void); void CL_UpdateScreen(void); qboolean R_Stereo_Active(void); qboolean R_Stereo_ColorMasking(void); # 1724 "../../../client.h" 2 extern qboolean sb_showscores; float RSurf_FogVertex(const vec3_t p); float RSurf_FogPoint(const vec3_t p); typedef enum r_viewport_type_e { R_VIEWPORTTYPE_ORTHO, R_VIEWPORTTYPE_PERSPECTIVE, R_VIEWPORTTYPE_PERSPECTIVE_INFINITEFARCLIP, R_VIEWPORTTYPE_PERSPECTIVECUBESIDE, R_VIEWPORTTYPE_TOTAL } r_viewport_type_t; typedef struct r_viewport_s { matrix4x4_t cameramatrix; matrix4x4_t viewmatrix; matrix4x4_t projectmatrix; int x; int y; int z; int width; int height; int depth; r_viewport_type_t type; float screentodepth[2]; } r_viewport_t; typedef struct r_refdef_view_s { # 1768 "../../../client.h" matrix4x4_t matrix, inverse_matrix; vec3_t origin; vec3_t forward; vec3_t left; vec3_t right; vec3_t up; int numfrustumplanes; mplane_t frustum[6]; qboolean useclipplane; qboolean usecustompvs; mplane_t clipplane; float frustum_x, frustum_y; vec3_t frustumcorner[4]; int useperspective; float ortho_x, ortho_y; int x; int y; int z; int width; int height; int depth; r_viewport_t viewport; int colormask[4]; float colorscale; qboolean clear; qboolean isoverlay; qboolean ismain; qboolean showdebug; int cullface_front; int cullface_back; float quality; } r_refdef_view_t; typedef struct r_refdef_viewcache_s { int maxentities; int world_numclusters; int world_numclusterbytes; int world_numleafs; int world_numsurfaces; unsigned char *entityvisible; unsigned char *world_pvsbits; unsigned char *world_leafvisible; unsigned char *world_surfacevisible; qboolean world_novis; } r_refdef_viewcache_t; typedef struct r_refdef_scene_s { qboolean extraupdate; double time; entity_render_t *worldentity; dp_model_t *worldmodel; entity_render_t **entities; int numentities; int maxentities; entity_render_t *tempentities; int numtempentities; int maxtempentities; qboolean expandtempentities; rtlight_t *lights[256]; rtlight_t templights[256]; int numlights; float rtlightstylevalue[256]; unsigned short lightstylevalue[256]; float ambient; qboolean rtworld; qboolean rtworldshadows; qboolean rtdlight; qboolean rtdlightshadows; } r_refdef_scene_t; typedef struct r_refdef_s { float frustumscale_x, frustumscale_y; r_refdef_view_t view; r_refdef_viewcache_t viewcache; double nearclip; double farclip; float viewblend[4]; r_refdef_scene_t scene; float fogplane[4]; float fogplaneviewdist; qboolean fogplaneviewabove; float fogheightfade; float fogcolor[3]; float fogrange; float fograngerecip; float fogmasktabledistmultiplier; float fogmasktable[1024]; float fogmasktable_start, fogmasktable_alpha, fogmasktable_range, fogmasktable_density; float fog_density; float fog_red; float fog_green; float fog_blue; float fog_alpha; float fog_start; float fog_end; float fog_height; float fog_fadedepth; qboolean fogenabled; qboolean oldgl_fogenable; char fog_height_texturename[64]; unsigned char *fog_height_table1d; unsigned char *fog_height_table2d; int fog_height_tablesize; float fog_height_tablescale; float fog_height_texcoordscale; char fogheighttexturename[64]; int draw2dstage; qboolean envmap; float lightmapintensity; float polygonfactor; float polygonoffset; float shadowpolygonfactor; float shadowpolygonoffset; double lastdrawscreentime; int stats[r_stat_count]; } r_refdef_t; extern r_refdef_t r_refdef; typedef enum waterlevel_e { WATERLEVEL_NONE, WATERLEVEL_WETFEET, WATERLEVEL_SWIMMING, WATERLEVEL_SUBMERGED } waterlevel_t; typedef struct cl_clientmovement_state_s { struct prvm_edict_s *self; vec3_t origin; vec3_t velocity; vec3_t mins; vec3_t maxs; qboolean onground; qboolean crouched; int watertype; waterlevel_t waterlevel; float waterjumptime; usercmd_t cmd; } cl_clientmovement_state_t; void CL_ClientMovement_PlayerMove_Frame(cl_clientmovement_state_t *s); void CL_RotateMoves(const matrix4x4_t *m); void CL_NewFrameReceived(int num); void CL_ParseEntityLump(char *entitystring); void CL_FindNonSolidLocation(const vec3_t in, vec3_t out, vec_t radius); void CL_RelinkLightFlashes(void); void Sbar_ShowFPS(void); void Sbar_ShowFPS_Update(void); void Host_SaveConfig(void); void Host_LoadConfig_f(void); void CL_UpdateMoveVars(void); void SCR_CaptureVideo_SoundFrame(const portable_sampleframe_t *paintbuffer, size_t length); void V_DriftPitch(void); void V_FadeViewFlashs(void); void V_CalcViewBlend(void); void V_CalcRefdefUsing (const matrix4x4_t *entrendermatrix, const vec3_t clviewangles, qboolean teleported, qboolean clonground, qboolean clcmdjump, float clstatsviewheight, qboolean cldead, qboolean clintermission, const vec3_t clvelocity); void V_CalcRefdef(void); void CL_Locs_Reload_f(void); # 395 "../../../quakedef.h" 2 # 1 "../../../render.h" 1 # 24 "../../../render.h" # 1 "../../../svbsp.h" 1 typedef struct svbsp_node_s { int parent, children[2], padding; float plane[4]; } svbsp_node_t; typedef struct svbsp_s { float origin[3]; int numnodes; int maxnodes; svbsp_node_t *nodes; int ranoutofnodes; int stat_occluders_rejected; int stat_occluders_accepted; int stat_occluders_fragments_rejected; int stat_occluders_fragments_accepted; int stat_queries_rejected; int stat_queries_accepted; int stat_queries_fragments_rejected; int stat_queries_fragments_accepted; } svbsp_t; # 56 "../../../svbsp.h" void SVBSP_Init(svbsp_t *b, const float *origin, int maxnodes, svbsp_node_t *nodes); # 73 "../../../svbsp.h" int SVBSP_AddPolygon(svbsp_t *b, int numpoints, const float *points, int insertoccluder, void (*fragmentcallback)(void *fragmentcallback_pointer1, int fragmentcallback_number1, svbsp_t *b, int numpoints, const float *points), void *fragmentcallback_pointer1, int fragmentcallback_number1); # 25 "../../../render.h" 2 extern float ixtable[4096]; void FOG_clear(void); extern cvar_t r_sky; extern cvar_t r_skyscroll1; extern cvar_t r_skyscroll2; extern int skyrenderlater, skyrendermasked; int R_SetSkyBox(const char *sky); void R_SkyStartFrame(void); void R_Sky(void); void R_ResetSkyBox(void); void SHOWLMP_decodehide(void); void SHOWLMP_decodeshow(void); void SHOWLMP_drawall(void); extern int r_timereport_active; extern cvar_t r_ambient; extern cvar_t gl_flashblend; extern cvar_t r_novis; extern cvar_t r_trippy; extern cvar_t r_fxaa; extern cvar_t r_lerpsprites; extern cvar_t r_lerpmodels; extern cvar_t r_lerplightstyles; extern cvar_t r_waterscroll; extern cvar_t developer_texturelogging; extern svbsp_t r_svbsp; typedef struct rmesh_s { int maxvertices; int numvertices; float *vertex3f; float *svector3f; float *tvector3f; float *normal3f; float *texcoord2f; float *texcoordlightmap2f; float *color4f; int maxtriangles; int numtriangles; int *element3i; int *neighbor3i; float epsilon2; } rmesh_t; void R_ModulateColors(float *in, float *out, int verts, float r, float g, float b); void R_FillColors(float *out, int verts, float r, float g, float b, float a); int R_Mesh_AddVertex3f(rmesh_t *mesh, const float *v); void R_Mesh_AddPolygon3f(rmesh_t *mesh, int numvertices, float *vertex3f); void R_Mesh_AddBrushMeshFromPlanes(rmesh_t *mesh, int numplanes, mplane_t *planes); extern cvar_t r_nearclip; extern cvar_t r_showoverdraw; extern cvar_t r_showtris; extern cvar_t r_shownormals; extern cvar_t r_showlighting; extern cvar_t r_showshadowvolumes; extern cvar_t r_showcollisionbrushes; extern cvar_t r_showcollisionbrushes_polygonfactor; extern cvar_t r_showcollisionbrushes_polygonoffset; extern cvar_t r_showdisabledepthtest; extern cvar_t r_drawentities; extern cvar_t r_draw2d; extern qboolean r_draw2d_force; extern cvar_t r_drawviewmodel; extern cvar_t r_drawworld; extern cvar_t r_speeds; extern cvar_t r_fullbright; extern cvar_t r_wateralpha; extern cvar_t r_dynamic; void R_Init(void); void R_UpdateVariables(void); void R_RenderView(void); void R_RenderView_UpdateViewVectors(void); typedef enum r_refdef_scene_type_s { RST_CLIENT, RST_MENU, RST_COUNT } r_refdef_scene_type_t; void R_SelectScene( r_refdef_scene_type_t scenetype ); r_refdef_scene_t * R_GetScenePointer( r_refdef_scene_type_t scenetype ); void R_SkinFrame_PrepareForPurge(void); void R_SkinFrame_MarkUsed(skinframe_t *skinframe); void R_SkinFrame_Purge(void); skinframe_t *R_SkinFrame_FindNextByName( skinframe_t *last, const char *name ); skinframe_t *R_SkinFrame_Find(const char *name, int textureflags, int comparewidth, int compareheight, int comparecrc, qboolean add); skinframe_t *R_SkinFrame_LoadExternal(const char *name, int textureflags, qboolean complain); skinframe_t *R_SkinFrame_LoadInternalBGRA(const char *name, int textureflags, const unsigned char *skindata, int width, int height, qboolean sRGB); skinframe_t *R_SkinFrame_LoadInternalQuake(const char *name, int textureflags, int loadpantsandshirt, int loadglowtexture, const unsigned char *skindata, int width, int height); skinframe_t *R_SkinFrame_LoadInternal8bit(const char *name, int textureflags, const unsigned char *skindata, int width, int height, const unsigned int *palette, const unsigned int *alphapalette); skinframe_t *R_SkinFrame_LoadMissing(void); rtexture_t *R_GetCubemap(const char *basename); void R_View_WorldVisibility(qboolean forcenovis); void R_DrawDecals(void); void R_DrawParticles(void); void R_DrawExplosions(void); int R_CullBox(const vec3_t mins, const vec3_t maxs); int R_CullBoxCustomPlanes(const vec3_t mins, const vec3_t maxs, int numplanes, const mplane_t *planes); # 1 "../../../r_modules.h" 1 void R_Modules_Init(void); void R_RegisterModule(const char *name, void(*start)(void), void(*shutdown)(void), void(*newmap)(void), void(*devicelost)(void), void(*devicerestored)(void)); void R_Modules_Start(void); void R_Modules_Shutdown(void); void R_Modules_NewMap(void); void R_Modules_Restart(void); void R_Modules_DeviceLost(void); void R_Modules_DeviceRestored(void); # 167 "../../../render.h" 2 # 1 "../../../meshqueue.h" 1 void R_MeshQueue_BeginScene(void); void R_MeshQueue_AddTransparent(dptransparentsortcategory_t category, const vec3_t center, void (*callback)(const entity_render_t *ent, const rtlight_t *rtlight, int numsurfaces, int *surfacelist), const entity_render_t *ent, int surfacenumber, const rtlight_t *rtlight); void R_MeshQueue_RenderTransparent(void); # 169 "../../../render.h" 2 void R_FrameData_Reset(void); void R_FrameData_NewFrame(void); void *R_FrameData_Alloc(size_t size); void *R_FrameData_Store(size_t size, void *data); void R_FrameData_SetMark(void); void R_FrameData_ReturnToMark(void); typedef enum r_bufferdata_type_e { R_BUFFERDATA_VERTEX, R_BUFFERDATA_INDEX16, R_BUFFERDATA_INDEX32, R_BUFFERDATA_UNIFORM, R_BUFFERDATA_COUNT } r_bufferdata_type_t; void R_BufferData_Reset(void); void R_BufferData_NewFrame(void); r_meshbuffer_t *R_BufferData_Store(size_t size, const void *data, r_bufferdata_type_t type, int *returnbufferoffset); void R_AnimCache_Free(void); void R_AnimCache_ClearCache(void); qboolean R_AnimCache_GetEntity(entity_render_t *ent, qboolean wantnormals, qboolean wanttangents); void R_AnimCache_CacheVisibleEntities(void); # 1 "../../../r_lerpanim.h" 1 # 212 "../../../render.h" 2 extern cvar_t r_render; extern cvar_t r_renderview; extern cvar_t r_waterwarp; extern cvar_t r_textureunits; extern cvar_t r_glsl_offsetmapping; extern cvar_t r_glsl_offsetmapping_reliefmapping; extern cvar_t r_glsl_offsetmapping_scale; extern cvar_t r_glsl_offsetmapping_lod; extern cvar_t r_glsl_offsetmapping_lod_distance; extern cvar_t r_glsl_deluxemapping; extern cvar_t gl_polyblend; extern cvar_t gl_dither; extern cvar_t cl_deathfade; extern cvar_t r_smoothnormals_areaweighting; extern cvar_t r_test; # 1 "../../../gl_backend.h" 1 extern r_viewport_t gl_viewport; extern matrix4x4_t gl_modelmatrix; extern matrix4x4_t gl_viewmatrix; extern matrix4x4_t gl_modelviewmatrix; extern matrix4x4_t gl_projectionmatrix; extern matrix4x4_t gl_modelviewprojectionmatrix; extern float gl_modelview16f[16]; extern float gl_modelviewprojection16f[16]; extern qboolean gl_modelmatrixchanged; extern cvar_t gl_vbo_dynamicvertex; extern cvar_t gl_vbo_dynamicindex; extern int polygonelement3i[(258 -2)*3]; extern unsigned short polygonelement3s[(258 -2)*3]; extern int quadelement3i[128*6]; extern unsigned short quadelement3s[128*6]; void R_Viewport_TransformToScreen(const r_viewport_t *v, const vec4_t in, vec4_t out); qboolean R_ScissorForBBox(const float *mins, const float *maxs, int *scissor); void R_Viewport_InitOrtho(r_viewport_t *v, const matrix4x4_t *cameramatrix, int x, int y, int width, int height, float x1, float y1, float x2, float y2, float zNear, float zFar, const float *nearplane); void R_Viewport_InitPerspective(r_viewport_t *v, const matrix4x4_t *cameramatrix, int x, int y, int width, int height, float frustumx, float frustumy, float zNear, float zFar, const float *nearplane); void R_Viewport_InitPerspectiveInfinite(r_viewport_t *v, const matrix4x4_t *cameramatrix, int x, int y, int width, int height, float frustumx, float frustumy, float zNear, const float *nearplane); void R_Viewport_InitCubeSideView(r_viewport_t *v, const matrix4x4_t *cameramatrix, int side, int size, float nearclip, float farclip, const float *nearplane); void R_Viewport_InitRectSideView(r_viewport_t *v, const matrix4x4_t *cameramatrix, int side, int size, int border, float nearclip, float farclip, const float *nearplane); void R_SetViewport(const r_viewport_t *v); void R_GetViewport(r_viewport_t *v); void GL_Finish(void); void GL_BlendFunc(int blendfunc1, int blendfunc2); void GL_BlendEquationSubtract(qboolean negated); void GL_DepthMask(int state); void GL_DepthTest(int state); void GL_DepthFunc(int state); void GL_DepthRange(float nearfrac, float farfrac); void R_SetStencilSeparate(qboolean enable, int writemask, int frontfail, int frontzfail, int frontzpass, int backfail, int backzfail, int backzpass, int frontcompare, int backcompare, int comparereference, int comparemask); void R_SetStencil(qboolean enable, int writemask, int fail, int zfail, int zpass, int compare, int comparereference, int comparemask); void GL_PolygonOffset(float planeoffset, float depthoffset); void GL_CullFace(int state); void GL_AlphaTest(int state); void GL_AlphaToCoverage(qboolean state); void GL_ColorMask(int r, int g, int b, int a); void GL_Color(float cr, float cg, float cb, float ca); void GL_ActiveTexture(unsigned int num); void GL_ClientActiveTexture(unsigned int num); void GL_Scissor(int x, int y, int width, int height); void GL_ScissorTest(int state); void GL_Clear(int mask, const float *colorvalue, float depthvalue, int stencilvalue); void GL_ReadPixelsBGRA(int x, int y, int width, int height, unsigned char *outpixels); int R_Mesh_CreateFramebufferObject(rtexture_t *depthtexture, rtexture_t *colortexture, rtexture_t *colortexture2, rtexture_t *colortexture3, rtexture_t *colortexture4); void R_Mesh_DestroyFramebufferObject(int fbo); void R_Mesh_SetRenderTargets(int fbo, rtexture_t *depthtexture, rtexture_t *colortexture, rtexture_t *colortexture2, rtexture_t *colortexture3, rtexture_t *colortexture4); unsigned int GL_Backend_CompileProgram(int vertexstrings_count, const char **vertexstrings_list, int geometrystrings_count, const char **geometrystrings_list, int fragmentstrings_count, const char **fragmentstrings_list); void GL_Backend_FreeProgram(unsigned int prog); extern cvar_t gl_paranoid; extern cvar_t gl_printcheckerror; void gl_backend_init(void); void R_Mesh_Start(void); void R_Mesh_Finish(void); r_meshbuffer_t *R_Mesh_CreateMeshBuffer(const void *data, size_t size, const char *name, qboolean isindexbuffer, qboolean isuniformbuffer, qboolean isdynamic, qboolean isindex16); void R_Mesh_UpdateMeshBuffer(r_meshbuffer_t *buffer, const void *data, size_t size, qboolean subdata, size_t offset); void R_Mesh_DestroyMeshBuffer(r_meshbuffer_t *buffer); void GL_Mesh_ListVBOs(qboolean printeach); void R_Mesh_PrepareVertices_Vertex3f(int numvertices, const float *vertex3f, const r_meshbuffer_t *buffer, int bufferoffset); r_vertexgeneric_t *R_Mesh_PrepareVertices_Generic_Lock(int numvertices); qboolean R_Mesh_PrepareVertices_Generic_Unlock(void); void R_Mesh_PrepareVertices_Generic_Arrays(int numvertices, const float *vertex3f, const float *color4f, const float *texcoord2f); void R_Mesh_PrepareVertices_Generic(int numvertices, const r_vertexgeneric_t *vertex, const r_meshbuffer_t *vertexbuffer, int bufferoffset); r_vertexmesh_t *R_Mesh_PrepareVertices_Mesh_Lock(int numvertices); qboolean R_Mesh_PrepareVertices_Mesh_Unlock(void); void R_Mesh_PrepareVertices_Mesh_Arrays(int numvertices, const float *vertex3f, const float *svector3f, const float *tvector3f, const float *normal3f, const float *color4f, const float *texcoordtexture2f, const float *texcoordlightmap2f); void R_Mesh_PrepareVertices_Mesh(int numvertices, const r_vertexmesh_t *vertex, const r_meshbuffer_t *buffer, int bufferoffset); void R_EntityMatrix(const matrix4x4_t *matrix); void R_Mesh_VertexPointer(int components, int gltype, size_t stride, const void *pointer, const r_meshbuffer_t *vertexbuffer, size_t bufferoffset); void R_Mesh_ColorPointer(int components, int gltype, size_t stride, const void *pointer, const r_meshbuffer_t *vertexbuffer, size_t bufferoffset); void R_Mesh_TexCoordPointer(unsigned int unitnum, int components, int gltype, size_t stride, const void *pointer, const r_meshbuffer_t *vertexbuffer, size_t bufferoffset); int R_Mesh_TexBound(unsigned int unitnum, int id); void R_Mesh_CopyToTexture(rtexture_t *tex, int tx, int ty, int sx, int sy, int width, int height); void R_Mesh_TexBind(unsigned int unitnum, rtexture_t *tex); void R_Mesh_TexMatrix(unsigned int unitnum, const matrix4x4_t *matrix); void R_Mesh_TexCombine(unsigned int unitnum, int combinergb, int combinealpha, int rgbscale, int alphascale); void R_Mesh_ResetTextureState(void); void R_Mesh_ClearBindingsForTexture(int texnum); void R_Mesh_Draw(int firstvertex, int numvertices, int firsttriangle, int numtriangles, const int *element3i, const r_meshbuffer_t *element3i_indexbuffer, int element3i_bufferoffset, const unsigned short *element3s, const r_meshbuffer_t *element3s_indexbuffer, int element3s_bufferoffset); qboolean SCR_ScreenShot(char *filename, unsigned char *buffer1, unsigned char *buffer2, int x, int y, int width, int height, qboolean flipx, qboolean flipy, qboolean flipdiagonal, qboolean jpeg, qboolean png, qboolean gammacorrect, qboolean keep_alpha); void R_ClearScreen(qboolean fogcolor); # 236 "../../../render.h" 2 extern rtexture_t *r_texture_blanknormalmap; extern rtexture_t *r_texture_white; extern rtexture_t *r_texture_grey128; extern rtexture_t *r_texture_black; extern rtexture_t *r_texture_notexture; extern rtexture_t *r_texture_whitecube; extern rtexture_t *r_texture_normalizationcube; extern rtexture_t *r_texture_fogattenuation; extern rtexture_t *r_texture_fogheighttexture; extern unsigned int r_queries[4096]; extern unsigned int r_numqueries; extern unsigned int r_maxqueries; void R_TimeReport(const char *name); void R_Stain(const vec3_t origin, float radius, int cr1, int cg1, int cb1, int ca1, int cr2, int cg2, int cb2, int ca2); void R_CalcBeam_Vertex3f(float *vert, const float *org1, const float *org2, float width); void R_CalcSprite_Vertex3f(float *vertex3f, const float *origin, const float *left, const float *up, float scalex1, float scalex2, float scaley1, float scaley2); extern mempool_t *r_main_mempool; typedef struct rsurfacestate_s { # 277 "../../../render.h" qboolean forcecurrenttextureupdate; qboolean modelgeneratedvertex; int entityskeletalnumtransforms; float *entityskeletaltransform3x4; const r_meshbuffer_t *entityskeletaltransform3x4buffer; int entityskeletaltransform3x4offset; int entityskeletaltransform3x4size; float *modelvertex3f; const r_meshbuffer_t *modelvertex3f_vertexbuffer; int modelvertex3f_bufferoffset; float *modelsvector3f; const r_meshbuffer_t *modelsvector3f_vertexbuffer; int modelsvector3f_bufferoffset; float *modeltvector3f; const r_meshbuffer_t *modeltvector3f_vertexbuffer; int modeltvector3f_bufferoffset; float *modelnormal3f; const r_meshbuffer_t *modelnormal3f_vertexbuffer; int modelnormal3f_bufferoffset; float *modellightmapcolor4f; const r_meshbuffer_t *modellightmapcolor4f_vertexbuffer; int modellightmapcolor4f_bufferoffset; float *modeltexcoordtexture2f; const r_meshbuffer_t *modeltexcoordtexture2f_vertexbuffer; int modeltexcoordtexture2f_bufferoffset; float *modeltexcoordlightmap2f; const r_meshbuffer_t *modeltexcoordlightmap2f_vertexbuffer; int modeltexcoordlightmap2f_bufferoffset; unsigned char *modelskeletalindex4ub; const r_meshbuffer_t *modelskeletalindex4ub_vertexbuffer; int modelskeletalindex4ub_bufferoffset; unsigned char *modelskeletalweight4ub; const r_meshbuffer_t *modelskeletalweight4ub_vertexbuffer; int modelskeletalweight4ub_bufferoffset; r_vertexmesh_t *modelvertexmesh; const r_meshbuffer_t *modelvertexmesh_vertexbuffer; int modelvertexmesh_bufferoffset; int *modelelement3i; const r_meshbuffer_t *modelelement3i_indexbuffer; int modelelement3i_bufferoffset; unsigned short *modelelement3s; const r_meshbuffer_t *modelelement3s_indexbuffer; int modelelement3s_bufferoffset; int *modellightmapoffsets; int modelnumvertices; int modelnumtriangles; const msurface_t *modelsurfaces; qboolean batchgeneratedvertex; qboolean batchmultidraw; int batchmultidrawnumsurfaces; const msurface_t **batchmultidrawsurfacelist; int batchfirstvertex; int batchnumvertices; int batchfirsttriangle; int batchnumtriangles; r_vertexmesh_t *batchvertexmesh; const r_meshbuffer_t *batchvertexmesh_vertexbuffer; int batchvertexmesh_bufferoffset; float *batchvertex3f; const r_meshbuffer_t *batchvertex3f_vertexbuffer; int batchvertex3f_bufferoffset; float *batchsvector3f; const r_meshbuffer_t *batchsvector3f_vertexbuffer; int batchsvector3f_bufferoffset; float *batchtvector3f; const r_meshbuffer_t *batchtvector3f_vertexbuffer; int batchtvector3f_bufferoffset; float *batchnormal3f; const r_meshbuffer_t *batchnormal3f_vertexbuffer; int batchnormal3f_bufferoffset; float *batchlightmapcolor4f; const r_meshbuffer_t *batchlightmapcolor4f_vertexbuffer; int batchlightmapcolor4f_bufferoffset; float *batchtexcoordtexture2f; const r_meshbuffer_t *batchtexcoordtexture2f_vertexbuffer; int batchtexcoordtexture2f_bufferoffset; float *batchtexcoordlightmap2f; const r_meshbuffer_t *batchtexcoordlightmap2f_vertexbuffer; int batchtexcoordlightmap2f_bufferoffset; unsigned char *batchskeletalindex4ub; const r_meshbuffer_t *batchskeletalindex4ub_vertexbuffer; int batchskeletalindex4ub_bufferoffset; unsigned char *batchskeletalweight4ub; const r_meshbuffer_t *batchskeletalweight4ub_vertexbuffer; int batchskeletalweight4ub_bufferoffset; int *batchelement3i; const r_meshbuffer_t *batchelement3i_indexbuffer; int batchelement3i_bufferoffset; unsigned short *batchelement3s; const r_meshbuffer_t *batchelement3s_indexbuffer; int batchelement3s_bufferoffset; int batchskeletalnumtransforms; float *batchskeletaltransform3x4; const r_meshbuffer_t *batchskeletaltransform3x4buffer; int batchskeletaltransform3x4offset; int batchskeletaltransform3x4size; float *passcolor4f; const r_meshbuffer_t *passcolor4f_vertexbuffer; int passcolor4f_bufferoffset; int ent_skinnum; int ent_qwskin; int ent_flags; int ent_alttextures; double shadertime; matrix4x4_t matrix; matrix4x4_t inversematrix; float matrixscale; float inversematrixscale; frameblend_t frameblend[(4 * 2)]; skeleton_t *skeleton; vec3_t modellight_ambient; vec3_t modellight_diffuse; vec3_t modellight_lightdir; vec3_t colormap_pantscolor; vec3_t colormap_shirtcolor; float colormod[4]; float glowmod[3]; vec3_t localvieworigin; float basepolygonfactor; float basepolygonoffset; texture_t *texture; rtexture_t *lightmaptexture; rtexture_t *deluxemaptexture; qboolean uselightmaptexture; float fograngerecip; float fogmasktabledistmultiplier; float fogplane[4]; float fogheightfade; float fogplaneviewdist; const rtlight_t *rtlight; vec3_t entitylightorigin; matrix4x4_t entitytolight; matrix4x4_t entitytoattenuationxyz; matrix4x4_t entitytoattenuationz; float userwavefunc_param[4]; entity_render_t *entity; } rsurfacestate_t; extern rsurfacestate_t rsurface; void R_HDR_UpdateIrisAdaptation(const vec3_t point); void RSurf_ActiveWorldEntity(void); void RSurf_ActiveModelEntity(const entity_render_t *ent, qboolean wantnormals, qboolean wanttangents, qboolean prepass); void RSurf_ActiveCustomEntity(const matrix4x4_t *matrix, const matrix4x4_t *inversematrix, int entflags, double shadertime, float r, float g, float b, float a, int numvertices, const float *vertex3f, const float *texcoord2f, const float *normal3f, const float *svector3f, const float *tvector3f, const float *color4f, int numtriangles, const int *element3i, const unsigned short *element3s, qboolean wantnormals, qboolean wanttangents); void RSurf_SetupDepthAndCulling(void); void R_Mesh_ResizeArrays(int newvertices); texture_t *R_GetCurrentTexture(texture_t *t); void R_DrawWorldSurfaces(qboolean skysurfaces, qboolean writedepth, qboolean depthonly, qboolean debug, qboolean prepass); void R_DrawModelSurfaces(entity_render_t *ent, qboolean skysurfaces, qboolean writedepth, qboolean depthonly, qboolean debug, qboolean prepass); void R_AddWaterPlanes(entity_render_t *ent); void R_DrawCustomSurface(skinframe_t *skinframe, const matrix4x4_t *texmatrix, int materialflags, int firstvertex, int numvertices, int firsttriangle, int numtriangles, qboolean writedepth, qboolean prepass); void R_DrawCustomSurface_Texture(texture_t *texture, const matrix4x4_t *texmatrix, int materialflags, int firstvertex, int numvertices, int firsttriangle, int numtriangles, qboolean writedepth, qboolean prepass); # 494 "../../../render.h" void RSurf_PrepareVerticesForBatch(int batchneed, int texturenumsurfaces, const msurface_t **texturesurfacelist); void RSurf_DrawBatch(void); void R_DecalSystem_SplatEntities(const vec3_t org, const vec3_t normal, float r, float g, float b, float a, float s1, float t1, float s2, float t2, float size); typedef enum rsurfacepass_e { RSURFPASS_BASE, RSURFPASS_BACKGROUND, RSURFPASS_RTLIGHT, RSURFPASS_DEFERREDGEOMETRY } rsurfacepass_t; void R_SetupShader_Generic(rtexture_t *first, rtexture_t *second, int texturemode, int rgbscale, qboolean usegamma, qboolean notrippy, qboolean suppresstexalpha); void R_SetupShader_Generic_NoTexture(qboolean usegamma, qboolean notrippy); void R_SetupShader_DepthOrShadow(qboolean notrippy, qboolean depthrgb, qboolean skeletal); void R_SetupShader_Surface(const vec3_t lightcolorbase, qboolean modellighting, float ambientscale, float diffusescale, float specularscale, rsurfacepass_t rsurfacepass, int texturenumsurfaces, const msurface_t **texturesurfacelist, void *waterplane, qboolean notrippy); void R_SetupShader_DeferredLight(const rtlight_t *rtlight); typedef struct r_waterstate_waterplane_s { rtexture_t *texture_refraction; rtexture_t *texture_reflection; rtexture_t *texture_camera; int fbo_refraction; int fbo_reflection; int fbo_camera; mplane_t plane; int materialflags; unsigned char pvsbits[(65536 +7)>>3]; qboolean pvsvalid; int camera_entity; vec3_t mins, maxs; } r_waterstate_waterplane_t; typedef struct r_waterstate_s { int waterwidth, waterheight; int texturewidth, textureheight; int camerawidth, cameraheight; rtexture_t *depthtexture; int maxwaterplanes; int numwaterplanes; r_waterstate_waterplane_t waterplanes[16]; float screenscale[2]; float screencenter[2]; qboolean enabled; qboolean renderingscene; qboolean hideplayer; } r_waterstate_t; typedef struct r_framebufferstate_s { textype_t textype; int fbo; int screentexturewidth, screentextureheight; rtexture_t *colortexture; rtexture_t *depthtexture; rtexture_t *ghosttexture; rtexture_t *bloomtexture[2]; int bloomfbo[2]; int bloomindex; int bloomwidth, bloomheight; int bloomtexturewidth, bloomtextureheight; float screentexcoord2f[8]; float bloomtexcoord2f[8]; float offsettexcoord2f[8]; r_viewport_t bloomviewport; r_waterstate_t water; qboolean ghosttexture_valid; qboolean usedepthtextures; } r_framebufferstate_t; extern r_framebufferstate_t r_fb; extern cvar_t r_viewfbo; void R_ResetViewRendering2D_Common(int fbo, rtexture_t *depthtexture, rtexture_t *colortexture, float x2, float y2); void R_ResetViewRendering2D(int fbo, rtexture_t *depthtexture, rtexture_t *colortexture); void R_ResetViewRendering3D(int fbo, rtexture_t *depthtexture, rtexture_t *colortexture); void R_SetupView(qboolean allowwaterclippingplane, int fbo, rtexture_t *depthtexture, rtexture_t *colortexture); extern const float r_screenvertex3f[12]; extern cvar_t r_shadows; extern cvar_t r_shadows_darken; extern cvar_t r_shadows_drawafterrtlighting; extern cvar_t r_shadows_castfrombmodels; extern cvar_t r_shadows_throwdistance; extern cvar_t r_shadows_throwdirection; extern cvar_t r_shadows_focus; extern cvar_t r_shadows_shadowmapscale; extern cvar_t r_shadows_shadowmapbias; extern cvar_t r_transparent_alphatocoverage; extern cvar_t r_transparent_sortsurfacesbynearest; extern cvar_t r_transparent_useplanardistance; extern cvar_t r_transparent_sortarraysize; extern cvar_t r_transparent_sortmindist; extern cvar_t r_transparent_sortmaxdist; void R_Model_Sprite_Draw(entity_render_t *ent); struct prvm_prog_s; void R_UpdateFog(void); qboolean CL_VM_UpdateView(double frametime); void SCR_DrawConsole(void); void R_Shadow_EditLights_DrawSelectedLightProperties(void); void R_DecalSystem_Reset(decalsystem_t *decalsystem); void R_Shadow_UpdateBounceGridTexture(void); void R_DrawLightningBeams(void); void VM_CL_AddPolygonsToMeshQueue(struct prvm_prog_s *prog); void R_DrawPortals(void); void R_DrawModelShadows(int fbo, rtexture_t *depthtexture, rtexture_t *colortexture); void R_DrawModelShadowMaps(int fbo, rtexture_t *depthtexture, rtexture_t *colortexture); void R_BuildLightMap(const entity_render_t *ent, msurface_t *surface); void R_Water_AddWaterPlane(msurface_t *surface, int entno); int R_Shadow_GetRTLightInfo(unsigned int lightindex, float *origin, float *radius, float *color); dp_font_t *FindFont(const char *title, qboolean allocate_new); void LoadFont(qboolean override, const char *name, dp_font_t *fnt, float scale, float voffset); void Render_Init(void); void R_Textures_Init(void); void GL_Draw_Init(void); void GL_Main_Init(void); void R_Shadow_Init(void); void R_Sky_Init(void); void GL_Surf_Init(void); void R_Particles_Init(void); void R_Explosion_Init(void); void gl_backend_init(void); void Sbar_Init(void); void R_LightningBeams_Init(void); void Mod_RenderInit(void); void Font_Init(void); qboolean R_CompileShader_CheckStaticParms(void); void R_GLSL_Restart_f(void); # 396 "../../../quakedef.h" 2 # 1 "../../../progs.h" 1 # 23 "../../../progs.h" # 1 "../../../pr_comp.h" 1 # 26 "../../../pr_comp.h" typedef unsigned int func_t; typedef int string_t; typedef enum etype_e {ev_void, ev_string, ev_float, ev_vector, ev_entity, ev_field, ev_function, ev_pointer} etype_t; # 45 "../../../pr_comp.h" typedef enum opcode_e { OP_DONE, OP_MUL_F, OP_MUL_V, OP_MUL_FV, OP_MUL_VF, OP_DIV_F, OP_ADD_F, OP_ADD_V, OP_SUB_F, OP_SUB_V, OP_EQ_F, OP_EQ_V, OP_EQ_S, OP_EQ_E, OP_EQ_FNC, OP_NE_F, OP_NE_V, OP_NE_S, OP_NE_E, OP_NE_FNC, OP_LE, OP_GE, OP_LT, OP_GT, OP_LOAD_F, OP_LOAD_V, OP_LOAD_S, OP_LOAD_ENT, OP_LOAD_FLD, OP_LOAD_FNC, OP_ADDRESS, OP_STORE_F, OP_STORE_V, OP_STORE_S, OP_STORE_ENT, OP_STORE_FLD, OP_STORE_FNC, OP_STOREP_F, OP_STOREP_V, OP_STOREP_S, OP_STOREP_ENT, OP_STOREP_FLD, OP_STOREP_FNC, OP_RETURN, OP_NOT_F, OP_NOT_V, OP_NOT_S, OP_NOT_ENT, OP_NOT_FNC, OP_IF, OP_IFNOT, OP_CALL0, OP_CALL1, OP_CALL2, OP_CALL3, OP_CALL4, OP_CALL5, OP_CALL6, OP_CALL7, OP_CALL8, OP_STATE, OP_GOTO, OP_AND, OP_OR, OP_BITAND, OP_BITOR } opcode_t; typedef struct statement_s { unsigned short op; signed short a,b,c; } dstatement_t; typedef struct ddef_s { unsigned short type; unsigned short ofs; int s_name; } ddef_t; typedef struct dfunction_s { int first_statement; int parm_start; int locals; int profile; int s_name; int s_file; int numparms; unsigned char parm_size[8]; } dfunction_t; typedef struct mfunction_s { int first_statement; int parm_start; int locals; double tprofile; double tbprofile; double profile; double builtinsprofile; double callcount; double totaltime; double tprofile_total; double profile_total; double builtinsprofile_total; int recursion; int s_name; int s_file; int numparms; unsigned char parm_size[8]; } mfunction_t; typedef struct mstatement_s { opcode_t op; int operand[3]; int jumpabsolute; } mstatement_t; typedef struct dprograms_s { int version; int crc; int ofs_statements; int numstatements; int ofs_globaldefs; int numglobaldefs; int ofs_fielddefs; int numfielddefs; int ofs_functions; int numfunctions; int ofs_strings; int numstrings; int ofs_globals; int numglobals; int entityfields; } dprograms_t; # 24 "../../../progs.h" 2 # 60 "../../../progs.h" typedef struct edict_odefunc_s { int type; vec3_t v1; vec3_t v2; struct edict_odefunc_s *next; }edict_odefunc_t; typedef struct edict_engineprivate_s { qboolean free; float freetime; int mark; const char *allocation_origin; qboolean move; vec3_t cullmins, cullmaxs; int pvs_numclusters; int pvs_clusterlist[16]; link_t areagrid[16]; int areagridmarknumber; vec3_t areamins, areamaxs; entity_state_t baseline; int suspendedinairflag; qboolean waterposition_forceupdate; vec3_t waterposition_origin; vec3_t moved_from; vec3_t moved_fromangles; framegroupblend_t framegroupblend[4]; frameblend_t frameblend[(4 * 2)]; skeleton_t skeleton; qboolean ode_physics; void *ode_body; void *ode_geom; void *ode_joint; float *ode_vertex3f; int *ode_element3i; int ode_numvertices; int ode_numtriangles; edict_odefunc_t *ode_func; vec3_t ode_mins; vec3_t ode_maxs; vec3_t ode_scale; vec_t ode_mass; float ode_friction; vec3_t ode_origin; vec3_t ode_velocity; vec3_t ode_angles; vec3_t ode_avelocity; qboolean ode_gravity; int ode_modelindex; vec_t ode_movelimit; matrix4x4_t ode_offsetmatrix; matrix4x4_t ode_offsetimatrix; int ode_joint_type; int ode_joint_enemy; int ode_joint_aiment; vec3_t ode_joint_origin; vec3_t ode_joint_angles; vec3_t ode_joint_velocity; vec3_t ode_joint_movedir; void *ode_massbuf; } edict_engineprivate_t; # 397 "../../../quakedef.h" 2 # 1 "../../../progsvm.h" 1 # 33 "../../../progsvm.h" # 1 "../../../progdefs.h" 1 # 26 "../../../progdefs.h" typedef struct globalvars_s { int pad[28]; int self; int other; int world; float time; float frametime; float force_retouch; string_t mapname; float deathmatch; float coop; float teamplay; float serverflags; float total_secrets; float total_monsters; float found_secrets; float killed_monsters; float parm1; float parm2; float parm3; float parm4; float parm5; float parm6; float parm7; float parm8; float parm9; float parm10; float parm11; float parm12; float parm13; float parm14; float parm15; float parm16; vec3_t v_forward; vec3_t v_up; vec3_t v_right; float trace_allsolid; float trace_startsolid; float trace_fraction; vec3_t trace_endpos; vec3_t trace_plane_normal; float trace_plane_dist; int trace_ent; float trace_inopen; float trace_inwater; int msg_entity; func_t main; func_t StartFrame; func_t PlayerPreThink; func_t PlayerPostThink; func_t ClientKill; func_t ClientConnect; func_t PutClientInServer; func_t ClientDisconnect; func_t SetNewParms; func_t SetChangeParms; } globalvars_t; typedef struct entvars_s { float modelindex; vec3_t absmin; vec3_t absmax; float ltime; float movetype; float solid; vec3_t origin; vec3_t oldorigin; vec3_t velocity; vec3_t angles; vec3_t avelocity; vec3_t punchangle; string_t classname; string_t model; float frame; float skin; float effects; vec3_t mins; vec3_t maxs; vec3_t size; func_t touch; func_t use; func_t think; func_t blocked; float nextthink; int groundentity; float health; float frags; float weapon; string_t weaponmodel; float weaponframe; float currentammo; float ammo_shells; float ammo_nails; float ammo_rockets; float ammo_cells; float items; float takedamage; int chain; float deadflag; vec3_t view_ofs; float button0; float button1; float button2; float impulse; float fixangle; vec3_t v_angle; float idealpitch; string_t netname; int enemy; float flags; float colormap; float team; float max_health; float teleport_time; float armortype; float armorvalue; float waterlevel; float watertype; float ideal_yaw; float yaw_speed; int aiment; int goalentity; float spawnflags; string_t target; string_t targetname; float dmg_take; float dmg_save; int dmg_inflictor; int owner; vec3_t movedir; string_t message; float sounds; string_t noise; string_t noise1; string_t noise2; string_t noise3; } entvars_t; # 34 "../../../progsvm.h" 2 # 1 "../../../clprogdefs.h" 1 # 35 "../../../progsvm.h" 2 typedef struct prvm_stack_s { int s; mfunction_t *f; double tprofile_acc; double profile_acc; double builtinsprofile_acc; } prvm_stack_t; typedef union prvm_eval_s { prvm_int_t string; prvm_vec_t _float; prvm_vec_t vector[3]; prvm_int_t function; prvm_int_t ivector[3]; prvm_int_t _int; prvm_int_t edict; } prvm_eval_t; typedef struct prvm_required_field_s { int type; const char *name; } prvm_required_field_t; typedef struct prvm_edict_private_s { qboolean free; float freetime; int mark; const char *allocation_origin; } prvm_edict_private_t; typedef struct prvm_edict_s { union { prvm_edict_private_t *required; prvm_vec_t *fp; prvm_int_t *ip; edict_engineprivate_t *server; # 108 "../../../progsvm.h" } priv; union { prvm_vec_t *fp; prvm_int_t *ip; } fields; } prvm_edict_t; typedef struct vmpolygons_triangle_s { rtexture_t *texture; int drawflag; qboolean hasalpha; unsigned short elements[3]; } vmpolygons_triangle_t; typedef struct vmpolygons_s { mempool_t *pool; qboolean initialized; int max_vertices; int num_vertices; float *data_vertex3f; float *data_color4f; float *data_texcoord2f; int max_triangles; int num_triangles; vmpolygons_triangle_t *data_triangles; unsigned short *data_sortedelement3s; qboolean begin_active; int begin_draw2d; rtexture_t *begin_texture; int begin_drawflag; int begin_vertices; float begin_vertex[64][3]; float begin_color[64][4]; float begin_texcoord[64][2]; qboolean begin_texture_hasalpha; } vmpolygons_t; extern prvm_eval_t prvm_badvalue; # 275 "../../../progsvm.h" struct prvm_prog_s; typedef void (*prvm_builtin_t) (struct prvm_prog_s *prog); typedef struct prvm_prog_fieldoffsets_s { # 317 "../../../progsvm.h" # 1 "../../../prvm_offsets.h" 1 int SendEntity; int SendFlags; int Version; int absmax; int absmin; int aiment; int alpha; int ammo_cells; int ammo_cells1; int ammo_lava_nails; int ammo_multi_rockets; int ammo_nails; int ammo_nails1; int ammo_plasma; int ammo_rockets; int ammo_rockets1; int ammo_shells; int ammo_shells1; int angles; int armortype; int armorvalue; int avelocity; int blocked; int bouncefactor; int bouncestop; int button0; int button1; int button2; int button3; int button4; int button5; int button6; int button7; int button8; int button9; int button10; int button11; int button12; int button13; int button14; int button15; int button16; int buttonchat; int buttonuse; int camera_transform; int chain; int classname; int clientcamera; int clientcolors; int clientstatus; int color; int colormap; int colormod; int contentstransition; int crypto_encryptmethod; int crypto_idfp; int crypto_idfp_signed; int crypto_keyfp; int crypto_mykeyfp; int crypto_signmethod; int currentammo; int cursor_active; int cursor_screen; int cursor_trace_endpos; int cursor_trace_ent; int cursor_trace_start; int customizeentityforclient; int deadflag; int disableclientprediction; int discardabledemo; int dmg_inflictor; int dmg_save; int dmg_take; int dphitcontentsmask; int drawmask; int drawonlytoclient; int effects; int enemy; int entnum; int exteriormodeltoclient; int fixangle; int flags; int frags; int frame; int frame1time; int frame2; int frame2time; int frame3; int frame3time; int frame4; int frame4time; int fullbright; int glow_color; int glow_size; int glow_trail; int glowmod; int goalentity; int gravity; int groundentity; int health; int ideal_yaw; int idealpitch; int impulse; int items; int items2; int geomtype; int jointtype; int forcetype; int lerpfrac; int lerpfrac3; int lerpfrac4; int light_lev; int ltime; int mass; int massofs; int friction; int maxcontacts; int erp; int max_health; int maxs; int message; int mins; int model; int modelflags; int modelindex; int movedir; int movement; int movetype; int movetypesteplandevent; int netaddress; int netname; int nextthink; int nodrawtoclient; int noise; int noise1; int noise2; int noise3; int oldorigin; int origin; int owner; int pflags; int ping; int ping_movementloss; int ping_packetloss; int pitch_speed; int playermodel; int playerskin; int pmodel; int pmove_flags; int predraw; int punchangle; int punchvector; int renderamt; int renderflags; int scale; int modelscale_vec; int sendcomplexanimation; int shadertime; int size; int skeletonindex; int skin; int solid; int sounds; int spawnflags; int style; int tag_entity; int tag_index; int takedamage; int target; int targetname; int team; int teleport_time; int think; int touch; int traileffectnum; int use; int userwavefunc_param0; int userwavefunc_param1; int userwavefunc_param2; int userwavefunc_param3; int v_angle; int velocity; int modellight_ambient; int modellight_diffuse; int modellight_dir; int view_ofs; int viewmodelforclient; int viewzoom; int waterlevel; int watertype; int weapon; int weaponframe; int weaponmodel; int yaw_speed; # 318 "../../../progsvm.h" 2 # 354 "../../../progsvm.h" } prvm_prog_fieldoffsets_t; typedef struct prvm_prog_globaloffsets_s { # 396 "../../../progsvm.h" # 1 "../../../prvm_offsets.h" 1 int SV_InitCmd; int clientcommandframe; int cltime; int coop; int deathmatch; int dmg_origin; int dmg_save; int dmg_take; int drawfont; int drawfontscale; int force_retouch; int found_secrets; int frametime; int gettaginfo_forward; int gettaginfo_name; int gettaginfo_offset; int gettaginfo_parent; int gettaginfo_right; int gettaginfo_up; int getlight_ambient; int getlight_diffuse; int getlight_dir; int input_angles; int input_buttons; int input_movevalues; int input_timelength; int intermission; int killed_monsters; int mapname; int maxclients; int movevar_accelerate; int movevar_airaccelerate; int movevar_entgravity; int movevar_friction; int movevar_gravity; int movevar_maxspeed; int movevar_spectatormaxspeed; int movevar_stopspeed; int movevar_wateraccelerate; int movevar_waterfriction; int msg_entity; int other; int parm1; int parm2; int parm3; int parm4; int parm5; int parm6; int parm7; int parm8; int parm9; int parm10; int parm11; int parm12; int parm13; int parm14; int parm15; int parm16; int particle_airfriction; int particle_alpha; int particle_alphafade; int particle_angle; int particle_blendmode; int particle_bounce; int particle_color1; int particle_color2; int particle_delaycollision; int particle_delayspawn; int particle_gravity; int particle_liquidfriction; int particle_orientation; int particle_originjitter; int particle_qualityreduction; int particle_size; int particle_sizeincrease; int particle_spin; int particle_stainalpha; int particle_staincolor1; int particle_staincolor2; int particle_stainsize; int particle_staintex; int particle_stretch; int particle_tex; int particle_time; int particle_type; int particle_velocityjitter; int particles_alphamax; int particles_alphamin; int particles_fade; int particles_colormax; int particles_colormin; int player_localentnum; int player_localnum; int pmove_inwater; int pmove_maxs; int pmove_mins; int pmove_onground; int pmove_waterjumptime; int pmove_jump_held; int pmove_org; int pmove_vel; int require_spawnfunc_prefix; int sb_showscores; int self; int servercommandframe; int serverdeltatime; int serverflags; int serverprevtime; int servertime; int teamplay; int time; int total_monsters; int total_secrets; int trace_allsolid; int trace_dphitcontents; int trace_dphitq3surfaceflags; int trace_dphittexturename; int trace_dpstartcontents; int trace_endpos; int trace_ent; int trace_fraction; int trace_inopen; int trace_inwater; int trace_networkentity; int trace_plane_dist; int trace_plane_normal; int trace_startsolid; int transparent_offset; int v_forward; int v_right; int v_up; int view_angles; int view_punchangle; int view_punchvector; int world; int worldstatus; int sound_starttime; # 397 "../../../progsvm.h" 2 # 433 "../../../progsvm.h" } prvm_prog_globaloffsets_t; typedef struct prvm_prog_funcoffsets_s { # 475 "../../../progsvm.h" # 1 "../../../prvm_offsets.h" 1 int CSQC_ConsoleCommand; int CSQC_Ent_Remove; int CSQC_Ent_Spawn; int CSQC_Ent_Update; int CSQC_Event; int CSQC_Event_Sound; int CSQC_Init; int CSQC_InputEvent; int CSQC_Parse_CenterPrint; int CSQC_Parse_Print; int CSQC_Parse_StuffCmd; int CSQC_Parse_TempEntity; int CSQC_Shutdown; int CSQC_UpdateView; int ClientConnect; int ClientDisconnect; int ClientKill; int EndFrame; int GameCommand; int PlayerPostThink; int PlayerPreThink; int PutClientInServer; int RestoreGame; int SV_ChangeTeam; int SV_OnEntityNoSpawnFunction; int SV_OnEntityPostSpawnFunction; int SV_OnEntityPreSpawnFunction; int SV_ParseClientCommand; int SV_PausedTic; int SV_PlayerPhysics; int SV_Shutdown; int SetChangeParms; int SetNewParms; int StartFrame; int URI_Get_Callback; int m_draw; int m_init; int m_keydown; int m_keyup; int m_newmap; int m_gethostcachecategory; int m_shutdown; int m_toggle; int main; # 476 "../../../progsvm.h" 2 # 512 "../../../progsvm.h" } prvm_prog_funcoffsets_t; typedef struct prvm_stringbuffer_s { int max_strings; int num_strings; char **strings; const char *origin; unsigned char flags; } prvm_stringbuffer_t; typedef struct prvm_prog_s { double starttime; double profiletime; unsigned int id; mfunction_t *functions; int functions_covered; char *strings; int stringssize; ddef_t *fielddefs; ddef_t *globaldefs; mstatement_t *statements; int entityfields; int entityfieldsarea; int progs_version; int progs_crc; int progs_numstatements; int progs_numglobaldefs; int progs_numfielddefs; int progs_numfunctions; int progs_numstrings; int progs_numglobals; int progs_entityfields; int numstatements; int numglobaldefs; int numfielddefs; int numfunctions; int numstrings; int numglobals; int *statement_linenums; int *statement_columnnums; double *statement_profile; int statements_covered; double *explicit_profile; int explicit_covered; int numexplicitcoveragestatements; union { prvm_vec_t *fp; prvm_int_t *ip; } globals; int maxknownstrings; int numknownstrings; int firstfreeknownstring; const char **knownstrings; unsigned char *knownstrings_freeable; const char **knownstrings_origin; const char ***stringshash; memexpandablearray_t stringbuffersarray; mempool_t *progs_mempool; prvm_builtin_t *builtins; int numbuiltins; int argc; int trace; int break_statement; int break_stack_index; int watch_global; etype_t watch_global_type; prvm_eval_t watch_global_value; int watch_edict; int watch_field; etype_t watch_field_type; prvm_eval_t watch_edictfield_value; mfunction_t *xfunction; int xstatement; prvm_stack_t stack[1024 +1]; int depth; prvm_int_t localstack[16384]; int localstack_used; unsigned short filecrc; qfile_t *openfiles[256]; const char * openfiles_origin[256]; fssearch_t *opensearches[128]; const char * opensearches_origin[128]; skeleton_t *skeletons[32768]; sizebuf_t tempstringsbuf; vmpolygons_t vmpolygons; int num_edicts; int max_edicts; int limit_edicts; int reserved_edicts; prvm_edict_t *edicts; prvm_vec_t *edictsfields; void *edictprivate; int edictprivate_size; prvm_prog_fieldoffsets_t fieldoffsets; prvm_prog_globaloffsets_t globaloffsets; prvm_prog_funcoffsets_t funcoffsets; qboolean allowworldwrites; const char *name; int flag; const char *extensionstring; qboolean loadintoworld; qboolean loaded; qboolean leaktest_active; void *po; const char *statestring; # 694 "../../../progsvm.h" ddef_t *self; void (*begin_increase_edicts)(struct prvm_prog_s *prog); void (*end_increase_edicts)(struct prvm_prog_s *prog); void (*init_edict)(struct prvm_prog_s *prog, prvm_edict_t *edict); void (*free_edict)(struct prvm_prog_s *prog, prvm_edict_t *ed); void (*count_edicts)(struct prvm_prog_s *prog); qboolean (*load_edict)(struct prvm_prog_s *prog, prvm_edict_t *ent); void (*init_cmd)(struct prvm_prog_s *prog); void (*reset_cmd)(struct prvm_prog_s *prog); void (*error_cmd)(const char *format, ...) __attribute__ ((format (printf, 1, 1 +1))); void (*ExecuteProgram)(struct prvm_prog_s *prog, func_t fnum, const char *errormessage); } prvm_prog_t; typedef enum prvm_progindex_e { PRVM_PROG_SERVER, PRVM_PROG_CLIENT, PRVM_PROG_MENU, PRVM_PROG_MAX } prvm_progindex_t; extern prvm_prog_t prvm_prog_list[PRVM_PROG_MAX]; prvm_prog_t *PRVM_ProgFromString(const char *str); prvm_prog_t *PRVM_FriendlyProgFromString(const char *str); # 740 "../../../progsvm.h" extern prvm_builtin_t vm_sv_builtins[]; extern prvm_builtin_t vm_cl_builtins[]; extern prvm_builtin_t vm_m_builtins[]; extern const int vm_sv_numbuiltins; extern const int vm_cl_numbuiltins; extern const int vm_m_numbuiltins; extern const char * vm_sv_extensions; extern const char * vm_m_extensions; void SVVM_init_cmd(prvm_prog_t *prog); void SVVM_reset_cmd(prvm_prog_t *prog); void CLVM_init_cmd(prvm_prog_t *prog); void CLVM_reset_cmd(prvm_prog_t *prog); void MVM_init_cmd(prvm_prog_t *prog); void MVM_reset_cmd(prvm_prog_t *prog); void VM_Cmd_Init(prvm_prog_t *prog); void VM_Cmd_Reset(prvm_prog_t *prog); void PRVM_Init (void); void SVVM_ExecuteProgram (prvm_prog_t *prog, func_t fnum, const char *errormessage); void CLVM_ExecuteProgram (prvm_prog_t *prog, func_t fnum, const char *errormessage); void MVM_ExecuteProgram (prvm_prog_t *prog, func_t fnum, const char *errormessage); # 786 "../../../progsvm.h" void PRVM_Profile (prvm_prog_t *prog, int maxfunctions, double mintime, int sortby); void PRVM_Profile_f (void); void PRVM_ChildProfile_f (void); void PRVM_CallProfile_f (void); void PRVM_PrintFunction_f (void); void PRVM_PrintState(prvm_prog_t *prog, int stack_index); void PRVM_Crash(prvm_prog_t *prog); void PRVM_ShortStackTrace(prvm_prog_t *prog, char *buf, size_t bufsize); const char *PRVM_AllocationOrigin(prvm_prog_t *prog); ddef_t *PRVM_ED_FindField(prvm_prog_t *prog, const char *name); ddef_t *PRVM_ED_FindGlobal(prvm_prog_t *prog, const char *name); mfunction_t *PRVM_ED_FindFunction(prvm_prog_t *prog, const char *name); int PRVM_ED_FindFieldOffset(prvm_prog_t *prog, const char *name); int PRVM_ED_FindGlobalOffset(prvm_prog_t *prog, const char *name); func_t PRVM_ED_FindFunctionOffset(prvm_prog_t *prog, const char *name); void PRVM_MEM_IncreaseEdicts(prvm_prog_t *prog); qboolean PRVM_ED_CanAlloc(prvm_prog_t *prog, prvm_edict_t *e); prvm_edict_t *PRVM_ED_Alloc(prvm_prog_t *prog); void PRVM_ED_Free(prvm_prog_t *prog, prvm_edict_t *ed); void PRVM_ED_ClearEdict(prvm_prog_t *prog, prvm_edict_t *e); void PRVM_PrintFunctionStatements(prvm_prog_t *prog, const char *name); void PRVM_ED_Print(prvm_prog_t *prog, prvm_edict_t *ed, const char *wildcard_fieldname); void PRVM_ED_Write(prvm_prog_t *prog, qfile_t *f, prvm_edict_t *ed); const char *PRVM_ED_ParseEdict(prvm_prog_t *prog, const char *data, prvm_edict_t *ent); void PRVM_ED_WriteGlobals(prvm_prog_t *prog, qfile_t *f); void PRVM_ED_ParseGlobals(prvm_prog_t *prog, const char *data); void PRVM_ED_LoadFromFile(prvm_prog_t *prog, const char *data); unsigned int PRVM_EDICT_NUM_ERROR(prvm_prog_t *prog, unsigned int n, const char *filename, int fileline); # 855 "../../../progsvm.h" extern int prvm_type_size[8]; void PRVM_Init_Exec(prvm_prog_t *prog); void PRVM_ED_PrintEdicts_f (void); void PRVM_ED_PrintNum (prvm_prog_t *prog, int ent, const char *wildcard_fieldname); const char *PRVM_GetString(prvm_prog_t *prog, int num); int PRVM_SetEngineString(prvm_prog_t *prog, const char *s); const char *PRVM_ChangeEngineString(prvm_prog_t *prog, int i, const char *s); int PRVM_SetTempString(prvm_prog_t *prog, const char *s); int PRVM_AllocString(prvm_prog_t *prog, size_t bufferlength, char **pointer); void PRVM_FreeString(prvm_prog_t *prog, int num); ddef_t *PRVM_ED_FieldAtOfs(prvm_prog_t *prog, int ofs); qboolean PRVM_ED_ParseEpair(prvm_prog_t *prog, prvm_edict_t *ent, ddef_t *key, const char *s, qboolean parsebackslash); char *PRVM_UglyValueString(prvm_prog_t *prog, etype_t type, prvm_eval_t *val, char *line, size_t linelength); char *PRVM_GlobalString(prvm_prog_t *prog, int ofs, char *line, size_t linelength); char *PRVM_GlobalStringNoContents(prvm_prog_t *prog, int ofs, char *line, size_t linelength); # 885 "../../../progsvm.h" void PRVM_Prog_Init(prvm_prog_t *prog); void PRVM_Prog_Load(prvm_prog_t *prog, const char *filename, unsigned char *data, fs_offset_t size, int numrequiredfunc, const char **required_func, int numrequiredfields, prvm_required_field_t *required_field, int numrequiredglobals, prvm_required_field_t *required_global); void PRVM_Prog_Reset(prvm_prog_t *prog); void PRVM_StackTrace(prvm_prog_t *prog); void PRVM_Breakpoint(prvm_prog_t *prog, int stack_index, const char *text); void PRVM_Watchpoint(prvm_prog_t *prog, int stack_index, const char *text, etype_t type, prvm_eval_t *o, prvm_eval_t *n); void VM_Warning(prvm_prog_t *prog, const char *fmt, ...) __attribute__ ((format (printf, 2, 2 +1))); void VM_GenerateFrameGroupBlend(prvm_prog_t *prog, framegroupblend_t *framegroupblend, const prvm_edict_t *ed); void VM_FrameBlendFromFrameGroupBlend(frameblend_t *frameblend, const framegroupblend_t *framegroupblend, const dp_model_t *model, double curtime); void VM_UpdateEdictSkeleton(prvm_prog_t *prog, prvm_edict_t *ed, const dp_model_t *edmodel, const frameblend_t *frameblend); void VM_RemoveEdictSkeleton(prvm_prog_t *prog, prvm_edict_t *ed); void PRVM_ExplicitCoverageEvent(prvm_prog_t *prog, mfunction_t *func, int statement); # 398 "../../../quakedef.h" 2 # 1 "../../../server.h" 1 # 25 "../../../server.h" typedef struct server_static_s { int maxclients, maxclients_next; struct client_s *clients; int serverflags; qboolean changelevel_issued; char serverinfo[1280]; float perf_cpuload; float perf_lost; float perf_offset_avg; float perf_offset_max; float perf_offset_sdev; float perf_acc_realtime; float perf_acc_sleeptime; float perf_acc_lost; float perf_acc_offset; float perf_acc_offset_squared; float perf_acc_offset_max; int perf_acc_offset_samples; unsigned char *csqc_progdata; size_t csqc_progsize_deflated; unsigned char *csqc_progdata_deflated; qboolean threaded; qboolean volatile threadstop; void *threadmutex; void *thread; } server_static_t; typedef enum server_state_e {ss_loading, ss_active} server_state_t; typedef struct server_floodaddress_s { double lasttime; lhnetaddress_t address; } server_floodaddress_t; typedef struct server_s { qboolean active; qboolean paused; double pausedstart; qboolean loadgame; protocolversion_t protocol; double time; double frametime; int lastcheck; double lastchecktime; int csqc_progcrc; int csqc_progsize; char csqc_progname[128]; world_t world; char name[64]; char worldmessage[40]; char worldbasename[128]; char worldname[128]; char worldnamenoextension[128]; struct model_s *worldmodel; char model_precache[8192][128]; struct model_s *models[8192]; char sound_precache[4096][128]; char lightstyles[256][64]; server_state_t state; sizebuf_t datagram; unsigned char datagram_buf[65536]; sizebuf_t reliable_datagram; unsigned char reliable_datagram_buf[65536]; sizebuf_t signon; unsigned char signon_buf[65536]; server_floodaddress_t connectfloodaddresses[16]; server_floodaddress_t getstatusfloodaddresses[128]; qboolean particleeffectnamesloaded; char particleeffectname[4096][128]; int writeentitiestoclient_stats_culled_pvs; int writeentitiestoclient_stats_culled_trace; int writeentitiestoclient_stats_visibleentities; int writeentitiestoclient_stats_totalentities; int writeentitiestoclient_cliententitynumber; int writeentitiestoclient_clientnumber; sizebuf_t *writeentitiestoclient_msg; vec3_t writeentitiestoclient_eyes[16]; int writeentitiestoclient_numeyes; int writeentitiestoclient_pvsbytes; unsigned char writeentitiestoclient_pvs[65536/8]; const entity_state_t *writeentitiestoclient_sendstates[32768]; unsigned short writeentitiestoclient_csqcsendstates[32768]; int numsendentities; entity_state_t sendentities[32768]; entity_state_t *sendentitiesindex[32768]; int sententitiesmark; int sententities[32768]; int sententitiesconsideration[32768]; unsigned char csqcentityversion[32768]; } server_t; typedef struct csqcentityframedb_s { int framenum; int num; unsigned short entno[256]; int sendflags[256]; } csqcentityframedb_t; typedef struct client_s { qboolean active; qboolean clientconnectcalled; qboolean prespawned; qboolean spawned; qboolean begun; int sendsignon; int rate; int rate_burstsize; double connecttime; double keepalivetime; netconn_t *netconnection; unsigned int movesequence; signed char movement_count[256]; unsigned int movement_highestsequence_seen; usercmd_t cmd; vec3_t wishdir; prvm_edict_t *edict; float ping; double clmovement_disabletimeout; float clmovement_inputtimeout; prvm_vec_t spawn_parms[16]; char name[128], old_name[128]; int colors, old_colors; int frags, old_frags; char playermodel[128], old_model[128]; char playerskin[128], old_skin[128]; char netaddress[128]; float visibletime[32768]; int csqcnumedicts; unsigned char csqcentityscope[32768]; unsigned int csqcentitysendflags[32768]; csqcentityframedb_t csqcentityframehistory[256]; int csqcentityframehistory_next; int csqcentityframe_lastreset; float nametime; int latestframenum; char weaponmodel[128]; int weaponmodelindex; int clientcamera; entityframe_database_t *entitydatabase; entityframe4_database_t *entitydatabase4; entityframe5_database_t *entitydatabase5; unsigned char statsdeltabits[(256 +7)/8]; int stats[256]; unsigned char unreliablemsg_data[65536]; sizebuf_t unreliablemsg; int unreliablemsg_splitpoints; int unreliablemsg_splitpoint[65536/16]; qfile_t *download_file; int download_expectedposition; qboolean download_started; char download_name[128]; qboolean download_deflate; qboolean fixangle_angles_set; vec3_t fixangle_angles; qfile_t *sv_demo_file; int num_skippedentityframes; unsigned int lastmovesequence; } client_t; # 386 "../../../server.h" extern cvar_t coop; extern cvar_t deathmatch; extern cvar_t fraglimit; extern cvar_t gamecfg; extern cvar_t noexit; extern cvar_t nomonsters; extern cvar_t pausable; extern cvar_t pr_checkextension; extern cvar_t samelevel; extern cvar_t saved1; extern cvar_t saved2; extern cvar_t saved3; extern cvar_t saved4; extern cvar_t savedgamecfg; extern cvar_t scratch1; extern cvar_t scratch2; extern cvar_t scratch3; extern cvar_t scratch4; extern cvar_t skill; extern cvar_t slowmo; extern cvar_t sv_accelerate; extern cvar_t sv_aim; extern cvar_t sv_airaccel_qw; extern cvar_t sv_airaccel_sideways_friction; extern cvar_t sv_airaccelerate; extern cvar_t sv_airstopaccelerate; extern cvar_t sv_airstrafeaccelerate; extern cvar_t sv_maxairstrafespeed; extern cvar_t sv_airstrafeaccel_qw; extern cvar_t sv_aircontrol; extern cvar_t sv_aircontrol_power; extern cvar_t sv_aircontrol_penalty; extern cvar_t sv_airspeedlimit_nonqw; extern cvar_t sv_allowdownloads; extern cvar_t sv_allowdownloads_archive; extern cvar_t sv_allowdownloads_config; extern cvar_t sv_allowdownloads_dlcache; extern cvar_t sv_allowdownloads_inarchive; extern cvar_t sv_areagrid_mingridsize; extern cvar_t sv_checkforpacketsduringsleep; extern cvar_t sv_clmovement_enable; extern cvar_t sv_clmovement_minping; extern cvar_t sv_clmovement_minping_disabletime; extern cvar_t sv_clmovement_inputtimeout; extern cvar_t sv_clmovement_maxnetfps; extern cvar_t sv_cullentities_nevercullbmodels; extern cvar_t sv_cullentities_pvs; extern cvar_t sv_cullentities_stats; extern cvar_t sv_cullentities_trace; extern cvar_t sv_cullentities_trace_delay; extern cvar_t sv_cullentities_trace_enlarge; extern cvar_t sv_cullentities_trace_prediction; extern cvar_t sv_cullentities_trace_samples; extern cvar_t sv_cullentities_trace_samples_extra; extern cvar_t sv_debugmove; extern cvar_t sv_echobprint; extern cvar_t sv_edgefriction; extern cvar_t sv_entpatch; extern cvar_t sv_fixedframeratesingleplayer; extern cvar_t sv_freezenonclients; extern cvar_t sv_friction; extern cvar_t sv_gameplayfix_blowupfallenzombies; extern cvar_t sv_gameplayfix_consistentplayerprethink; extern cvar_t sv_gameplayfix_delayprojectiles; extern cvar_t sv_gameplayfix_droptofloorstartsolid; extern cvar_t sv_gameplayfix_droptofloorstartsolid_nudgetocorrect; extern cvar_t sv_gameplayfix_easierwaterjump; extern cvar_t sv_gameplayfix_findradiusdistancetobox; extern cvar_t sv_gameplayfix_gravityunaffectedbyticrate; extern cvar_t sv_gameplayfix_grenadebouncedownslopes; extern cvar_t sv_gameplayfix_multiplethinksperframe; extern cvar_t sv_gameplayfix_noairborncorpse; extern cvar_t sv_gameplayfix_noairborncorpse_allowsuspendeditems; extern cvar_t sv_gameplayfix_nudgeoutofsolid; extern cvar_t sv_gameplayfix_nudgeoutofsolid_separation; extern cvar_t sv_gameplayfix_q2airaccelerate; extern cvar_t sv_gameplayfix_nogravityonground; extern cvar_t sv_gameplayfix_setmodelrealbox; extern cvar_t sv_gameplayfix_slidemoveprojectiles; extern cvar_t sv_gameplayfix_stepdown; extern cvar_t sv_gameplayfix_stepmultipletimes; extern cvar_t sv_gameplayfix_nostepmoveonsteepslopes; extern cvar_t sv_gameplayfix_swiminbmodels; extern cvar_t sv_gameplayfix_upwardvelocityclearsongroundflag; extern cvar_t sv_gameplayfix_downtracesupportsongroundflag; extern cvar_t sv_gameplayfix_q1bsptracelinereportstexture; extern cvar_t sv_gameplayfix_unstickplayers; extern cvar_t sv_gameplayfix_unstickentities; extern cvar_t sv_gameplayfix_fixedcheckwatertransition; extern cvar_t sv_gravity; extern cvar_t sv_idealpitchscale; extern cvar_t sv_jumpstep; extern cvar_t sv_jumpvelocity; extern cvar_t sv_maxairspeed; extern cvar_t sv_maxrate; extern cvar_t sv_maxspeed; extern cvar_t sv_maxvelocity; extern cvar_t sv_nostep; extern cvar_t sv_playerphysicsqc; extern cvar_t sv_progs; extern cvar_t sv_protocolname; extern cvar_t sv_random_seed; extern cvar_t sv_ratelimitlocalplayer; extern cvar_t sv_sound_land; extern cvar_t sv_sound_watersplash; extern cvar_t sv_stepheight; extern cvar_t sv_stopspeed; extern cvar_t sv_wallfriction; extern cvar_t sv_wateraccelerate; extern cvar_t sv_waterfriction; extern cvar_t sv_areadebug; extern cvar_t sys_ticrate; extern cvar_t teamplay; extern cvar_t temp1; extern cvar_t timelimit; extern mempool_t *sv_mempool; extern server_static_t svs; extern server_t sv; extern client_t *host_client; void SV_Init (void); void SV_StartParticle (vec3_t org, vec3_t dir, int color, int count); void SV_StartEffect (vec3_t org, int modelindex, int startframe, int framecount, int framerate); void SV_StartSound (prvm_edict_t *entity, int channel, const char *sample, int volume, float attenuation, qboolean reliable, float speed); void SV_StartPointSound (vec3_t origin, const char *sample, int volume, float attenuation, float speed); void SV_ConnectClient (int clientnum, netconn_t *netconnection); void SV_DropClient (qboolean crash); void SV_SendClientMessages(void); void SV_ReadClientMessage(void); int SV_ModelIndex(const char *s, int precachemode); int SV_SoundIndex(const char *s, int precachemode); int SV_ParticleEffectIndex(const char *name); dp_model_t *SV_GetModelByIndex(int modelindex); dp_model_t *SV_GetModelFromEdict(prvm_edict_t *ed); void SV_SetIdealPitch (void); void SV_AddUpdates (void); void SV_ClientThink (void); void SV_ClientPrint(const char *msg); void SV_ClientPrintf(const char *fmt, ...) __attribute__ ((format (printf, 1, 1 +1))); void SV_BroadcastPrint(const char *msg); void SV_BroadcastPrintf(const char *fmt, ...) __attribute__ ((format (printf, 1, 1 +1))); void SV_Physics (void); void SV_Physics_ClientMove (void); qboolean SV_PlayerCheckGround (prvm_edict_t *ent); qboolean SV_CheckBottom (prvm_edict_t *ent); qboolean SV_movestep (prvm_edict_t *ent, vec3_t move, qboolean relink, qboolean noenemy, qboolean settrace); void SV_LinkEdict(prvm_edict_t *ent); void SV_LinkEdict_TouchAreaGrid(prvm_edict_t *ent); void SV_LinkEdict_TouchAreaGrid_Call(prvm_edict_t *touch, prvm_edict_t *ent); qboolean SV_UnstickEntity (prvm_edict_t *ent); qboolean SV_NudgeOutOfSolid(prvm_edict_t *ent); int SV_GenericHitSuperContentsMask(const prvm_edict_t *edict); trace_t SV_TraceBox(const vec3_t start, const vec3_t mins, const vec3_t maxs, const vec3_t end, int type, prvm_edict_t *passedict, int hitsupercontentsmask, float extend); trace_t SV_TraceLine(const vec3_t start, const vec3_t end, int type, prvm_edict_t *passedict, int hitsupercontentsmask, float extend); trace_t SV_TracePoint(const vec3_t start, int type, prvm_edict_t *passedict, int hitsupercontentsmask); int SV_EntitiesInBox(const vec3_t mins, const vec3_t maxs, int maxedicts, prvm_edict_t **resultedicts); qboolean SV_CanSeeBox(int numsamples, vec_t enlarge, vec3_t eye, vec3_t entboxmins, vec3_t entboxmaxs); int SV_PointSuperContents(const vec3_t point); void SV_FlushBroadcastMessages(void); void SV_WriteClientdataToMessage (client_t *client, prvm_edict_t *ent, sizebuf_t *msg, int *stats); void VM_SV_MoveToGoal(prvm_prog_t *prog); void SV_ApplyClientMove (void); void SV_SaveSpawnparms (void); void SV_SpawnServer (const char *server); void SV_CheckVelocity (prvm_edict_t *ent); void SV_SetupVM(void); const char *Host_TimingReport(char *buf, size_t buflen); int SV_GetPitchSign(prvm_prog_t *prog, prvm_edict_t *ent); void SV_GetEntityMatrix(prvm_prog_t *prog, prvm_edict_t *ent, matrix4x4_t *out, qboolean viewmatrix); void SV_StartThread(void); void SV_StopThread(void); void VM_CustomStats_Clear(void); void VM_SV_UpdateCustomStats(client_t *client, prvm_edict_t *ent, sizebuf_t *msg, int *stats); void Host_Savegame_to(prvm_prog_t *prog, const char *name); void SV_SendServerinfo(client_t *client); # 399 "../../../quakedef.h" 2 # 1 "../../../input.h" 1 # 25 "../../../input.h" extern cvar_t in_pitch_min; extern cvar_t in_pitch_max; extern qboolean in_client_mouse; extern float in_windowmouse_x, in_windowmouse_y; extern float in_mouse_x, in_mouse_y; void IN_Move (void); typedef struct { char name[32]; int impulse; int activeweaponcode; int weaponbit; int ammostat; int ammomin; } in_bestweapon_info_t; extern in_bestweapon_info_t in_bestweapon_info[32]; void IN_BestWeapon_ResetData(void); # 401 "../../../quakedef.h" 2 # 1 "../../../keys.h" 1 # 35 "../../../keys.h" typedef enum keynum_e { K_TEXT = 1, K_TAB = 9, K_ENTER = 13, K_ESCAPE = 27, K_SPACE = 32, K_BACKSPACE = 127, K_UPARROW, K_DOWNARROW, K_LEFTARROW, K_RIGHTARROW, K_ALT, K_CTRL, K_SHIFT, K_F1, K_F2, K_F3, K_F4, K_F5, K_F6, K_F7, K_F8, K_F9, K_F10, K_F11, K_F12, K_INS, K_DEL, K_PGDN, K_PGUP, K_HOME, K_END, K_PAUSE, K_NUMLOCK, K_CAPSLOCK, K_SCROLLOCK, K_KP_0, K_KP_INS = K_KP_0, K_KP_1, K_KP_END = K_KP_1, K_KP_2, K_KP_DOWNARROW = K_KP_2, K_KP_3, K_KP_PGDN = K_KP_3, K_KP_4, K_KP_LEFTARROW = K_KP_4, K_KP_5, K_KP_6, K_KP_RIGHTARROW = K_KP_6, K_KP_7, K_KP_HOME = K_KP_7, K_KP_8, K_KP_UPARROW = K_KP_8, K_KP_9, K_KP_PGUP = K_KP_9, K_KP_PERIOD, K_KP_DEL = K_KP_PERIOD, K_KP_DIVIDE, K_KP_SLASH = K_KP_DIVIDE, K_KP_MULTIPLY, K_KP_MINUS, K_KP_PLUS, K_KP_ENTER, K_KP_EQUALS, K_PRINTSCREEN, K_MOUSE1 = 512, K_OTHERDEVICESBEGIN = K_MOUSE1, K_MOUSE2, K_MOUSE3, K_MWHEELUP, K_MWHEELDOWN, K_MOUSE4, K_MOUSE5, K_MOUSE6, K_MOUSE7, K_MOUSE8, K_MOUSE9, K_MOUSE10, K_MOUSE11, K_MOUSE12, K_MOUSE13, K_MOUSE14, K_MOUSE15, K_MOUSE16, K_JOY1 = 768, K_JOY2, K_JOY3, K_JOY4, K_JOY5, K_JOY6, K_JOY7, K_JOY8, K_JOY9, K_JOY10, K_JOY11, K_JOY12, K_JOY13, K_JOY14, K_JOY15, K_JOY16, K_AUX1, K_AUX2, K_AUX3, K_AUX4, K_AUX5, K_AUX6, K_AUX7, K_AUX8, K_AUX9, K_AUX10, K_AUX11, K_AUX12, K_AUX13, K_AUX14, K_AUX15, K_AUX16, K_AUX17, K_AUX18, K_AUX19, K_AUX20, K_AUX21, K_AUX22, K_AUX23, K_AUX24, K_AUX25, K_AUX26, K_AUX27, K_AUX28, K_AUX29, K_AUX30, K_AUX31, K_AUX32, K_X360_DPAD_UP, K_X360_DPAD_DOWN, K_X360_DPAD_LEFT, K_X360_DPAD_RIGHT, K_X360_START, K_X360_BACK, K_X360_LEFT_THUMB, K_X360_RIGHT_THUMB, K_X360_LEFT_SHOULDER, K_X360_RIGHT_SHOULDER, K_X360_A, K_X360_B, K_X360_X, K_X360_Y, K_X360_LEFT_TRIGGER, K_X360_RIGHT_TRIGGER, K_X360_LEFT_THUMB_UP, K_X360_LEFT_THUMB_DOWN, K_X360_LEFT_THUMB_LEFT, K_X360_LEFT_THUMB_RIGHT, K_X360_RIGHT_THUMB_UP, K_X360_RIGHT_THUMB_DOWN, K_X360_RIGHT_THUMB_LEFT, K_X360_RIGHT_THUMB_RIGHT, K_JOY_UP, K_JOY_DOWN, K_JOY_LEFT, K_JOY_RIGHT, K_MIDINOTE0 = 896, K_MIDINOTE1, K_MIDINOTE2, K_MIDINOTE3, K_MIDINOTE4, K_MIDINOTE5, K_MIDINOTE6, K_MIDINOTE7, K_MIDINOTE8, K_MIDINOTE9, K_MIDINOTE10, K_MIDINOTE11, K_MIDINOTE12, K_MIDINOTE13, K_MIDINOTE14, K_MIDINOTE15, K_MIDINOTE16, K_MIDINOTE17, K_MIDINOTE18, K_MIDINOTE19, K_MIDINOTE20, K_MIDINOTE21, K_MIDINOTE22, K_MIDINOTE23, K_MIDINOTE24, K_MIDINOTE25, K_MIDINOTE26, K_MIDINOTE27, K_MIDINOTE28, K_MIDINOTE29, K_MIDINOTE30, K_MIDINOTE31, K_MIDINOTE32, K_MIDINOTE33, K_MIDINOTE34, K_MIDINOTE35, K_MIDINOTE36, K_MIDINOTE37, K_MIDINOTE38, K_MIDINOTE39, K_MIDINOTE40, K_MIDINOTE41, K_MIDINOTE42, K_MIDINOTE43, K_MIDINOTE44, K_MIDINOTE45, K_MIDINOTE46, K_MIDINOTE47, K_MIDINOTE48, K_MIDINOTE49, K_MIDINOTE50, K_MIDINOTE51, K_MIDINOTE52, K_MIDINOTE53, K_MIDINOTE54, K_MIDINOTE55, K_MIDINOTE56, K_MIDINOTE57, K_MIDINOTE58, K_MIDINOTE59, K_MIDINOTE60, K_MIDINOTE61, K_MIDINOTE62, K_MIDINOTE63, K_MIDINOTE64, K_MIDINOTE65, K_MIDINOTE66, K_MIDINOTE67, K_MIDINOTE68, K_MIDINOTE69, K_MIDINOTE70, K_MIDINOTE71, K_MIDINOTE72, K_MIDINOTE73, K_MIDINOTE74, K_MIDINOTE75, K_MIDINOTE76, K_MIDINOTE77, K_MIDINOTE78, K_MIDINOTE79, K_MIDINOTE80, K_MIDINOTE81, K_MIDINOTE82, K_MIDINOTE83, K_MIDINOTE84, K_MIDINOTE85, K_MIDINOTE86, K_MIDINOTE87, K_MIDINOTE88, K_MIDINOTE89, K_MIDINOTE90, K_MIDINOTE91, K_MIDINOTE92, K_MIDINOTE93, K_MIDINOTE94, K_MIDINOTE95, K_MIDINOTE96, K_MIDINOTE97, K_MIDINOTE98, K_MIDINOTE99, K_MIDINOTE100, K_MIDINOTE101, K_MIDINOTE102, K_MIDINOTE103, K_MIDINOTE104, K_MIDINOTE105, K_MIDINOTE106, K_MIDINOTE107, K_MIDINOTE108, K_MIDINOTE109, K_MIDINOTE110, K_MIDINOTE111, K_MIDINOTE112, K_MIDINOTE113, K_MIDINOTE114, K_MIDINOTE115, K_MIDINOTE116, K_MIDINOTE117, K_MIDINOTE118, K_MIDINOTE119, K_MIDINOTE120, K_MIDINOTE121, K_MIDINOTE122, K_MIDINOTE123, K_MIDINOTE124, K_MIDINOTE125, K_MIDINOTE126, K_MIDINOTE127, MAX_KEYS } keynum_t; typedef enum keydest_e { key_game, key_message, key_menu, key_menu_grabbed, key_console, key_void } keydest_t; extern char key_line[16384]; extern int key_linepos; extern qboolean key_insert; extern keydest_t key_dest; extern int key_consoleactive; extern char *keybindings[8][MAX_KEYS]; extern int chat_mode; extern char chat_buffer[16384]; extern unsigned int chat_bufferlen; void Key_ClearEditLine(int edit_line); void Key_WriteBindings(qfile_t *f); void Key_Init(void); void Key_Shutdown(void); void Key_Init_Cvars(void); void Key_Event(int key, int ascii, qboolean down); void Key_ReleaseAll (void); void Key_ClearStates (void); void Key_EventQueue_Block(void); void Key_EventQueue_Unblock(void); qboolean Key_SetBinding (int keynum, int bindmap, const char *binding); const char *Key_GetBind (int key, int bindmap); void Key_FindKeysForCommand (const char *command, int *keys, int numkeys, int bindmap); qboolean Key_SetBindMap(int fg, int bg); void Key_GetBindMap(int *fg, int *bg); # 402 "../../../quakedef.h" 2 # 1 "../../../console.h" 1 # 27 "../../../console.h" extern int con_totallines; extern int con_backscroll; extern qboolean con_initialized; void Con_Rcon_Redirect_Init(lhnetsocket_t *sock, lhnetaddress_t *dest, qboolean proquakeprotocol); void Con_Rcon_Redirect_End(void); void Con_Rcon_Redirect_Abort(void); void Con_CheckResize (void); void Con_Init (void); void Con_Init_Commands (void); void Con_Shutdown (void); void Con_DrawConsole (int lines); void Con_MaskPrint(int mask, const char *msg); void Con_MaskPrintf(int mask, const char *fmt, ...) __attribute__ ((format (printf, 2, 2 +1))); void Con_Print(const char *txt); void Con_Printf(const char *fmt, ...) __attribute__ ((format (printf, 1, 1 +1))); void Con_DPrint(const char *msg); void Con_DPrintf(const char *fmt, ...) __attribute__ ((format (printf, 1, 1 +1))); void Con_Clear_f (void); void Con_DrawNotify (void); void Con_ClearNotify (void); void Con_ToggleConsole_f (void); int Nicks_CompleteChatLine(char *buffer, size_t size, unsigned int pos); qboolean GetMapList (const char *s, char *completedname, int completednamebufferlength); void Con_CompleteCommandLine(void); void Con_DisplayList(const char **list); void Log_Init (void); void Log_Close (void); void Log_Start (void); void Log_DestBuffer_Flush (void); void Log_Printf(const char *logfilename, const char *fmt, ...) __attribute__ ((format (printf, 2, 2 +1))); # 100 "../../../console.h" typedef struct con_lineinfo_s { char *start; size_t len; int mask; double addtime; int height; } con_lineinfo_t; typedef struct conbuffer_s { qboolean active; int textsize; char *text; int maxlines; con_lineinfo_t *lines; int lines_first; int lines_count; } conbuffer_t; void ConBuffer_Init(conbuffer_t *buf, int textsize, int maxlines, mempool_t *mempool); void ConBuffer_Clear (conbuffer_t *buf); void ConBuffer_Shutdown(conbuffer_t *buf); void ConBuffer_FixTimes(conbuffer_t *buf); void ConBuffer_DeleteLine(conbuffer_t *buf); void ConBuffer_DeleteLastLine(conbuffer_t *buf); void ConBuffer_AddLine(conbuffer_t *buf, const char *line, int len, int mask); int ConBuffer_FindPrevLine(conbuffer_t *buf, int mask_must, int mask_mustnot, int start); int ConBuffer_FindNextLine(conbuffer_t *buf, int mask_must, int mask_mustnot, int start); const char *ConBuffer_GetLine(conbuffer_t *buf, int i); # 403 "../../../quakedef.h" 2 # 1 "../../../menu.h" 1 # 24 "../../../menu.h" enum m_state_e { m_none, m_main, m_demo, m_singleplayer, m_transfusion_episode, m_transfusion_skill, m_load, m_save, m_multiplayer, m_setup, m_options, m_video, m_keys, m_help, m_credits, m_quit, m_lanconfig, m_gameoptions, m_slist, m_options_effects, m_options_graphics, m_options_colorcontrol, m_reset, m_modlist }; extern enum m_state_e m_state; extern char m_return_reason[128]; void M_Update_Return_Reason(const char *s); # 76 "../../../menu.h" void MR_Init_Commands (void); void MR_Init (void); void MR_Restart (void); extern void (*MR_KeyEvent) (int key, int ascii, qboolean downevent); extern void (*MR_Draw) (void); extern void (*MR_ToggleMenu) (int mode); extern void (*MR_Shutdown) (void); extern void (*MR_NewMap) (void); extern int (*MR_GetServerListEntryCategory) (const serverlist_entry_t *entry); typedef struct video_resolution_s { const char *type; int width, height; int conwidth, conheight; double pixelheight; } video_resolution_t; extern video_resolution_t *video_resolutions; extern int video_resolutions_count; extern video_resolution_t video_resolutions_hardcoded[]; extern int video_resolutions_hardcoded_count; # 405 "../../../quakedef.h" 2 # 1 "../../../csprogs.h" 1 # 76 "../../../csprogs.h" extern cvar_t csqc_progname; extern cvar_t csqc_progcrc; extern cvar_t csqc_progsize; void CL_VM_PreventInformationLeaks(void); qboolean MakeDownloadPacket(const char *filename, unsigned char *data, size_t len, int crc, int cnt, sizebuf_t *buf, int protocol); qboolean CL_VM_GetEntitySoundOrigin(int entnum, vec3_t out); qboolean CL_VM_TransformView(int entnum, matrix4x4_t *viewmatrix, mplane_t *clipplane, vec3_t visorigin); void CL_VM_Init(void); void CL_VM_ShutDown(void); void CL_VM_UpdateIntermissionState(int intermission); void CL_VM_UpdateShowingScoresState(int showingscores); qboolean CL_VM_InputEvent(int eventtype, float x, float y); qboolean CL_VM_ConsoleCommand(const char *cmd); void CL_VM_UpdateDmgGlobals(int dmg_take, int dmg_save, vec3_t dmg_origin); void CL_VM_UpdateIntermissionState(int intermission); qboolean CL_VM_Event_Sound(int sound_num, float volume, int channel, float attenuation, int ent, vec3_t pos, int flags, float speed); qboolean CL_VM_Parse_TempEntity(void); void CL_VM_Parse_StuffCmd(const char *msg); void CL_VM_Parse_CenterPrint(const char *msg); int CL_GetPitchSign(prvm_prog_t *prog, prvm_edict_t *ent); int CL_GetTagMatrix(prvm_prog_t *prog, matrix4x4_t *out, prvm_edict_t *ent, int tagindex); void CL_GetEntityMatrix(prvm_prog_t *prog, prvm_edict_t *ent, matrix4x4_t *out, qboolean viewmatrix); void VM_Polygons_Reset(prvm_prog_t *prog); void QW_CL_StartUpload(unsigned char *data, int size); void CSQC_UpdateNetworkTimes(double newtime, double oldtime); void CSQC_AddPrintText(const char *msg); void CSQC_ReadEntities(void); void CSQC_RelinkAllEntities(int drawmask); void CSQC_RelinkCSQCEntities(void); void CSQC_Predraw(prvm_edict_t *ed); void CSQC_Think(prvm_edict_t *ed); qboolean CSQC_AddRenderEdict(prvm_edict_t *ed, int edictnum); void CSQC_R_RecalcView(void); dp_model_t *CL_GetModelByIndex(int modelindex); int CL_VM_GetViewEntity(void); # 407 "../../../quakedef.h" 2 extern qboolean noclip_anglehack; extern cvar_t developer; extern cvar_t developer_extra; extern cvar_t developer_insane; extern cvar_t developer_loadfile; extern cvar_t developer_loading; extern cvar_t sessionid; # 509 "../../../quakedef.h" qboolean Sys_HaveSSE(void); qboolean Sys_HaveSSE2(void); # 1 "../../../glquake.h" 1 # 69 "../../../glquake.h" # 1 "/usr/lib/gcc/x86_64-linux-gnu/6/include/stddef.h" 1 3 4 # 149 "/usr/lib/gcc/x86_64-linux-gnu/6/include/stddef.h" 3 4 # 149 "/usr/lib/gcc/x86_64-linux-gnu/6/include/stddef.h" 3 4 typedef long int ptrdiff_t; # 426 "/usr/lib/gcc/x86_64-linux-gnu/6/include/stddef.h" 3 4 typedef struct { long long __max_align_ll __attribute__((__aligned__(__alignof__(long long)))); long double __max_align_ld __attribute__((__aligned__(__alignof__(long double)))); } max_align_t; # 70 "../../../glquake.h" 2 # 71 "../../../glquake.h" typedef unsigned int GLenum; typedef unsigned char GLboolean; typedef unsigned int GLbitfield; typedef void GLvoid; typedef signed char GLbyte; typedef short GLshort; typedef int GLint; typedef unsigned char GLubyte; typedef unsigned short GLushort; typedef unsigned int GLuint; typedef int GLsizei; typedef float GLfloat; typedef float GLclampf; typedef double GLdouble; typedef double GLclampd; typedef ptrdiff_t GLintptrARB; typedef ptrdiff_t GLsizeiptrARB; # 321 "../../../glquake.h" extern void ( *qglMultiTexCoord1f) (GLenum, GLfloat); extern void ( *qglMultiTexCoord2f) (GLenum, GLfloat, GLfloat); extern void ( *qglMultiTexCoord3f) (GLenum, GLfloat, GLfloat, GLfloat); extern void ( *qglMultiTexCoord4f) (GLenum, GLfloat, GLfloat, GLfloat, GLfloat); extern void ( *qglActiveTexture) (GLenum); extern void ( *qglClientActiveTexture) (GLenum); # 410 "../../../glquake.h" extern void ( *qglTexImage3D)(GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels); extern void ( *qglTexSubImage3D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels); extern void ( *qglCopyTexSubImage3D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); # 455 "../../../glquake.h" extern void ( *qglStencilOpSeparate)(GLenum, GLenum, GLenum, GLenum); extern void ( *qglStencilFuncSeparate)(GLenum, GLenum, GLint, GLuint); extern void ( *qglActiveStencilFaceEXT)(GLenum); extern void ( *qglBlendEquationEXT)(GLenum); extern void ( *qglBlendEquationEXT)(GLenum); # 515 "../../../glquake.h" extern void ( *qglBindBufferARB) (GLenum target, GLuint buffer); extern void ( *qglDeleteBuffersARB) (GLsizei n, const GLuint *buffers); extern void ( *qglGenBuffersARB) (GLsizei n, GLuint *buffers); extern GLboolean ( *qglIsBufferARB) (GLuint buffer); extern GLvoid* ( *qglMapBufferARB) (GLenum target, GLenum access); extern GLboolean ( *qglUnmapBufferARB) (GLenum target); extern void ( *qglBufferDataARB) (GLenum target, GLsizeiptrARB size, const GLvoid *data, GLenum usage); extern void ( *qglBufferSubDataARB) (GLenum target, GLintptrARB offset, GLsizeiptrARB size, const GLvoid *data); # 602 "../../../glquake.h" extern GLboolean ( *qglIsRenderbuffer)(GLuint renderbuffer); extern GLvoid ( *qglBindRenderbuffer)(GLenum target, GLuint renderbuffer); extern GLvoid ( *qglDeleteRenderbuffers)(GLsizei n, const GLuint *renderbuffers); extern GLvoid ( *qglGenRenderbuffers)(GLsizei n, GLuint *renderbuffers); extern GLvoid ( *qglRenderbufferStorage)(GLenum target, GLenum internalformat, GLsizei width, GLsizei height); extern GLvoid ( *qglRenderbufferStorageMultisample)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); extern GLvoid ( *qglGetRenderbufferParameteriv)(GLenum target, GLenum pname, GLint *params); extern GLboolean ( *qglIsFramebuffer)(GLuint framebuffer); extern GLvoid ( *qglBindFramebuffer)(GLenum target, GLuint framebuffer); extern GLvoid ( *qglDeleteFramebuffers)(GLsizei n, const GLuint *framebuffers); extern GLvoid ( *qglGenFramebuffers)(GLsizei n, GLuint *framebuffers); extern GLenum ( *qglCheckFramebufferStatus)(GLenum target); extern GLvoid ( *qglFramebufferTexture1D)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); extern GLvoid ( *qglFramebufferTexture2D)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); extern GLvoid ( *qglFramebufferTexture3D)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint layer); extern GLvoid ( *qglFramebufferTextureLayer)(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); extern GLvoid ( *qglFramebufferRenderbuffer)(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); extern GLvoid ( *qglGetFramebufferAttachmentParameteriv)(GLenum target, GLenum attachment, GLenum pname, GLint *params); extern GLvoid ( *qglBlitFramebuffer)(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); extern GLvoid ( *qglGenerateMipmap)(GLenum target); # 643 "../../../glquake.h" extern void ( *qglDrawBuffersARB)(GLsizei n, const GLenum *bufs); # 717 "../../../glquake.h" extern void ( *qglGetUniformIndices)(GLuint program, GLsizei uniformCount, const char** uniformNames, GLuint* uniformIndices); extern void ( *qglGetActiveUniformsiv)(GLuint program, GLsizei uniformCount, const GLuint* uniformIndices, GLenum pname, GLint* params); extern void ( *qglGetActiveUniformName)(GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei* length, char* uniformName); extern GLuint ( *qglGetUniformBlockIndex)(GLuint program, const char* uniformBlockName); extern void ( *qglGetActiveUniformBlockiv)(GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint* params); extern void ( *qglGetActiveUniformBlockName)(GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei* length, char* uniformBlockName); extern void ( *qglBindBufferRange)(GLenum target, GLuint index, GLuint buffer, GLintptrARB offset, GLsizeiptrARB size); extern void ( *qglBindBufferBase)(GLenum target, GLuint index, GLuint buffer); extern void ( *qglGetIntegeri_v)(GLenum target, GLuint index, GLint* data); extern void ( *qglUniformBlockBinding)(GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding); extern void ( *qglScissor)(GLint x, GLint y, GLsizei width, GLsizei height); extern void ( *qglClearColor)(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); extern void ( *qglClear)(GLbitfield mask); extern void ( *qglAlphaFunc)(GLenum func, GLclampf ref); extern void ( *qglBlendFunc)(GLenum sfactor, GLenum dfactor); extern void ( *qglCullFace)(GLenum mode); extern void ( *qglDrawBuffer)(GLenum mode); extern void ( *qglReadBuffer)(GLenum mode); extern void ( *qglEnable)(GLenum cap); extern void ( *qglDisable)(GLenum cap); extern GLboolean ( *qglIsEnabled)(GLenum cap); extern void ( *qglEnableClientState)(GLenum cap); extern void ( *qglDisableClientState)(GLenum cap); extern void ( *qglGetBooleanv)(GLenum pname, GLboolean *params); extern void ( *qglGetDoublev)(GLenum pname, GLdouble *params); extern void ( *qglGetFloatv)(GLenum pname, GLfloat *params); extern void ( *qglGetIntegerv)(GLenum pname, GLint *params); extern GLenum ( *qglGetError)(void); extern const GLubyte* ( *qglGetString)(GLenum name); extern void ( *qglFinish)(void); extern void ( *qglFlush)(void); extern void ( *qglClearDepth)(GLclampd depth); extern void ( *qglDepthFunc)(GLenum func); extern void ( *qglDepthMask)(GLboolean flag); extern void ( *qglDepthRange)(GLclampd near_val, GLclampd far_val); extern void ( *qglDepthRangef)(GLclampf near_val, GLclampf far_val); extern void ( *qglColorMask)(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); extern void ( *qglDrawRangeElements)(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices); extern void ( *qglDrawElements)(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices); extern void ( *qglDrawArrays)(GLenum mode, GLint first, GLsizei count); extern void ( *qglVertexPointer)(GLint size, GLenum type, GLsizei stride, const GLvoid *ptr); extern void ( *qglNormalPointer)(GLenum type, GLsizei stride, const GLvoid *ptr); extern void ( *qglColorPointer)(GLint size, GLenum type, GLsizei stride, const GLvoid *ptr); extern void ( *qglTexCoordPointer)(GLint size, GLenum type, GLsizei stride, const GLvoid *ptr); extern void ( *qglArrayElement)(GLint i); extern void ( *qglColor4ub)(GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha); extern void ( *qglColor4f)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); extern void ( *qglTexCoord1f)(GLfloat s); extern void ( *qglTexCoord2f)(GLfloat s, GLfloat t); extern void ( *qglTexCoord3f)(GLfloat s, GLfloat t, GLfloat r); extern void ( *qglTexCoord4f)(GLfloat s, GLfloat t, GLfloat r, GLfloat q); extern void ( *qglVertex2f)(GLfloat x, GLfloat y); extern void ( *qglVertex3f)(GLfloat x, GLfloat y, GLfloat z); extern void ( *qglVertex4f)(GLfloat x, GLfloat y, GLfloat z, GLfloat w); extern void ( *qglBegin)(GLenum mode); extern void ( *qglEnd)(void); extern void ( *qglMatrixMode)(GLenum mode); extern void ( *qglViewport)(GLint x, GLint y, GLsizei width, GLsizei height); extern void ( *qglLoadIdentity)(void); extern void ( *qglLoadMatrixf)(const GLfloat *m); # 803 "../../../glquake.h" extern void ( *qglReadPixels)(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels); extern void ( *qglStencilFunc)(GLenum func, GLint ref, GLuint mask); extern void ( *qglStencilMask)(GLuint mask); extern void ( *qglStencilOp)(GLenum fail, GLenum zfail, GLenum zpass); extern void ( *qglClearStencil)(GLint s); extern void ( *qglTexEnvf)(GLenum target, GLenum pname, GLfloat param); extern void ( *qglTexEnvfv)(GLenum target, GLenum pname, const GLfloat *params); extern void ( *qglTexEnvi)(GLenum target, GLenum pname, GLint param); extern void ( *qglTexParameterf)(GLenum target, GLenum pname, GLfloat param); extern void ( *qglTexParameterfv)(GLenum target, GLenum pname, GLfloat *params); extern void ( *qglTexParameteri)(GLenum target, GLenum pname, GLint param); extern void ( *qglGetTexParameterfv)(GLenum target, GLenum pname, GLfloat *params); extern void ( *qglGetTexParameteriv)(GLenum target, GLenum pname, GLint *params); extern void ( *qglGetTexLevelParameterfv)(GLenum target, GLint level, GLenum pname, GLfloat *params); extern void ( *qglGetTexLevelParameteriv)(GLenum target, GLint level, GLenum pname, GLint *params); extern void ( *qglGetTexImage)(GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels); extern void ( *qglHint)(GLenum target, GLenum mode); extern void ( *qglGenTextures)(GLsizei n, GLuint *textures); extern void ( *qglDeleteTextures)(GLsizei n, const GLuint *textures); extern void ( *qglBindTexture)(GLenum target, GLuint texture); extern void ( *qglPixelStorei)(GLenum pname, GLint param); extern void ( *qglTexImage2D)(GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels); extern void ( *qglTexSubImage2D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels); extern void ( *qglCopyTexImage2D)(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); extern void ( *qglCopyTexSubImage2D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); extern void ( *qglPolygonOffset)(GLfloat factor, GLfloat units); extern void ( *qglPolygonMode)(GLenum face, GLenum mode); extern void ( *qglLineWidth)(GLfloat width); extern void ( *qglPointSize)(GLfloat size); typedef char GLchar; extern void ( *qglDeleteShader)(GLuint obj); extern void ( *qglDeleteProgram)(GLuint obj); extern void ( *qglDetachShader)(GLuint containerObj, GLuint attachedObj); extern GLuint ( *qglCreateShader)(GLenum shaderType); extern void ( *qglShaderSource)(GLuint shaderObj, GLsizei count, const GLchar **string, const GLint *length); extern void ( *qglCompileShader)(GLuint shaderObj); extern GLuint ( *qglCreateProgram)(void); extern void ( *qglAttachShader)(GLuint containerObj, GLuint obj); extern void ( *qglLinkProgram)(GLuint programObj); extern void ( *qglUseProgram)(GLuint programObj); extern void ( *qglValidateProgram)(GLuint programObj); extern void ( *qglUniform1f)(GLint location, GLfloat v0); extern void ( *qglUniform2f)(GLint location, GLfloat v0, GLfloat v1); extern void ( *qglUniform3f)(GLint location, GLfloat v0, GLfloat v1, GLfloat v2); extern void ( *qglUniform4f)(GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); extern void ( *qglUniform1i)(GLint location, GLint v0); extern void ( *qglUniform2i)(GLint location, GLint v0, GLint v1); extern void ( *qglUniform3i)(GLint location, GLint v0, GLint v1, GLint v2); extern void ( *qglUniform4i)(GLint location, GLint v0, GLint v1, GLint v2, GLint v3); extern void ( *qglUniform1fv)(GLint location, GLsizei count, const GLfloat *value); extern void ( *qglUniform2fv)(GLint location, GLsizei count, const GLfloat *value); extern void ( *qglUniform3fv)(GLint location, GLsizei count, const GLfloat *value); extern void ( *qglUniform4fv)(GLint location, GLsizei count, const GLfloat *value); extern void ( *qglUniform1iv)(GLint location, GLsizei count, const GLint *value); extern void ( *qglUniform2iv)(GLint location, GLsizei count, const GLint *value); extern void ( *qglUniform3iv)(GLint location, GLsizei count, const GLint *value); extern void ( *qglUniform4iv)(GLint location, GLsizei count, const GLint *value); extern void ( *qglUniformMatrix2fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); extern void ( *qglUniformMatrix3fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); extern void ( *qglUniformMatrix4fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); extern void ( *qglGetShaderiv)(GLuint obj, GLenum pname, GLint *params); extern void ( *qglGetProgramiv)(GLuint obj, GLenum pname, GLint *params); extern void ( *qglGetShaderInfoLog)(GLuint obj, GLsizei maxLength, GLsizei *length, GLchar *infoLog); extern void ( *qglGetProgramInfoLog)(GLuint obj, GLsizei maxLength, GLsizei *length, GLchar *infoLog); extern void ( *qglGetAttachedShaders)(GLuint containerObj, GLsizei maxCount, GLsizei *count, GLuint *obj); extern GLint ( *qglGetUniformLocation)(GLuint programObj, const GLchar *name); extern void ( *qglGetActiveUniform)(GLuint programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLchar *name); extern void ( *qglGetUniformfv)(GLuint programObj, GLint location, GLfloat *params); extern void ( *qglGetUniformiv)(GLuint programObj, GLint location, GLint *params); extern void ( *qglGetShaderSource)(GLuint obj, GLsizei maxLength, GLsizei *length, GLchar *source); extern void ( *qglPolygonStipple)(const GLubyte *mask); # 937 "../../../glquake.h" extern void ( *qglVertexAttrib1f)(GLuint index, GLfloat v0); extern void ( *qglVertexAttrib1s)(GLuint index, GLshort v0); extern void ( *qglVertexAttrib1d)(GLuint index, GLdouble v0); extern void ( *qglVertexAttrib2f)(GLuint index, GLfloat v0, GLfloat v1); extern void ( *qglVertexAttrib2s)(GLuint index, GLshort v0, GLshort v1); extern void ( *qglVertexAttrib2d)(GLuint index, GLdouble v0, GLdouble v1); extern void ( *qglVertexAttrib3f)(GLuint index, GLfloat v0, GLfloat v1, GLfloat v2); extern void ( *qglVertexAttrib3s)(GLuint index, GLshort v0, GLshort v1, GLshort v2); extern void ( *qglVertexAttrib3d)(GLuint index, GLdouble v0, GLdouble v1, GLdouble v2); extern void ( *qglVertexAttrib4f)(GLuint index, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); extern void ( *qglVertexAttrib4s)(GLuint index, GLshort v0, GLshort v1, GLshort v2, GLshort v3); extern void ( *qglVertexAttrib4d)(GLuint index, GLdouble v0, GLdouble v1, GLdouble v2, GLdouble v3); extern void ( *qglVertexAttrib4Nub)(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); extern void ( *qglVertexAttrib1fv)(GLuint index, const GLfloat *v); extern void ( *qglVertexAttrib1sv)(GLuint index, const GLshort *v); extern void ( *qglVertexAttrib1dv)(GLuint index, const GLdouble *v); extern void ( *qglVertexAttrib2fv)(GLuint index, const GLfloat *v); extern void ( *qglVertexAttrib2sv)(GLuint index, const GLshort *v); extern void ( *qglVertexAttrib2dv)(GLuint index, const GLdouble *v); extern void ( *qglVertexAttrib3fv)(GLuint index, const GLfloat *v); extern void ( *qglVertexAttrib3sv)(GLuint index, const GLshort *v); extern void ( *qglVertexAttrib3dv)(GLuint index, const GLdouble *v); extern void ( *qglVertexAttrib4fv)(GLuint index, const GLfloat *v); extern void ( *qglVertexAttrib4sv)(GLuint index, const GLshort *v); extern void ( *qglVertexAttrib4dv)(GLuint index, const GLdouble *v); extern void ( *qglVertexAttrib4iv)(GLuint index, const GLint *v); extern void ( *qglVertexAttrib4bv)(GLuint index, const GLbyte *v); extern void ( *qglVertexAttrib4ubv)(GLuint index, const GLubyte *v); extern void ( *qglVertexAttrib4usv)(GLuint index, const GLushort *v); extern void ( *qglVertexAttrib4uiv)(GLuint index, const GLuint *v); extern void ( *qglVertexAttrib4Nbv)(GLuint index, const GLbyte *v); extern void ( *qglVertexAttrib4Nsv)(GLuint index, const GLshort *v); extern void ( *qglVertexAttrib4Niv)(GLuint index, const GLint *v); extern void ( *qglVertexAttrib4Nubv)(GLuint index, const GLubyte *v); extern void ( *qglVertexAttrib4Nusv)(GLuint index, const GLushort *v); extern void ( *qglVertexAttrib4Nuiv)(GLuint index, const GLuint *v); extern void ( *qglVertexAttribPointer)(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer); extern void ( *qglEnableVertexAttribArray)(GLuint index); extern void ( *qglDisableVertexAttribArray)(GLuint index); extern void ( *qglBindAttribLocation)(GLuint programObj, GLuint index, const GLchar *name); extern void ( *qglBindFragDataLocation)(GLuint programObj, GLuint index, const GLchar *name); extern void ( *qglGetActiveAttrib)(GLuint programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLchar *name); extern GLint ( *qglGetAttribLocation)(GLuint programObj, const GLchar *name); extern void ( *qglGetVertexAttribdv)(GLuint index, GLenum pname, GLdouble *params); extern void ( *qglGetVertexAttribfv)(GLuint index, GLenum pname, GLfloat *params); extern void ( *qglGetVertexAttribiv)(GLuint index, GLenum pname, GLint *params); extern void ( *qglGetVertexAttribPointerv)(GLuint index, GLenum pname, GLvoid **pointer); # 1028 "../../../glquake.h" extern void ( *qglCompressedTexImage3DARB)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data); extern void ( *qglCompressedTexImage2DARB)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data); extern void ( *qglCompressedTexSubImage3DARB)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data); extern void ( *qglCompressedTexSubImage2DARB)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data); extern void ( *qglGetCompressedTexImageARB)(GLenum target, GLint lod, void *img); # 1058 "../../../glquake.h" extern void ( *qglGenQueriesARB)(GLsizei n, GLuint *ids); extern void ( *qglDeleteQueriesARB)(GLsizei n, const GLuint *ids); extern GLboolean ( *qglIsQueryARB)(GLuint qid); extern void ( *qglBeginQueryARB)(GLenum target, GLuint qid); extern void ( *qglEndQueryARB)(GLenum target); extern void ( *qglGetQueryivARB)(GLenum target, GLenum pname, GLint *params); extern void ( *qglGetQueryObjectivARB)(GLuint qid, GLenum pname, GLint *params); extern void ( *qglGetQueryObjectuivARB)(GLuint qid, GLenum pname, GLuint *params); # 1102 "../../../glquake.h" extern void ( *qglSampleCoverageARB)(GLclampf value, GLboolean invert); extern void ( *qglPointSize)(GLfloat size); # 1118 "../../../glquake.h" extern void ( *qglBlendFuncSeparate)(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); # 1130 "../../../glquake.h" extern int errornumber; void GL_PrintError(int errornumber, const char *filename, int linenumber); # 517 "../../../quakedef.h" 2 # 1 "../../../palette.h" 1 # 13 "../../../palette.h" extern unsigned char palette_rgb[256][3]; extern unsigned char palette_rgb_pantscolormap[16][3]; extern unsigned char palette_rgb_shirtcolormap[16][3]; extern unsigned char palette_rgb_pantsscoreboard[16][3]; extern unsigned char palette_rgb_shirtscoreboard[16][3]; extern unsigned int palette_bgra_complete[256]; extern unsigned int palette_bgra_font[256]; extern unsigned int palette_bgra_alpha[256]; extern unsigned int palette_bgra_nocolormap[256]; extern unsigned int palette_bgra_nocolormapnofullbrights[256]; extern unsigned int palette_bgra_nofullbrights[256]; extern unsigned int palette_bgra_onlyfullbrights[256]; extern unsigned int palette_bgra_pantsaswhite[256]; extern unsigned int palette_bgra_shirtaswhite[256]; extern unsigned int palette_bgra_transparent[256]; extern unsigned int palette_bgra_embeddedpic[256]; extern unsigned char palette_featureflags[256]; extern unsigned int q2palette_bgra_complete[256]; void BuildGammaTable8(float prescale, float gamma, float scale, float base, float contrastboost, unsigned char *out, int rampsize); void BuildGammaTable16(float prescale, float gamma, float scale, float base, float contrastboost, unsigned short *out, int rampsize); void Palette_Init(void); # 519 "../../../quakedef.h" 2 extern int host_framecount; extern double realtime; extern double host_dirtytime; void Host_InitCommands(void); void Host_Main(void); void Host_Shutdown(void); void Host_StartVideo(void); void Host_Error(const char *error, ...) __attribute__ ((format (printf, 1, 1 +1))) __attribute__ ((noreturn)); void Host_Quit_f(void); void Host_ClientCommands(const char *fmt, ...) __attribute__ ((format (printf, 1, 1 +1))); void Host_ShutdownServer(void); void Host_Reconnect_f(void); void Host_NoOperation_f(void); void Host_LockSession(void); void Host_UnlockSession(void); void Host_AbortCurrentFrame(void); extern int current_skill; extern cvar_t chase_active; extern cvar_t cl_viewmodel_scale; void Chase_Init (void); void Chase_Reset (void); void Chase_Update (void); void fractalnoise(unsigned char *noise, int size, int startgrid); void fractalnoisequick(unsigned char *noise, int size, int startgrid); float noise4f(float x, float y, float z, float w); void Sys_Shared_Init(void); # 22 "../../../model_brush.c" 2 # 1 "../../../image.h" 1 extern int image_width, image_height; void Image_CopyMux(unsigned char *outpixels, const unsigned char *inpixels, int inputwidth, int inputheight, qboolean inputflipx, qboolean inputflipy, qboolean inputflipdiagonal, int numoutputcomponents, int numinputcomponents, int *outputinputcomponentindices); void Image_GammaRemapRGB(const unsigned char *in, unsigned char *out, int pixels, const unsigned char *gammar, const unsigned char *gammag, const unsigned char *gammab); void Image_Copy8bitBGRA(const unsigned char *in, unsigned char *out, int pixels, const unsigned int *pal); void Image_StripImageExtension (const char *in, char *out, size_t size_out); unsigned char *LoadTGA_BGRA (const unsigned char *f, int filesize, int *miplevel); unsigned char *loadimagepixelsbgra (const char *filename, qboolean complain, qboolean allowFixtrans, qboolean convertsRGB, int *miplevel); qboolean LoadPCX_QWSkin(const unsigned char *f, int filesize, unsigned char *pixels, int outwidth, int outheight); qboolean LoadPCX_PaletteOnly(const unsigned char *f, int filesize, unsigned char *palette768b); qboolean LoadWAL_GetMetadata(const unsigned char *f, int filesize, int *retwidth, int *retheight, int *retflags, int *retvalue, int *retcontents, char *retanimname32c); rtexture_t *loadtextureimage (rtexturepool_t *pool, const char *filename, qboolean complain, int flags, qboolean allowFixtrans, qboolean sRGB); qboolean Image_WriteTGABGR_preflipped (const char *filename, int width, int height, const unsigned char *data); qboolean Image_WriteTGABGRA (const char *filename, int width, int height, const unsigned char *data); void Image_Resample32(const void *indata, int inwidth, int inheight, int indepth, void *outdata, int outwidth, int outheight, int outdepth, int quality); void Image_MipReduce32(const unsigned char *in, unsigned char *out, int *width, int *height, int *depth, int destwidth, int destheight, int destdepth); void Image_HeightmapToNormalmap_BGRA(const unsigned char *inpixels, unsigned char *outpixels, int width, int height, int clamp, float bumpscale); void Image_FixTransparentPixels_f(void); extern cvar_t r_fixtrans_auto; void Image_MakeLinearColorsFromsRGB(unsigned char *pout, const unsigned char *pin, int numpixels); void Image_MakesRGBColorsFromLinear_Lightmap(unsigned char *pout, const unsigned char *pin, int numpixels); # 23 "../../../model_brush.c" 2 # 1 "../../../r_shadow.h" 1 extern cvar_t r_shadow_bumpscale_basetexture; extern cvar_t r_shadow_bumpscale_bumpmap; extern cvar_t r_shadow_debuglight; extern cvar_t r_shadow_gloss; extern cvar_t r_shadow_gloss2intensity; extern cvar_t r_shadow_glossintensity; extern cvar_t r_shadow_glossexponent; extern cvar_t r_shadow_gloss2exponent; extern cvar_t r_shadow_glossexact; extern cvar_t r_shadow_lightattenuationpower; extern cvar_t r_shadow_lightattenuationscale; extern cvar_t r_shadow_lightintensityscale; extern cvar_t r_shadow_lightradiusscale; extern cvar_t r_shadow_projectdistance; extern cvar_t r_shadow_frontsidecasting; extern cvar_t r_shadow_realtime_dlight; extern cvar_t r_shadow_realtime_dlight_shadows; extern cvar_t r_shadow_realtime_dlight_svbspculling; extern cvar_t r_shadow_realtime_dlight_portalculling; extern cvar_t r_shadow_realtime_world; extern cvar_t r_shadow_realtime_world_lightmaps; extern cvar_t r_shadow_realtime_world_shadows; extern cvar_t r_shadow_realtime_world_compile; extern cvar_t r_shadow_realtime_world_compileshadow; extern cvar_t r_shadow_realtime_world_compilesvbsp; extern cvar_t r_shadow_realtime_world_compileportalculling; extern cvar_t r_shadow_scissor; extern cvar_t r_shadow_polygonfactor; extern cvar_t r_shadow_polygonoffset; extern cvar_t r_shadow_texture3d; extern cvar_t gl_ext_separatestencil; extern cvar_t gl_ext_stenciltwoside; extern rtexture_t *r_shadow_bouncegridtexture; extern matrix4x4_t r_shadow_bouncegridmatrix; extern vec_t r_shadow_bouncegridintensity; extern qboolean r_shadow_bouncegriddirectional; void R_Shadow_Init(void); qboolean R_Shadow_ShadowMappingEnabled(void); void R_Shadow_VolumeFromList(int numverts, int numtris, const float *invertex3f, const int *elements, const int *neighbors, const vec3_t projectorigin, const vec3_t projectdirection, float projectdistance, int nummarktris, const int *marktris, vec3_t trismins, vec3_t trismaxs); void R_Shadow_ShadowMapFromList(int numverts, int numtris, const float *vertex3f, const int *elements, int numsidetris, const int *sidetotals, const unsigned char *sides, const int *sidetris); void R_Shadow_MarkVolumeFromBox(int firsttriangle, int numtris, const float *invertex3f, const int *elements, const vec3_t projectorigin, const vec3_t projectdirection, const vec3_t lightmins, const vec3_t lightmaxs, const vec3_t surfacemins, const vec3_t surfacemaxs); int R_Shadow_CalcTriangleSideMask(const vec3_t p1, const vec3_t p2, const vec3_t p3, float bias); int R_Shadow_CalcSphereSideMask(const vec3_t p1, float radius, float bias); int R_Shadow_ChooseSidesFromBox(int firsttriangle, int numtris, const float *invertex3f, const int *elements, const matrix4x4_t *worldtolight, const vec3_t projectorigin, const vec3_t projectdirection, const vec3_t lightmins, const vec3_t lightmaxs, const vec3_t surfacemins, const vec3_t surfacemaxs, int *totals); void R_Shadow_RenderLighting(int texturenumsurfaces, const msurface_t **texturesurfacelist); void R_Shadow_RenderMode_Begin(void); void R_Shadow_RenderMode_ActiveLight(const rtlight_t *rtlight); void R_Shadow_RenderMode_Reset(void); void R_Shadow_RenderMode_StencilShadowVolumes(qboolean zpass); void R_Shadow_RenderMode_Lighting(qboolean stenciltest, qboolean transparent, qboolean shadowmapping); void R_Shadow_RenderMode_DrawDeferredLight(qboolean stenciltest, qboolean shadowmapping); void R_Shadow_RenderMode_VisibleShadowVolumes(void); void R_Shadow_RenderMode_VisibleLighting(qboolean stenciltest, qboolean transparent); void R_Shadow_RenderMode_End(void); void R_Shadow_ClearStencil(void); void R_Shadow_SetupEntityLight(const entity_render_t *ent); qboolean R_Shadow_ScissorForBBox(const float *mins, const float *maxs); extern matrix4x4_t matrix_attenuationxyz; extern matrix4x4_t matrix_attenuationz; void R_Shadow_UpdateWorldLightSelection(void); extern rtlight_t *r_shadow_compilingrtlight; void R_RTLight_Update(rtlight_t *rtlight, int isstatic, matrix4x4_t *matrix, vec3_t color, int style, const char *cubemapname, int shadow, vec_t corona, vec_t coronasizescale, vec_t ambientscale, vec_t diffusescale, vec_t specularscale, int flags); void R_RTLight_Compile(rtlight_t *rtlight); void R_RTLight_Uncompile(rtlight_t *rtlight); void R_Shadow_PrepareLights(int fbo, rtexture_t *depthtexture, rtexture_t *colortexture); void R_Shadow_DrawPrepass(void); void R_Shadow_DrawLights(void); void R_Shadow_DrawCoronas(void); extern int maxshadowmark; extern int numshadowmark; extern int *shadowmark; extern int *shadowmarklist; extern int shadowmarkcount; void R_Shadow_PrepareShadowMark(int numtris); extern int maxshadowsides; extern int numshadowsides; extern unsigned char *shadowsides; extern int *shadowsideslist; void R_Shadow_PrepareShadowSides(int numtris); void R_Shadow_PrepareModelShadows(void); void R_LightPoint(float *color, const vec3_t p, const int flags); void R_CompleteLightPoint(float *ambientcolor, float *diffusecolor, float *diffusenormal, const vec3_t p, const int flags); void R_DrawModelShadowMaps(int fbo, rtexture_t *depthtexture, rtexture_t *colortexture); void R_DrawModelShadows(int fbo, rtexture_t *depthtexture, rtexture_t *colortexture); # 24 "../../../model_brush.c" 2 # 1 "../../../polygon.h" 1 # 9 "../../../polygon.h" void PolygonF_QuadForPlane(float *outpoints, float planenormalx, float planenormaly, float planenormalz, float planedist, float quadsize); void PolygonD_QuadForPlane(double *outpoints, double planenormalx, double planenormaly, double planenormalz, double planedist, double quadsize); int PolygonF_Clip(int innumpoints, const float *inpoints, float planenormalx, float planenormaly, float planenormalz, float planedist, float epsilon, int outfrontmaxpoints, float *outfrontpoints); int PolygonD_Clip(int innumpoints, const double *inpoints, double planenormalx, double planenormaly, double planenormalz, double planedist, double epsilon, int outfrontmaxpoints, double *outfrontpoints); void PolygonF_Divide(int innumpoints, const float *inpoints, float planenormalx, float planenormaly, float planenormalz, float planedist, float epsilon, int outfrontmaxpoints, float *outfrontpoints, int *neededfrontpoints, int outbackmaxpoints, float *outbackpoints, int *neededbackpoints, int *oncountpointer); void PolygonD_Divide(int innumpoints, const double *inpoints, double planenormalx, double planenormaly, double planenormalz, double planedist, double epsilon, int outfrontmaxpoints, double *outfrontpoints, int *neededfrontpoints, int outbackmaxpoints, double *outbackpoints, int *neededbackpoints, int *oncountpointer); # 25 "../../../model_brush.c" 2 # 1 "../../../curves.h" 1 # 9 "../../../curves.h" typedef struct patchinfo_s { int xsize, ysize; struct { int xtess, ytess; } lods[2]; } patchinfo_t; int Q3PatchDimForTess(int size, int tess); void Q3PatchTesselateFloat(int numcomponents, int outputstride, float *outputvertices, int patchwidth, int patchheight, int inputstride, float *patchvertices, int tesselationwidth, int tesselationheight); int Q3PatchTesselationOnX(int patchwidth, int patchheight, int components, const float *in, float tolerance); int Q3PatchTesselationOnY(int patchwidth, int patchheight, int components, const float *in, float tolerance); void Q3PatchTriangleElements(int *elements, int width, int height, int firstvertex); int Q3PatchAdjustTesselation(int numcomponents, patchinfo_t *patch1, float *patchvertices1, patchinfo_t *patch2, float *patchvertices2); # 26 "../../../model_brush.c" 2 # 1 "../../../wad.h" 1 # 42 "../../../wad.h" typedef struct qpic_s { int width, height; unsigned char data[4]; } qpic_t; typedef struct wadinfo_s { char identification[4]; int numlumps; int infotableofs; } wadinfo_t; typedef struct lumpinfo_s { int filepos; int disksize; int size; char type; char compression; char pad1, pad2; char name[16]; } lumpinfo_t; void W_UnloadAll(void); unsigned char *W_GetLumpName(const char *name); void W_LoadTextureWadFile(char *filename, int complain); unsigned char *W_GetTextureBGRA(char *name); unsigned char *W_ConvertWAD3TextureBGRA(sizebuf_t *sb); # 27 "../../../model_brush.c" 2 cvar_t mod_bsp_portalize = {0, "mod_bsp_portalize", "1", "enables portal generation from BSP tree (may take several seconds per map), used by r_drawportals, r_useportalculling, r_shadow_realtime_world_compileportalculling, sv_cullentities_portal"}; cvar_t r_novis = {0, "r_novis", "0", "draws whole level, see also sv_cullentities_pvs 0"}; cvar_t r_nosurftextures = {0, "r_nosurftextures", "0", "pretends there was no texture lump found in the q1bsp/hlbsp loading (useful for debugging this rare case)"}; cvar_t r_subdivisions_tolerance = {0, "r_subdivisions_tolerance", "4", "maximum error tolerance on curve subdivision for rendering purposes (in other words, the curves will be given as many polygons as necessary to represent curves at this quality)"}; cvar_t r_subdivisions_mintess = {0, "r_subdivisions_mintess", "0", "minimum number of subdivisions (values above 0 will smooth curves that don't need it)"}; cvar_t r_subdivisions_maxtess = {0, "r_subdivisions_maxtess", "1024", "maximum number of subdivisions (prevents curves beyond a certain detail level, limits smoothing)"}; cvar_t r_subdivisions_maxvertices = {0, "r_subdivisions_maxvertices", "65536", "maximum vertices allowed per subdivided curve"}; cvar_t r_subdivisions_collision_tolerance = {0, "r_subdivisions_collision_tolerance", "15", "maximum error tolerance on curve subdivision for collision purposes (usually a larger error tolerance than for rendering)"}; cvar_t r_subdivisions_collision_mintess = {0, "r_subdivisions_collision_mintess", "0", "minimum number of subdivisions (values above 0 will smooth curves that don't need it)"}; cvar_t r_subdivisions_collision_maxtess = {0, "r_subdivisions_collision_maxtess", "1024", "maximum number of subdivisions (prevents curves beyond a certain detail level, limits smoothing)"}; cvar_t r_subdivisions_collision_maxvertices = {0, "r_subdivisions_collision_maxvertices", "4225", "maximum vertices allowed per subdivided curve"}; cvar_t r_trippy = {0, "r_trippy", "0", "easter egg"}; cvar_t r_fxaa = {1, "r_fxaa", "0", "fast approximate anti aliasing"}; cvar_t mod_noshader_default_offsetmapping = {1, "mod_noshader_default_offsetmapping", "1", "use offsetmapping by default on all surfaces that are not using q3 shader files"}; cvar_t mod_obj_orientation = {0, "mod_obj_orientation", "1", "fix orientation of OBJ models to the usual conventions (if zero, use coordinates as is)"}; cvar_t mod_q3bsp_curves_collisions = {0, "mod_q3bsp_curves_collisions", "1", "enables collisions with curves (SLOW)"}; cvar_t mod_q3bsp_curves_collisions_stride = {0, "mod_q3bsp_curves_collisions_stride", "16", "collisions against curves: optimize performance by doing a combined collision check for this triangle amount first (-1 avoids any box tests)"}; cvar_t mod_q3bsp_curves_stride = {0, "mod_q3bsp_curves_stride", "16", "particle effect collisions against curves: optimize performance by doing a combined collision check for this triangle amount first (-1 avoids any box tests)"}; cvar_t mod_q3bsp_optimizedtraceline = {0, "mod_q3bsp_optimizedtraceline", "1", "whether to use optimized traceline code for line traces (as opposed to tracebox code)"}; cvar_t mod_q3bsp_debugtracebrush = {0, "mod_q3bsp_debugtracebrush", "0", "selects different tracebrush bsp recursion algorithms (for debugging purposes only)"}; cvar_t mod_q3bsp_lightmapmergepower = {1, "mod_q3bsp_lightmapmergepower", "4", "merges the quake3 128x128 lightmap textures into larger lightmap group textures to speed up rendering, 1 = 256x256, 2 = 512x512, 3 = 1024x1024, 4 = 2048x2048, 5 = 4096x4096, ..."}; cvar_t mod_q3bsp_nolightmaps = {1, "mod_q3bsp_nolightmaps", "0", "do not load lightmaps in Q3BSP maps (to save video RAM, but be warned: it looks ugly)"}; cvar_t mod_q3bsp_tracelineofsight_brushes = {0, "mod_q3bsp_tracelineofsight_brushes", "0", "enables culling of entities behind detail brushes, curves, etc"}; cvar_t mod_q3bsp_sRGBlightmaps = {0, "mod_q3bsp_sRGBlightmaps", "0", "treat lightmaps from Q3 maps as sRGB when vid_sRGB is active"}; cvar_t mod_q3shader_default_offsetmapping = {1, "mod_q3shader_default_offsetmapping", "1", "use offsetmapping by default on all surfaces that are using q3 shader files"}; cvar_t mod_q3shader_default_offsetmapping_scale = {1, "mod_q3shader_default_offsetmapping_scale", "1", "default scale used for offsetmapping"}; cvar_t mod_q3shader_default_offsetmapping_bias = {1, "mod_q3shader_default_offsetmapping_bias", "0", "default bias used for offsetmapping"}; cvar_t mod_q3shader_default_polygonfactor = {0, "mod_q3shader_default_polygonfactor", "0", "biases depth values of 'polygonoffset' shaders to prevent z-fighting artifacts"}; cvar_t mod_q3shader_default_polygonoffset = {0, "mod_q3shader_default_polygonoffset", "-2", "biases depth values of 'polygonoffset' shaders to prevent z-fighting artifacts"}; cvar_t mod_q3shader_force_addalpha = {0, "mod_q3shader_force_addalpha", "0", "treat GL_ONE GL_ONE (or add) blendfunc as GL_SRC_ALPHA GL_ONE for compatibility with older DarkPlaces releases"}; cvar_t mod_q3shader_force_terrain_alphaflag = {0, "mod_q3shader_force_terrain_alphaflag", "0", "for multilayered terrain shaders force TEXF_ALPHA flag on both layers"}; cvar_t mod_q1bsp_polygoncollisions = {0, "mod_q1bsp_polygoncollisions", "0", "disables use of precomputed cliphulls and instead collides with polygons (uses Bounding Interval Hierarchy optimizations)"}; cvar_t mod_collision_bih = {0, "mod_collision_bih", "1", "enables use of generated Bounding Interval Hierarchy tree instead of compiled bsp tree in collision code"}; cvar_t mod_recalculatenodeboxes = {0, "mod_recalculatenodeboxes", "1", "enables use of generated node bounding boxes based on BSP tree portal reconstruction, rather than the node boxes supplied by the map compiler"}; static texture_t mod_q1bsp_texture_solid; static texture_t mod_q1bsp_texture_sky; static texture_t mod_q1bsp_texture_lava; static texture_t mod_q1bsp_texture_slime; static texture_t mod_q1bsp_texture_water; static qboolean Mod_Q3BSP_TraceLineOfSight(struct model_s *model, const vec3_t start, const vec3_t end); void Mod_BrushInit(void) { Cvar_RegisterVariable(&mod_bsp_portalize); Cvar_RegisterVariable(&r_novis); Cvar_RegisterVariable(&r_nosurftextures); Cvar_RegisterVariable(&r_subdivisions_tolerance); Cvar_RegisterVariable(&r_subdivisions_mintess); Cvar_RegisterVariable(&r_subdivisions_maxtess); Cvar_RegisterVariable(&r_subdivisions_maxvertices); Cvar_RegisterVariable(&r_subdivisions_collision_tolerance); Cvar_RegisterVariable(&r_subdivisions_collision_mintess); Cvar_RegisterVariable(&r_subdivisions_collision_maxtess); Cvar_RegisterVariable(&r_subdivisions_collision_maxvertices); Cvar_RegisterVariable(&r_trippy); Cvar_RegisterVariable(&r_fxaa); Cvar_RegisterVariable(&mod_noshader_default_offsetmapping); Cvar_RegisterVariable(&mod_obj_orientation); Cvar_RegisterVariable(&mod_q3bsp_curves_collisions); Cvar_RegisterVariable(&mod_q3bsp_curves_collisions_stride); Cvar_RegisterVariable(&mod_q3bsp_curves_stride); Cvar_RegisterVariable(&mod_q3bsp_optimizedtraceline); Cvar_RegisterVariable(&mod_q3bsp_debugtracebrush); Cvar_RegisterVariable(&mod_q3bsp_lightmapmergepower); Cvar_RegisterVariable(&mod_q3bsp_nolightmaps); Cvar_RegisterVariable(&mod_q3bsp_sRGBlightmaps); Cvar_RegisterVariable(&mod_q3bsp_tracelineofsight_brushes); Cvar_RegisterVariable(&mod_q3shader_default_offsetmapping); Cvar_RegisterVariable(&mod_q3shader_default_offsetmapping_scale); Cvar_RegisterVariable(&mod_q3shader_default_offsetmapping_bias); Cvar_RegisterVariable(&mod_q3shader_default_polygonfactor); Cvar_RegisterVariable(&mod_q3shader_default_polygonoffset); Cvar_RegisterVariable(&mod_q3shader_force_addalpha); Cvar_RegisterVariable(&mod_q3shader_force_terrain_alphaflag); Cvar_RegisterVariable(&mod_q1bsp_polygoncollisions); Cvar_RegisterVariable(&mod_collision_bih); Cvar_RegisterVariable(&mod_recalculatenodeboxes); if(gamemode == GAME_NEXUIZ) Cvar_SetQuick(&mod_q3shader_force_addalpha, "1"); memset(&mod_q1bsp_texture_solid, 0, sizeof(mod_q1bsp_texture_solid)); strlcpy(mod_q1bsp_texture_solid.name, "solid" , sizeof(mod_q1bsp_texture_solid.name)); mod_q1bsp_texture_solid.surfaceflags = 0; mod_q1bsp_texture_solid.supercontents = 0x00000001; mod_q1bsp_texture_sky = mod_q1bsp_texture_solid; strlcpy(mod_q1bsp_texture_sky.name, "sky", sizeof(mod_q1bsp_texture_sky.name)); mod_q1bsp_texture_sky.surfaceflags = 4 | 16 | 32 | 131072 | 1024; mod_q1bsp_texture_sky.supercontents = 0x00000010 | 0x00000080; mod_q1bsp_texture_lava = mod_q1bsp_texture_solid; strlcpy(mod_q1bsp_texture_lava.name, "*lava", sizeof(mod_q1bsp_texture_lava.name)); mod_q1bsp_texture_lava.surfaceflags = 32; mod_q1bsp_texture_lava.supercontents = 0x00000008 | 0x00000080; mod_q1bsp_texture_slime = mod_q1bsp_texture_solid; strlcpy(mod_q1bsp_texture_slime.name, "*slime", sizeof(mod_q1bsp_texture_slime.name)); mod_q1bsp_texture_slime.surfaceflags = 32; mod_q1bsp_texture_slime.supercontents = 0x00000004; mod_q1bsp_texture_water = mod_q1bsp_texture_solid; strlcpy(mod_q1bsp_texture_water.name, "*water", sizeof(mod_q1bsp_texture_water.name)); mod_q1bsp_texture_water.surfaceflags = 32; mod_q1bsp_texture_water.supercontents = 0x00000002; } static mleaf_t *Mod_Q1BSP_PointInLeaf(dp_model_t *model, const vec3_t p) { mnode_t *node; if (model == # 147 "../../../model_brush.c" 3 4 ((void *)0) # 147 "../../../model_brush.c" ) return # 148 "../../../model_brush.c" 3 4 ((void *)0) # 148 "../../../model_brush.c" ; node = model->brush.data_nodes + model->brushq1.hulls[0].firstclipnode; while (node->plane) node = node->children[(node->plane->type < 3 ? p[node->plane->type] : ((p)[0]*(node->plane->normal)[0]+(p)[1]*(node->plane->normal)[1]+(p)[2]*(node->plane->normal)[2])) < node->plane->dist]; return (mleaf_t *)node; } static void Mod_Q1BSP_AmbientSoundLevelsForPoint(dp_model_t *model, const vec3_t p, unsigned char *out, int outsize) { int i; mleaf_t *leaf; leaf = Mod_Q1BSP_PointInLeaf(model, p); if (leaf) { i = ((outsize) < ((int)sizeof(leaf->ambient_sound_level)) ? (outsize) : ((int)sizeof(leaf->ambient_sound_level))); if (i) { memcpy(out, leaf->ambient_sound_level, i); out += i; outsize -= i; } } if (outsize) memset(out, 0, outsize); } static int Mod_Q1BSP_FindBoxClusters(dp_model_t *model, const vec3_t mins, const vec3_t maxs, int maxclusters, int *clusterlist) { int numclusters = 0; int nodestackindex = 0; mnode_t *node, *nodestack[1024]; if (!model->brush.num_pvsclusters) return -1; node = model->brush.data_nodes + model->brushq1.hulls[0].firstclipnode; for (;;) { if (node->plane) { int sides = BoxOnPlaneSide(mins, maxs, node->plane); if (sides < 3) { if (sides == 0) return -1; node = node->children[sides-1]; } else { if (nodestackindex < 1024) nodestack[nodestackindex++] = node->children[0]; node = node->children[1]; } continue; } else { if (numclusters < maxclusters) clusterlist[numclusters] = ((mleaf_t *)node)->clusterindex; numclusters++; } # 236 "../../../model_brush.c" if (nodestackindex == 0) break; node = nodestack[--nodestackindex]; } return numclusters; } static int Mod_Q1BSP_BoxTouchingPVS(dp_model_t *model, const unsigned char *pvs, const vec3_t mins, const vec3_t maxs) { int nodestackindex = 0; mnode_t *node, *nodestack[1024]; if (!model->brush.num_pvsclusters) return true; node = model->brush.data_nodes + model->brushq1.hulls[0].firstclipnode; for (;;) { if (node->plane) { int sides = BoxOnPlaneSide(mins, maxs, node->plane); if (sides < 3) { if (sides == 0) return -1; node = node->children[sides-1]; } else { if (nodestackindex < 1024) nodestack[nodestackindex++] = node->children[0]; node = node->children[1]; } continue; } else { int clusterindex = ((mleaf_t *)node)->clusterindex; if (((clusterindex) >= 0 ? (unsigned char) ((pvs)[(clusterindex) >> 3] & (1 << ((clusterindex) & 7))) : (unsigned char) false)) { return true; } } # 307 "../../../model_brush.c" if (nodestackindex == 0) break; node = nodestack[--nodestackindex]; } return false; } static int Mod_Q1BSP_BoxTouchingLeafPVS(dp_model_t *model, const unsigned char *pvs, const vec3_t mins, const vec3_t maxs) { int nodestackindex = 0; mnode_t *node, *nodestack[1024]; if (!model->brush.num_leafs) return true; node = model->brush.data_nodes + model->brushq1.hulls[0].firstclipnode; for (;;) { if (node->plane) { int sides = BoxOnPlaneSide(mins, maxs, node->plane); if (sides < 3) { if (sides == 0) return -1; node = node->children[sides-1]; } else { if (nodestackindex < 1024) nodestack[nodestackindex++] = node->children[0]; node = node->children[1]; } continue; } else { int clusterindex = ((mleaf_t *)node) - model->brush.data_leafs; if (((clusterindex) >= 0 ? (unsigned char) ((pvs)[(clusterindex) >> 3] & (1 << ((clusterindex) & 7))) : (unsigned char) false)) { return true; } } # 378 "../../../model_brush.c" if (nodestackindex == 0) break; node = nodestack[--nodestackindex]; } return false; } static int Mod_Q1BSP_BoxTouchingVisibleLeafs(dp_model_t *model, const unsigned char *visibleleafs, const vec3_t mins, const vec3_t maxs) { int nodestackindex = 0; mnode_t *node, *nodestack[1024]; if (!model->brush.num_leafs) return true; node = model->brush.data_nodes + model->brushq1.hulls[0].firstclipnode; for (;;) { if (node->plane) { int sides = BoxOnPlaneSide(mins, maxs, node->plane); if (sides < 3) { if (sides == 0) return -1; node = node->children[sides-1]; } else { if (nodestackindex < 1024) nodestack[nodestackindex++] = node->children[0]; node = node->children[1]; } continue; } else { if (visibleleafs[(mleaf_t *)node - model->brush.data_leafs]) { return true; } } # 447 "../../../model_brush.c" if (nodestackindex == 0) break; node = nodestack[--nodestackindex]; } return false; } typedef struct findnonsolidlocationinfo_s { vec3_t center; vec3_t absmin, absmax; vec_t radius; vec3_t nudge; vec_t bestdist; dp_model_t *model; } findnonsolidlocationinfo_t; static void Mod_Q1BSP_FindNonSolidLocation_r_Triangle(findnonsolidlocationinfo_t *info, msurface_t *surface, int k) { int i, *tri; float dist, f, vert[3][3], edge[3][3], facenormal[3], edgenormal[3][3], point[3]; tri = (info->model->surfmesh.data_element3i + 3 * surface->num_firsttriangle) + k * 3; ((vert[0])[0]=((info->model->surfmesh.data_vertex3f + tri[0] * 3))[0],(vert[0])[1]=((info->model->surfmesh.data_vertex3f + tri[0] * 3))[1],(vert[0])[2]=((info->model->surfmesh.data_vertex3f + tri[0] * 3))[2]); ((vert[1])[0]=((info->model->surfmesh.data_vertex3f + tri[1] * 3))[0],(vert[1])[1]=((info->model->surfmesh.data_vertex3f + tri[1] * 3))[1],(vert[1])[2]=((info->model->surfmesh.data_vertex3f + tri[1] * 3))[2]); ((vert[2])[0]=((info->model->surfmesh.data_vertex3f + tri[2] * 3))[0],(vert[2])[1]=((info->model->surfmesh.data_vertex3f + tri[2] * 3))[1],(vert[2])[2]=((info->model->surfmesh.data_vertex3f + tri[2] * 3))[2]); ((edge[0])[0]=(vert[1])[0]-(vert[0])[0],(edge[0])[1]=(vert[1])[1]-(vert[0])[1],(edge[0])[2]=(vert[1])[2]-(vert[0])[2]); ((edge[1])[0]=(vert[2])[0]-(vert[1])[0],(edge[1])[1]=(vert[2])[1]-(vert[1])[1],(edge[1])[2]=(vert[2])[2]-(vert[1])[2]); ((facenormal)[0]=(edge[1])[1]*(edge[0])[2]-(edge[1])[2]*(edge[0])[1],(facenormal)[1]=(edge[1])[2]*(edge[0])[0]-(edge[1])[0]*(edge[0])[2],(facenormal)[2]=(edge[1])[0]*(edge[0])[1]-(edge[1])[1]*(edge[0])[0]); if (facenormal[0] || facenormal[1] || facenormal[2]) { {float ilength = (float) sqrt((((facenormal))[0]*((facenormal))[0]+((facenormal))[1]*((facenormal))[1]+((facenormal))[2]*((facenormal))[2]));if (ilength) ilength = 1.0f / ilength;(facenormal)[0] *= ilength;(facenormal)[1] *= ilength;(facenormal)[2] *= ilength;}; f = ((info->center)[0]*(facenormal)[0]+(info->center)[1]*(facenormal)[1]+(info->center)[2]*(facenormal)[2]) - ((vert[0])[0]*(facenormal)[0]+(vert[0])[1]*(facenormal)[1]+(vert[0])[2]*(facenormal)[2]); if (f <= info->bestdist && f >= -info->bestdist) { ((edge[2])[0]=(vert[0])[0]-(vert[2])[0],(edge[2])[1]=(vert[0])[1]-(vert[2])[1],(edge[2])[2]=(vert[0])[2]-(vert[2])[2]); {float ilength = (float) sqrt((((edge[0]))[0]*((edge[0]))[0]+((edge[0]))[1]*((edge[0]))[1]+((edge[0]))[2]*((edge[0]))[2]));if (ilength) ilength = 1.0f / ilength;(edge[0])[0] *= ilength;(edge[0])[1] *= ilength;(edge[0])[2] *= ilength;}; {float ilength = (float) sqrt((((edge[1]))[0]*((edge[1]))[0]+((edge[1]))[1]*((edge[1]))[1]+((edge[1]))[2]*((edge[1]))[2]));if (ilength) ilength = 1.0f / ilength;(edge[1])[0] *= ilength;(edge[1])[1] *= ilength;(edge[1])[2] *= ilength;}; {float ilength = (float) sqrt((((edge[2]))[0]*((edge[2]))[0]+((edge[2]))[1]*((edge[2]))[1]+((edge[2]))[2]*((edge[2]))[2]));if (ilength) ilength = 1.0f / ilength;(edge[2])[0] *= ilength;(edge[2])[1] *= ilength;(edge[2])[2] *= ilength;}; ((edgenormal[0])[0]=(facenormal)[1]*(edge[0])[2]-(facenormal)[2]*(edge[0])[1],(edgenormal[0])[1]=(facenormal)[2]*(edge[0])[0]-(facenormal)[0]*(edge[0])[2],(edgenormal[0])[2]=(facenormal)[0]*(edge[0])[1]-(facenormal)[1]*(edge[0])[0]); ((edgenormal[1])[0]=(facenormal)[1]*(edge[1])[2]-(facenormal)[2]*(edge[1])[1],(edgenormal[1])[1]=(facenormal)[2]*(edge[1])[0]-(facenormal)[0]*(edge[1])[2],(edgenormal[1])[2]=(facenormal)[0]*(edge[1])[1]-(facenormal)[1]*(edge[1])[0]); ((edgenormal[2])[0]=(facenormal)[1]*(edge[2])[2]-(facenormal)[2]*(edge[2])[1],(edgenormal[2])[1]=(facenormal)[2]*(edge[2])[0]-(facenormal)[0]*(edge[2])[2],(edgenormal[2])[2]=(facenormal)[0]*(edge[2])[1]-(facenormal)[1]*(edge[2])[0]); if (((info->center)[0]*(edgenormal[0])[0]+(info->center)[1]*(edgenormal[0])[1]+(info->center)[2]*(edgenormal[0])[2]) < ((vert[0])[0]*(edgenormal[0])[0]+(vert[0])[1]*(edgenormal[0])[1]+(vert[0])[2]*(edgenormal[0])[2]) && ((info->center)[0]*(edgenormal[1])[0]+(info->center)[1]*(edgenormal[1])[1]+(info->center)[2]*(edgenormal[1])[2]) < ((vert[1])[0]*(edgenormal[1])[0]+(vert[1])[1]*(edgenormal[1])[1]+(vert[1])[2]*(edgenormal[1])[2]) && ((info->center)[0]*(edgenormal[2])[0]+(info->center)[1]*(edgenormal[2])[1]+(info->center)[2]*(edgenormal[2])[2]) < ((vert[2])[0]*(edgenormal[2])[0]+(vert[2])[1]*(edgenormal[2])[1]+(vert[2])[2]*(edgenormal[2])[2])) { dist = ((info->center)[0]*(facenormal)[0]+(info->center)[1]*(facenormal)[1]+(info->center)[2]*(facenormal)[2]) - ((vert[0])[0]*(facenormal)[0]+(vert[0])[1]*(facenormal)[1]+(vert[0])[2]*(facenormal)[2]); if (dist < 0) { dist = -dist; if (info->bestdist > dist) { info->bestdist = dist; ((info->nudge)[0] = (facenormal)[0] * ((info->radius - -dist)),(info->nudge)[1] = (facenormal)[1] * ((info->radius - -dist)),(info->nudge)[2] = (facenormal)[2] * ((info->radius - -dist))); } } else { if (info->bestdist > dist) { info->bestdist = dist; ((info->nudge)[0] = (facenormal)[0] * ((info->radius - dist)),(info->nudge)[1] = (facenormal)[1] * ((info->radius - dist)),(info->nudge)[2] = (facenormal)[2] * ((info->radius - dist))); } } } else { for (i = 0;i < 3;i++) { f = ((info->center)[0]*(edge[i])[0]+(info->center)[1]*(edge[i])[1]+(info->center)[2]*(edge[i])[2]); if (f >= ((vert[0])[0]*(edge[i])[0]+(vert[0])[1]*(edge[i])[1]+(vert[0])[2]*(edge[i])[2]) && f <= ((vert[1])[0]*(edge[i])[0]+(vert[1])[1]*(edge[i])[1]+(vert[1])[2]*(edge[i])[2])) { ((point)[0] = (info->center)[0] + (-f) * (edge[i])[0],(point)[1] = (info->center)[1] + (-f) * (edge[i])[1],(point)[2] = (info->center)[2] + (-f) * (edge[i])[2]); dist = sqrt(((point)[0]*(point)[0]+(point)[1]*(point)[1]+(point)[2]*(point)[2])); if (info->bestdist > dist) { info->bestdist = dist; ((info->nudge)[0] = (point)[0] * ((info->radius / dist)),(info->nudge)[1] = (point)[1] * ((info->radius / dist)),(info->nudge)[2] = (point)[2] * ((info->radius / dist))); } i++; } else { ((point)[0]=(info->center)[0]-(vert[i])[0],(point)[1]=(info->center)[1]-(vert[i])[1],(point)[2]=(info->center)[2]-(vert[i])[2]); dist = sqrt(((point)[0]*(point)[0]+(point)[1]*(point)[1]+(point)[2]*(point)[2])); if (info->bestdist > dist) { info->bestdist = dist; ((info->nudge)[0] = (point)[0] * ((info->radius / dist)),(info->nudge)[1] = (point)[1] * ((info->radius / dist)),(info->nudge)[2] = (point)[2] * ((info->radius / dist))); } } } } } } } static void Mod_Q1BSP_FindNonSolidLocation_r_Leaf(findnonsolidlocationinfo_t *info, mleaf_t *leaf) { int surfacenum, k, *mark; msurface_t *surface; for (surfacenum = 0, mark = leaf->firstleafsurface;surfacenum < leaf->numleafsurfaces;surfacenum++, mark++) { surface = info->model->data_surfaces + *mark; if (surface->texture->supercontents & 0x00000001) { if(surface->deprecatedq3num_bboxstride > 0) { int i, cnt, tri; cnt = (surface->num_triangles + surface->deprecatedq3num_bboxstride - 1) / surface->deprecatedq3num_bboxstride; for(i = 0; i < cnt; ++i) { if(((surface->deprecatedq3data_bbox6f + i * 6)[0] <= (info->absmax)[0] && (surface->deprecatedq3data_bbox6f + i * 6 + 3)[0] >= (info->absmin)[0] && (surface->deprecatedq3data_bbox6f + i * 6)[1] <= (info->absmax)[1] && (surface->deprecatedq3data_bbox6f + i * 6 + 3)[1] >= (info->absmin)[1] && (surface->deprecatedq3data_bbox6f + i * 6)[2] <= (info->absmax)[2] && (surface->deprecatedq3data_bbox6f + i * 6 + 3)[2] >= (info->absmin)[2])) { for(k = 0; k < surface->deprecatedq3num_bboxstride; ++k) { tri = i * surface->deprecatedq3num_bboxstride + k; if(tri >= surface->num_triangles) break; Mod_Q1BSP_FindNonSolidLocation_r_Triangle(info, surface, tri); } } } } else { for (k = 0;k < surface->num_triangles;k++) { Mod_Q1BSP_FindNonSolidLocation_r_Triangle(info, surface, k); } } } } } static void Mod_Q1BSP_FindNonSolidLocation_r(findnonsolidlocationinfo_t *info, mnode_t *node) { if (node->plane) { float f = (((node->plane)->type < 3 ? (info->center)[(node->plane)->type] : (((info->center))[0]*((node->plane)->normal)[0]+((info->center))[1]*((node->plane)->normal)[1]+((info->center))[2]*((node->plane)->normal)[2])) - (node->plane)->dist); if (f >= -info->bestdist) Mod_Q1BSP_FindNonSolidLocation_r(info, node->children[0]); if (f <= info->bestdist) Mod_Q1BSP_FindNonSolidLocation_r(info, node->children[1]); } else { if (((mleaf_t *)node)->numleafsurfaces) Mod_Q1BSP_FindNonSolidLocation_r_Leaf(info, (mleaf_t *)node); } } static void Mod_Q1BSP_FindNonSolidLocation(dp_model_t *model, const vec3_t in, vec3_t out, float radius) { int i; findnonsolidlocationinfo_t info; if (model == # 613 "../../../model_brush.c" 3 4 ((void *)0) # 613 "../../../model_brush.c" ) { ((out)[0]=(in)[0],(out)[1]=(in)[1],(out)[2]=(in)[2]); return; } ((info.center)[0]=(in)[0],(info.center)[1]=(in)[1],(info.center)[2]=(in)[2]); info.radius = radius; info.model = model; i = 0; do { ((info.nudge)[0]=(info.nudge)[1]=(info.nudge)[2]=0); info.bestdist = radius; ((info.absmin)[0]=(info.center)[0],(info.absmin)[1]=(info.center)[1],(info.absmin)[2]=(info.center)[2]); ((info.absmax)[0]=(info.center)[0],(info.absmax)[1]=(info.center)[1],(info.absmax)[2]=(info.center)[2]); info.absmin[0] -= info.radius + 1; info.absmin[1] -= info.radius + 1; info.absmin[2] -= info.radius + 1; info.absmax[0] += info.radius + 1; info.absmax[1] += info.radius + 1; info.absmax[2] += info.radius + 1; Mod_Q1BSP_FindNonSolidLocation_r(&info, model->brush.data_nodes + model->brushq1.hulls[0].firstclipnode); ((info.center)[0]=(info.center)[0]+(info.nudge)[0],(info.center)[1]=(info.center)[1]+(info.nudge)[1],(info.center)[2]=(info.center)[2]+(info.nudge)[2]); } while (info.bestdist < radius && ++i < 10); ((out)[0]=(info.center)[0],(out)[1]=(info.center)[1],(out)[2]=(info.center)[2]); } int Mod_Q1BSP_SuperContentsFromNativeContents(dp_model_t *model, int nativecontents) { switch(nativecontents) { case -1: return 0; case -2: return 0x00000001 | 0x00001000; case -3: return 0x00000002; case -4: return 0x00000004; case -5: return 0x00000008 | 0x00000080; case -6: return 0x00000010 | 0x00000080 | 0x00001000; } return 0; } int Mod_Q1BSP_NativeContentsFromSuperContents(dp_model_t *model, int supercontents) { if (supercontents & (0x00000001 | 0x00000020)) return -2; if (supercontents & 0x00000010) return -6; if (supercontents & 0x00000008) return -5; if (supercontents & 0x00000004) return -4; if (supercontents & 0x00000002) return -3; return -1; } typedef struct RecursiveHullCheckTraceInfo_s { const hull_t *hull; trace_t *trace; double start[3]; double end[3]; double dist[3]; } RecursiveHullCheckTraceInfo_t; # 698 "../../../model_brush.c" static int Mod_Q1BSP_RecursiveHullCheck(RecursiveHullCheckTraceInfo_t *t, int num, double p1f, double p2f, double p1[3], double p2[3]) { int ret; mplane_t *plane; double t1, t2; mclipnode_t *node; int p1side, p2side; double midf, mid[3]; while (num >= 0) { node = t->hull->clipnodes + num; plane = t->hull->planes + node->planenum; if (plane->type < 3) { t1 = p1[plane->type] - plane->dist; t2 = p2[plane->type] - plane->dist; } else { t1 = ((plane->normal)[0]*(p1)[0]+(plane->normal)[1]*(p1)[1]+(plane->normal)[2]*(p1)[2]) - plane->dist; t2 = ((plane->normal)[0]*(p2)[0]+(plane->normal)[1]*(p2)[1]+(plane->normal)[2]*(p2)[2]) - plane->dist; } p1side = t1 < 0; p2side = t2 < 0; if (p1side == p2side) { num = node->children[p1side]; } else { if (plane->type < 3) { t1 = t->start[plane->type] - plane->dist; t2 = t->end[plane->type] - plane->dist; } else { t1 = ((plane->normal)[0]*(t->start)[0]+(plane->normal)[1]*(t->start)[1]+(plane->normal)[2]*(t->start)[2]) - plane->dist; t2 = ((plane->normal)[0]*(t->end)[0]+(plane->normal)[1]*(t->end)[1]+(plane->normal)[2]*(t->end)[2]) - plane->dist; } midf = t1 / (t1 - t2); midf = ((midf) >= (p1f) ? ((midf) < (p2f) ? (midf) : (p2f)) : (p1f)); ((mid)[0] = (t->start)[0] + (midf) * (t->dist)[0],(mid)[1] = (t->start)[1] + (midf) * (t->dist)[1],(mid)[2] = (t->start)[2] + (midf) * (t->dist)[2]); ret = Mod_Q1BSP_RecursiveHullCheck(t, node->children[p1side], p1f, midf, p1, mid); if (ret != 0) return ret; ret = Mod_Q1BSP_RecursiveHullCheck(t, node->children[p2side], midf, p2f, mid, p2); if (ret != 1) return ret; if (p1side) { t->trace->plane.dist = -plane->dist; ((t->trace->plane.normal)[0]=-((plane->normal)[0]),(t->trace->plane.normal)[1]=-((plane->normal)[1]),(t->trace->plane.normal)[2]=-((plane->normal)[2])); } else { t->trace->plane.dist = plane->dist; ((t->trace->plane.normal)[0]=(plane->normal)[0],(t->trace->plane.normal)[1]=(plane->normal)[1],(t->trace->plane.normal)[2]=(plane->normal)[2]); } t1 = ((t->trace->plane.normal)[0]*(t->start)[0]+(t->trace->plane.normal)[1]*(t->start)[1]+(t->trace->plane.normal)[2]*(t->start)[2]) - t->trace->plane.dist; t2 = ((t->trace->plane.normal)[0]*(t->end)[0]+(t->trace->plane.normal)[1]*(t->end)[1]+(t->trace->plane.normal)[2]*(t->end)[2]) - t->trace->plane.dist; midf = (t1 - collision_impactnudge.value) / (t1 - t2); t->trace->fraction = ((midf) >= (0) ? ((midf) < (1) ? (midf) : (1)) : (0)); return 2; } } num = Mod_Q1BSP_SuperContentsFromNativeContents( # 814 "../../../model_brush.c" 3 4 ((void *)0) # 814 "../../../model_brush.c" , num); if (!t->trace->startfound) { t->trace->startfound = true; t->trace->startsupercontents |= num; } if (num & (0x00000008 | 0x00000004 | 0x00000002)) t->trace->inwater = true; if (num == 0) t->trace->inopen = true; if (num & 0x00000001) t->trace->hittexture = &mod_q1bsp_texture_solid; else if (num & 0x00000010) t->trace->hittexture = &mod_q1bsp_texture_sky; else if (num & 0x00000008) t->trace->hittexture = &mod_q1bsp_texture_lava; else if (num & 0x00000004) t->trace->hittexture = &mod_q1bsp_texture_slime; else t->trace->hittexture = &mod_q1bsp_texture_water; t->trace->hitq3surfaceflags = t->trace->hittexture->surfaceflags; t->trace->hitsupercontents = num; if (num & t->trace->hitsupercontentsmask) { if (t->trace->allsolid) t->trace->startsolid = true; return 1; } else { t->trace->allsolid = false; return 0; } } static int Mod_Q1BSP_RecursiveHullCheckPoint(RecursiveHullCheckTraceInfo_t *t, int num) { mplane_t *plane; mclipnode_t *nodes = t->hull->clipnodes; mplane_t *planes = t->hull->planes; vec3_t point; ((point)[0]=(t->start)[0],(point)[1]=(t->start)[1],(point)[2]=(t->start)[2]); while (num >= 0) { plane = planes + nodes[num].planenum; num = nodes[num].children[(plane->type < 3 ? point[plane->type] : ((plane->normal)[0]*(point)[0]+(plane->normal)[1]*(point)[1]+(plane->normal)[2]*(point)[2])) < plane->dist]; } num = Mod_Q1BSP_SuperContentsFromNativeContents( # 869 "../../../model_brush.c" 3 4 ((void *)0) # 869 "../../../model_brush.c" , num); t->trace->startsupercontents |= num; if (num & (0x00000008 | 0x00000004 | 0x00000002)) t->trace->inwater = true; if (num == 0) t->trace->inopen = true; if (num & t->trace->hitsupercontentsmask) { t->trace->allsolid = t->trace->startsolid = true; return 1; } else { t->trace->allsolid = t->trace->startsolid = false; return 0; } } static void Mod_Q1BSP_TracePoint(struct model_s *model, const frameblend_t *frameblend, const skeleton_t *skeleton, trace_t *trace, const vec3_t start, int hitsupercontentsmask) { RecursiveHullCheckTraceInfo_t rhc; memset(&rhc, 0, sizeof(rhc)); memset(trace, 0, sizeof(trace_t)); rhc.trace = trace; rhc.trace->fraction = 1; rhc.trace->allsolid = true; rhc.hull = &model->brushq1.hulls[0]; ((rhc.start)[0]=(start)[0],(rhc.start)[1]=(start)[1],(rhc.start)[2]=(start)[2]); ((rhc.end)[0]=(start)[0],(rhc.end)[1]=(start)[1],(rhc.end)[2]=(start)[2]); Mod_Q1BSP_RecursiveHullCheckPoint(&rhc, rhc.hull->firstclipnode); } static void Mod_Q1BSP_TraceLineAgainstSurfaces(struct model_s *model, const frameblend_t *frameblend, const skeleton_t *skeleton, trace_t *trace, const vec3_t start, const vec3_t end, int hitsupercontentsmask); static void Mod_Q1BSP_TraceLine(struct model_s *model, const frameblend_t *frameblend, const skeleton_t *skeleton, trace_t *trace, const vec3_t start, const vec3_t end, int hitsupercontentsmask) { RecursiveHullCheckTraceInfo_t rhc; if ((((start)[0]==(end)[0])&&((start)[1]==(end)[1])&&((start)[2]==(end)[2]))) { Mod_Q1BSP_TracePoint(model, frameblend, skeleton, trace, start, hitsupercontentsmask); return; } if (sv_gameplayfix_q1bsptracelinereportstexture.integer) { Mod_Q1BSP_TraceLineAgainstSurfaces(model, frameblend, skeleton, trace, start, end, hitsupercontentsmask); return; } memset(&rhc, 0, sizeof(rhc)); memset(trace, 0, sizeof(trace_t)); rhc.trace = trace; rhc.trace->hitsupercontentsmask = hitsupercontentsmask; rhc.trace->fraction = 1; rhc.trace->allsolid = true; rhc.hull = &model->brushq1.hulls[0]; ((rhc.start)[0]=(start)[0],(rhc.start)[1]=(start)[1],(rhc.start)[2]=(start)[2]); ((rhc.end)[0]=(end)[0],(rhc.end)[1]=(end)[1],(rhc.end)[2]=(end)[2]); ((rhc.dist)[0]=(rhc.end)[0]-(rhc.start)[0],(rhc.dist)[1]=(rhc.end)[1]-(rhc.start)[1],(rhc.dist)[2]=(rhc.end)[2]-(rhc.start)[2]); # 955 "../../../model_brush.c" if ((((rhc.dist)[0]*(rhc.dist)[0]+(rhc.dist)[1]*(rhc.dist)[1]+(rhc.dist)[2]*(rhc.dist)[2]))) Mod_Q1BSP_RecursiveHullCheck(&rhc, rhc.hull->firstclipnode, 0, 1, rhc.start, rhc.end); else Mod_Q1BSP_RecursiveHullCheckPoint(&rhc, rhc.hull->firstclipnode); } static void Mod_Q1BSP_TraceBox(struct model_s *model, const frameblend_t *frameblend, const skeleton_t *skeleton, trace_t *trace, const vec3_t start, const vec3_t boxmins, const vec3_t boxmaxs, const vec3_t end, int hitsupercontentsmask) { double boxsize[3]; RecursiveHullCheckTraceInfo_t rhc; if ((((boxmins)[0]==(boxmaxs)[0])&&((boxmins)[1]==(boxmaxs)[1])&&((boxmins)[2]==(boxmaxs)[2]))) { if ((((start)[0]==(end)[0])&&((start)[1]==(end)[1])&&((start)[2]==(end)[2]))) Mod_Q1BSP_TracePoint(model, frameblend, skeleton, trace, start, hitsupercontentsmask); else Mod_Q1BSP_TraceLine(model, frameblend, skeleton, trace, start, end, hitsupercontentsmask); return; } memset(&rhc, 0, sizeof(rhc)); memset(trace, 0, sizeof(trace_t)); rhc.trace = trace; rhc.trace->hitsupercontentsmask = hitsupercontentsmask; rhc.trace->fraction = 1; rhc.trace->allsolid = true; ((boxsize)[0]=(boxmaxs)[0]-(boxmins)[0],(boxsize)[1]=(boxmaxs)[1]-(boxmins)[1],(boxsize)[2]=(boxmaxs)[2]-(boxmins)[2]); if (boxsize[0] < 3) rhc.hull = &model->brushq1.hulls[0]; else if (model->brush.ishlbsp) { if (boxsize[0] < 32.1) { if (boxsize[2] < 54) rhc.hull = &model->brushq1.hulls[3]; else rhc.hull = &model->brushq1.hulls[1]; } else rhc.hull = &model->brushq1.hulls[2]; } else { if (boxsize[0] < 32.1) rhc.hull = &model->brushq1.hulls[1]; else rhc.hull = &model->brushq1.hulls[2]; } ((rhc.start)[0] = (1) * (start)[0] + (1) * (boxmins)[0] + (-1) * (rhc.hull->clip_mins)[0],(rhc.start)[1] = (1) * (start)[1] + (1) * (boxmins)[1] + (-1) * (rhc.hull->clip_mins)[1],(rhc.start)[2] = (1) * (start)[2] + (1) * (boxmins)[2] + (-1) * (rhc.hull->clip_mins)[2]); ((rhc.end)[0] = (1) * (end)[0] + (1) * (boxmins)[0] + (-1) * (rhc.hull->clip_mins)[0],(rhc.end)[1] = (1) * (end)[1] + (1) * (boxmins)[1] + (-1) * (rhc.hull->clip_mins)[1],(rhc.end)[2] = (1) * (end)[2] + (1) * (boxmins)[2] + (-1) * (rhc.hull->clip_mins)[2]); ((rhc.dist)[0]=(rhc.end)[0]-(rhc.start)[0],(rhc.dist)[1]=(rhc.end)[1]-(rhc.start)[1],(rhc.dist)[2]=(rhc.end)[2]-(rhc.start)[2]); # 1035 "../../../model_brush.c" if ((((rhc.dist)[0]*(rhc.dist)[0]+(rhc.dist)[1]*(rhc.dist)[1]+(rhc.dist)[2]*(rhc.dist)[2]))) Mod_Q1BSP_RecursiveHullCheck(&rhc, rhc.hull->firstclipnode, 0, 1, rhc.start, rhc.end); else Mod_Q1BSP_RecursiveHullCheckPoint(&rhc, rhc.hull->firstclipnode); } static int Mod_Q1BSP_PointSuperContents(struct model_s *model, int frame, const vec3_t point) { int num = model->brushq1.hulls[0].firstclipnode; mplane_t *plane; mclipnode_t *nodes = model->brushq1.hulls[0].clipnodes; mplane_t *planes = model->brushq1.hulls[0].planes; while (num >= 0) { plane = planes + nodes[num].planenum; num = nodes[num].children[(plane->type < 3 ? point[plane->type] : ((plane->normal)[0]*(point)[0]+(plane->normal)[1]*(point)[1]+(plane->normal)[2]*(point)[2])) < plane->dist]; } return Mod_Q1BSP_SuperContentsFromNativeContents( # 1053 "../../../model_brush.c" 3 4 ((void *)0) # 1053 "../../../model_brush.c" , num); } void Collision_ClipTrace_Box(trace_t *trace, const vec3_t cmins, const vec3_t cmaxs, const vec3_t start, const vec3_t mins, const vec3_t maxs, const vec3_t end, int hitsupercontentsmask, int boxsupercontents, int boxq3surfaceflags, const texture_t *boxtexture) { colbrushf_t cbox; colplanef_t cbox_planes[6]; cbox.isaabb = true; cbox.hasaabbplanes = true; cbox.supercontents = boxsupercontents; cbox.numplanes = 6; cbox.numpoints = 0; cbox.numtriangles = 0; cbox.planes = cbox_planes; cbox.points = # 1068 "../../../model_brush.c" 3 4 ((void *)0) # 1068 "../../../model_brush.c" ; cbox.elements = # 1069 "../../../model_brush.c" 3 4 ((void *)0) # 1069 "../../../model_brush.c" ; cbox.markframe = 0; cbox.mins[0] = 0; cbox.mins[1] = 0; cbox.mins[2] = 0; cbox.maxs[0] = 0; cbox.maxs[1] = 0; cbox.maxs[2] = 0; cbox_planes[0].normal[0] = 1;cbox_planes[0].normal[1] = 0;cbox_planes[0].normal[2] = 0;cbox_planes[0].dist = cmaxs[0] - mins[0]; cbox_planes[1].normal[0] = -1;cbox_planes[1].normal[1] = 0;cbox_planes[1].normal[2] = 0;cbox_planes[1].dist = maxs[0] - cmins[0]; cbox_planes[2].normal[0] = 0;cbox_planes[2].normal[1] = 1;cbox_planes[2].normal[2] = 0;cbox_planes[2].dist = cmaxs[1] - mins[1]; cbox_planes[3].normal[0] = 0;cbox_planes[3].normal[1] = -1;cbox_planes[3].normal[2] = 0;cbox_planes[3].dist = maxs[1] - cmins[1]; cbox_planes[4].normal[0] = 0;cbox_planes[4].normal[1] = 0;cbox_planes[4].normal[2] = 1;cbox_planes[4].dist = cmaxs[2] - mins[2]; cbox_planes[5].normal[0] = 0;cbox_planes[5].normal[1] = 0;cbox_planes[5].normal[2] = -1;cbox_planes[5].dist = maxs[2] - cmins[2]; cbox_planes[0].q3surfaceflags = boxq3surfaceflags;cbox_planes[0].texture = boxtexture; cbox_planes[1].q3surfaceflags = boxq3surfaceflags;cbox_planes[1].texture = boxtexture; cbox_planes[2].q3surfaceflags = boxq3surfaceflags;cbox_planes[2].texture = boxtexture; cbox_planes[3].q3surfaceflags = boxq3surfaceflags;cbox_planes[3].texture = boxtexture; cbox_planes[4].q3surfaceflags = boxq3surfaceflags;cbox_planes[4].texture = boxtexture; cbox_planes[5].q3surfaceflags = boxq3surfaceflags;cbox_planes[5].texture = boxtexture; memset(trace, 0, sizeof(trace_t)); trace->hitsupercontentsmask = hitsupercontentsmask; trace->fraction = 1; Collision_TraceLineBrushFloat(trace, start, end, &cbox, &cbox); # 1158 "../../../model_brush.c" } void Collision_ClipTrace_Point(trace_t *trace, const vec3_t cmins, const vec3_t cmaxs, const vec3_t start, int hitsupercontentsmask, int boxsupercontents, int boxq3surfaceflags, const texture_t *boxtexture) { memset(trace, 0, sizeof(trace_t)); trace->fraction = 1; if (((start)[0] <= (cmaxs)[0] && (start)[0] >= (cmins)[0] && (start)[1] <= (cmaxs)[1] && (start)[1] >= (cmins)[1] && (start)[2] <= (cmaxs)[2] && (start)[2] >= (cmins)[2])) { trace->startsupercontents |= boxsupercontents; if (hitsupercontentsmask & boxsupercontents) { trace->startsolid = true; trace->allsolid = true; } } } static qboolean Mod_Q1BSP_TraceLineOfSight(struct model_s *model, const vec3_t start, const vec3_t end) { trace_t trace; Mod_Q1BSP_TraceLine(model, # 1178 "../../../model_brush.c" 3 4 ((void *)0) # 1178 "../../../model_brush.c" , # 1178 "../../../model_brush.c" 3 4 ((void *)0) # 1178 "../../../model_brush.c" , &trace, start, end, 0x00001000); return trace.fraction == 1; } static int Mod_Q1BSP_LightPoint_RecursiveBSPNode(dp_model_t *model, vec3_t ambientcolor, vec3_t diffusecolor, vec3_t diffusenormal, const mnode_t *node, float x, float y, float startz, float endz) { int side; float front, back; float mid, distz = endz - startz; while (node->plane) { switch (node->plane->type) { case 0: node = node->children[x < node->plane->dist]; continue; case 1: node = node->children[y < node->plane->dist]; continue; case 2: side = startz < node->plane->dist; if ((endz < node->plane->dist) == side) { node = node->children[side]; continue; } mid = node->plane->dist; break; default: back = front = x * node->plane->normal[0] + y * node->plane->normal[1]; front += startz * node->plane->normal[2]; back += endz * node->plane->normal[2]; side = front < node->plane->dist; if ((back < node->plane->dist) == side) { node = node->children[side]; continue; } mid = startz + distz * (front - node->plane->dist) / (front - back); break; } if (node->children[side]->plane && Mod_Q1BSP_LightPoint_RecursiveBSPNode(model, ambientcolor, diffusecolor, diffusenormal, node->children[side], x, y, startz, mid)) return true; if (node->numsurfaces) { unsigned int i; int dsi, dti, lmwidth, lmheight; float ds, dt; msurface_t *surface; unsigned char *lightmap; int maps, line3, size3; float dsfrac; float dtfrac; float scale, w, w00, w01, w10, w11; surface = model->data_surfaces + node->firstsurface; for (i = 0;i < node->numsurfaces;i++, surface++) { if (!(surface->texture->basematerialflags & 64) || !surface->lightmapinfo || !surface->lightmapinfo->samples) continue; ds = ((x * surface->lightmapinfo->texinfo->vecs[0][0] + y * surface->lightmapinfo->texinfo->vecs[0][1] + mid * surface->lightmapinfo->texinfo->vecs[0][2] + surface->lightmapinfo->texinfo->vecs[0][3]) - surface->lightmapinfo->texturemins[0]) * 0.0625f; dt = ((x * surface->lightmapinfo->texinfo->vecs[1][0] + y * surface->lightmapinfo->texinfo->vecs[1][1] + mid * surface->lightmapinfo->texinfo->vecs[1][2] + surface->lightmapinfo->texinfo->vecs[1][3]) - surface->lightmapinfo->texturemins[1]) * 0.0625f; dsi = (int)floor(ds); dti = (int)floor(dt); lmwidth = ((surface->lightmapinfo->extents[0]>>4)+1); lmheight = ((surface->lightmapinfo->extents[1]>>4)+1); if (dsi >= 0 && dsi < lmwidth && dti >= 0 && dti < lmheight) { if (dsi < 0) dsi = 0; if (dti < 0) dti = 0; if (dsi > lmwidth-2) dsi = lmwidth-2; if (dti > lmheight-2) dti = lmheight-2; # 1283 "../../../model_brush.c" dsfrac = ds - dsi; dtfrac = dt - dti; w00 = (1 - dsfrac) * (1 - dtfrac) * (1.0f / 128.0f); w01 = ( dsfrac) * (1 - dtfrac) * (1.0f / 128.0f); w10 = (1 - dsfrac) * ( dtfrac) * (1.0f / 128.0f); w11 = ( dsfrac) * ( dtfrac) * (1.0f / 128.0f); line3 = lmwidth * 3; size3 = lmwidth * lmheight * 3; lightmap = surface->lightmapinfo->samples + dti * line3 + dsi*3; for (maps = 0;maps < 4 && surface->lightmapinfo->styles[maps] != 255;maps++) { scale = r_refdef.scene.rtlightstylevalue[surface->lightmapinfo->styles[maps]]; w = w00 * scale;((ambientcolor)[0] = (ambientcolor)[0] + (w) * (lightmap)[0],(ambientcolor)[1] = (ambientcolor)[1] + (w) * (lightmap)[1],(ambientcolor)[2] = (ambientcolor)[2] + (w) * (lightmap)[2]); w = w01 * scale;((ambientcolor)[0] = (ambientcolor)[0] + (w) * (lightmap + 3)[0],(ambientcolor)[1] = (ambientcolor)[1] + (w) * (lightmap + 3)[1],(ambientcolor)[2] = (ambientcolor)[2] + (w) * (lightmap + 3)[2]); w = w10 * scale;((ambientcolor)[0] = (ambientcolor)[0] + (w) * (lightmap + line3)[0],(ambientcolor)[1] = (ambientcolor)[1] + (w) * (lightmap + line3)[1],(ambientcolor)[2] = (ambientcolor)[2] + (w) * (lightmap + line3)[2]); w = w11 * scale;((ambientcolor)[0] = (ambientcolor)[0] + (w) * (lightmap + line3 + 3)[0],(ambientcolor)[1] = (ambientcolor)[1] + (w) * (lightmap + line3 + 3)[1],(ambientcolor)[2] = (ambientcolor)[2] + (w) * (lightmap + line3 + 3)[2]); lightmap += size3; } return true; } } } node = node->children[side ^ 1]; startz = mid; distz = endz - startz; } return false; } static void Mod_Q1BSP_LightPoint(dp_model_t *model, const vec3_t p, vec3_t ambientcolor, vec3_t diffusecolor, vec3_t diffusenormal) { ((diffusenormal)[0]=(0),(diffusenormal)[1]=(0),(diffusenormal)[2]=(1)); if (!model->brushq1.lightdata) { ((ambientcolor)[0]=(1),(ambientcolor)[1]=(1),(ambientcolor)[2]=(1)); ((diffusecolor)[0]=(0),(diffusecolor)[1]=(0),(diffusecolor)[2]=(0)); return; } Mod_Q1BSP_LightPoint_RecursiveBSPNode(model, ambientcolor, diffusecolor, diffusenormal, model->brush.data_nodes + model->brushq1.hulls[0].firstclipnode, p[0], p[1], p[2] + 0.125, p[2] - 65536); } static const texture_t *Mod_Q1BSP_TraceLineAgainstSurfacesFindTextureOnNode(RecursiveHullCheckTraceInfo_t *t, const dp_model_t *model, const mnode_t *node, double mid[3]) { unsigned int i; int j; int k; const msurface_t *surface; float normal[3]; float v0[3]; float v1[3]; float edgedir[3]; float edgenormal[3]; float p[4]; float midf; float t1; float t2; ((p)[0]=(mid)[0],(p)[1]=(mid)[1],(p)[2]=(mid)[2]); p[3] = 1; surface = model->data_surfaces + node->firstsurface; for (i = 0;i < node->numsurfaces;i++, surface++) { if (!(t->trace->hitsupercontentsmask & surface->texture->supercontents)) continue; ((normal)[0]=(model->surfmesh.data_normal3f + 3 * surface->num_firstvertex)[0],(normal)[1]=(model->surfmesh.data_normal3f + 3 * surface->num_firstvertex)[1],(normal)[2]=(model->surfmesh.data_normal3f + 3 * surface->num_firstvertex)[2]); if (((t->dist)[0]*(normal)[0]+(t->dist)[1]*(normal)[1]+(t->dist)[2]*(normal)[2]) > 0) continue; for (j = 0, k = surface->num_vertices - 1;j < surface->num_vertices;k = j, j++) { ((v0)[0]=(model->surfmesh.data_vertex3f + 3 * (surface->num_firstvertex + k))[0],(v0)[1]=(model->surfmesh.data_vertex3f + 3 * (surface->num_firstvertex + k))[1],(v0)[2]=(model->surfmesh.data_vertex3f + 3 * (surface->num_firstvertex + k))[2]); ((v1)[0]=(model->surfmesh.data_vertex3f + 3 * (surface->num_firstvertex + j))[0],(v1)[1]=(model->surfmesh.data_vertex3f + 3 * (surface->num_firstvertex + j))[1],(v1)[2]=(model->surfmesh.data_vertex3f + 3 * (surface->num_firstvertex + j))[2]); ((edgedir)[0]=(v0)[0]-(v1)[0],(edgedir)[1]=(v0)[1]-(v1)[1],(edgedir)[2]=(v0)[2]-(v1)[2]); ((edgenormal)[0]=(edgedir)[1]*(normal)[2]-(edgedir)[2]*(normal)[1],(edgenormal)[1]=(edgedir)[2]*(normal)[0]-(edgedir)[0]*(normal)[2],(edgenormal)[2]=(edgedir)[0]*(normal)[1]-(edgedir)[1]*(normal)[0]); if (((edgenormal)[0]*(p)[0]+(edgenormal)[1]*(p)[1]+(edgenormal)[2]*(p)[2]) > ((edgenormal)[0]*(v0)[0]+(edgenormal)[1]*(v0)[1]+(edgenormal)[2]*(v0)[2])) break; } if (j < surface->num_vertices) continue; ((t->trace->plane.normal)[0]=(normal)[0],(t->trace->plane.normal)[1]=(normal)[1],(t->trace->plane.normal)[2]=(normal)[2]); t->trace->plane.dist = ((normal)[0]*(p)[0]+(normal)[1]*(p)[1]+(normal)[2]*(p)[2]); t1 = ((t->start)[0]*(t->trace->plane.normal)[0]+(t->start)[1]*(t->trace->plane.normal)[1]+(t->start)[2]*(t->trace->plane.normal)[2]) - t->trace->plane.dist; t2 = ((t->end)[0]*(t->trace->plane.normal)[0]+(t->end)[1]*(t->trace->plane.normal)[1]+(t->end)[2]*(t->trace->plane.normal)[2]) - t->trace->plane.dist; midf = (t1 - collision_impactnudge.value) / (t1 - t2); t->trace->fraction = ((midf) >= (0) ? ((midf) < (1) ? (midf) : (1)) : (0)); t->trace->hittexture = surface->texture->currentframe; t->trace->hitq3surfaceflags = t->trace->hittexture->surfaceflags; t->trace->hitsupercontents = t->trace->hittexture->supercontents; return surface->texture->currentframe; } return # 1399 "../../../model_brush.c" 3 4 ((void *)0) # 1399 "../../../model_brush.c" ; } static int Mod_Q1BSP_TraceLineAgainstSurfacesRecursiveBSPNode(RecursiveHullCheckTraceInfo_t *t, const dp_model_t *model, const mnode_t *node, const double p1[3], const double p2[3]) { const mplane_t *plane; double t1, t2; int side; double midf, mid[3]; const mleaf_t *leaf; while (node->plane) { plane = node->plane; if (plane->type < 3) { t1 = p1[plane->type] - plane->dist; t2 = p2[plane->type] - plane->dist; } else { t1 = ((plane->normal)[0]*(p1)[0]+(plane->normal)[1]*(p1)[1]+(plane->normal)[2]*(p1)[2]) - plane->dist; t2 = ((plane->normal)[0]*(p2)[0]+(plane->normal)[1]*(p2)[1]+(plane->normal)[2]*(p2)[2]) - plane->dist; } if (t1 < 0) { if (t2 < 0) { node = node->children[1]; continue; } side = 1; } else { if (t2 >= 0) { node = node->children[0]; continue; } side = 0; } if (plane->type < 3) { t1 = t->start[plane->type] - plane->dist; t2 = t->end[plane->type] - plane->dist; } else { t1 = ((plane->normal)[0]*(t->start)[0]+(plane->normal)[1]*(t->start)[1]+(plane->normal)[2]*(t->start)[2]) - plane->dist; t2 = ((plane->normal)[0]*(t->end)[0]+(plane->normal)[1]*(t->end)[1]+(plane->normal)[2]*(t->end)[2]) - plane->dist; } midf = t1 / (t1 - t2); ((mid)[0] = (t->start)[0] + (midf) * (t->dist)[0],(mid)[1] = (t->start)[1] + (midf) * (t->dist)[1],(mid)[2] = (t->start)[2] + (midf) * (t->dist)[2]); if (Mod_Q1BSP_TraceLineAgainstSurfacesRecursiveBSPNode(t, model, node->children[side], p1, mid) == 2) return 2; Mod_Q1BSP_TraceLineAgainstSurfacesFindTextureOnNode(t, model, node, mid); if (t->trace->hittexture) return 2; return Mod_Q1BSP_TraceLineAgainstSurfacesRecursiveBSPNode(t, model, node->children[side ^ 1], mid, p2); } leaf = (const mleaf_t *)node; side = Mod_Q1BSP_SuperContentsFromNativeContents( # 1471 "../../../model_brush.c" 3 4 ((void *)0) # 1471 "../../../model_brush.c" , leaf->contents); if (!t->trace->startfound) { t->trace->startfound = true; t->trace->startsupercontents |= side; } if (side & (0x00000008 | 0x00000004 | 0x00000002)) t->trace->inwater = true; if (side == 0) t->trace->inopen = true; if (side & t->trace->hitsupercontentsmask) { if (t->trace->allsolid) t->trace->startsolid = true; return 1; } else { t->trace->allsolid = false; return 0; } } static void Mod_Q1BSP_TraceLineAgainstSurfaces(struct model_s *model, const frameblend_t *frameblend, const skeleton_t *skeleton, trace_t *trace, const vec3_t start, const vec3_t end, int hitsupercontentsmask) { RecursiveHullCheckTraceInfo_t rhc; memset(&rhc, 0, sizeof(rhc)); memset(trace, 0, sizeof(trace_t)); rhc.trace = trace; rhc.trace->hitsupercontentsmask = hitsupercontentsmask; rhc.trace->fraction = 1; rhc.trace->allsolid = true; rhc.hull = &model->brushq1.hulls[0]; ((rhc.start)[0]=(start)[0],(rhc.start)[1]=(start)[1],(rhc.start)[2]=(start)[2]); ((rhc.end)[0]=(end)[0],(rhc.end)[1]=(end)[1],(rhc.end)[2]=(end)[2]); ((rhc.dist)[0]=(rhc.end)[0]-(rhc.start)[0],(rhc.dist)[1]=(rhc.end)[1]-(rhc.start)[1],(rhc.dist)[2]=(rhc.end)[2]-(rhc.start)[2]); Mod_Q1BSP_TraceLineAgainstSurfacesRecursiveBSPNode(&rhc, model, model->brush.data_nodes + rhc.hull->firstclipnode, rhc.start, rhc.end); ((rhc.trace->endpos)[0] = (rhc.start)[0] + (rhc.trace->fraction) * (rhc.dist)[0],(rhc.trace->endpos)[1] = (rhc.start)[1] + (rhc.trace->fraction) * (rhc.dist)[1],(rhc.trace->endpos)[2] = (rhc.start)[2] + (rhc.trace->fraction) * (rhc.dist)[2]); } static void Mod_Q1BSP_DecompressVis(const unsigned char *in, const unsigned char *inend, unsigned char *out, unsigned char *outend) { int c; unsigned char *outstart = out; while (out < outend) { if (in == inend) { Con_Printf("Mod_Q1BSP_DecompressVis: input underrun on model \"%s\" (decompressed %i of %i output bytes)\n", loadmodel->name, (int)(out - outstart), (int)(outend - outstart)); return; } c = *in++; if (c) *out++ = c; else { if (in == inend) { Con_Printf("Mod_Q1BSP_DecompressVis: input underrun (during zero-run) on model \"%s\" (decompressed %i of %i output bytes)\n", loadmodel->name, (int)(out - outstart), (int)(outend - outstart)); return; } for (c = *in++;c > 0;c--) { if (out == outend) { Con_Printf("Mod_Q1BSP_DecompressVis: output overrun on model \"%s\" (decompressed %i of %i output bytes)\n", loadmodel->name, (int)(out - outstart), (int)(outend - outstart)); return; } *out++ = 0; } } } } # 1554 "../../../model_brush.c" static void R_Q1BSP_LoadSplitSky (unsigned char *src, int width, int height, int bytesperpixel) { int x, y; int w = width/2; int h = height; unsigned int *solidpixels = (unsigned int *)_Mem_Alloc(tempmempool, # 1559 "../../../model_brush.c" 3 4 ((void *)0) # 1559 "../../../model_brush.c" , w*h*sizeof(unsigned char[4]), 16, "../../../model_brush.c", 1559); unsigned int *alphapixels = (unsigned int *)_Mem_Alloc(tempmempool, # 1560 "../../../model_brush.c" 3 4 ((void *)0) # 1560 "../../../model_brush.c" , w*h*sizeof(unsigned char[4]), 16, "../../../model_brush.c", 1560); if (loadmodel->texturepool == # 1563 "../../../model_brush.c" 3 4 ((void *)0) # 1563 "../../../model_brush.c" && cls.state != ca_dedicated) loadmodel->texturepool = R_AllocTexturePool(); if (bytesperpixel == 4) { for (y = 0;y < h;y++) { for (x = 0;x < w;x++) { solidpixels[y*w+x] = ((unsigned *)src)[y*width+x+w]; alphapixels[y*w+x] = ((unsigned *)src)[y*width+x]; } } } else { int p, r, g, b; union { unsigned int i; unsigned char b[4]; } bgra; r = g = b = 0; for (y = 0;y < h;y++) { for (x = 0;x < w;x++) { p = src[x*width+y+w]; r += palette_rgb[p][0]; g += palette_rgb[p][1]; b += palette_rgb[p][2]; } } bgra.b[2] = r/(w*h); bgra.b[1] = g/(w*h); bgra.b[0] = b/(w*h); bgra.b[3] = 0; for (y = 0;y < h;y++) { for (x = 0;x < w;x++) { solidpixels[y*w+x] = palette_bgra_complete[src[y*width+x+w]]; p = src[y*width+x]; alphapixels[y*w+x] = p ? palette_bgra_complete[p] : bgra.i; } } } loadmodel->brush.solidskyskinframe = R_SkinFrame_LoadInternalBGRA("sky_solidtexture", 0 , (unsigned char *) solidpixels, w, h, vid.sRGB3D); loadmodel->brush.alphaskyskinframe = R_SkinFrame_LoadInternalBGRA("sky_alphatexture", 0x00000001, (unsigned char *) alphapixels, w, h, vid.sRGB3D); _Mem_Free(solidpixels, "../../../model_brush.c", 1616); _Mem_Free(alphapixels, "../../../model_brush.c", 1617); } static void Mod_Q1BSP_LoadTextures(sizebuf_t *sb) { int i, j, k, num, max, altmax, mtwidth, mtheight, doffset, incomplete, nummiptex = 0; skinframe_t *skinframe; texture_t *tx, *tx2, *anims[10], *altanims[10]; texture_t backuptex; unsigned char *data, *mtdata; const char *s; char mapname[128], name[128]; unsigned char zeroopaque[4], zerotrans[4]; sizebuf_t miptexsb; char vabuf[1024]; ((zeroopaque)[0]=(0),(zeroopaque)[1]=(0),(zeroopaque)[2]=(0),(zeroopaque)[3]=(255)); ((zerotrans)[0]=(0),(zerotrans)[1]=(0),(zerotrans)[2]=(0),(zerotrans)[3]=(128)); loadmodel->data_textures = # 1635 "../../../model_brush.c" 3 4 ((void *)0) # 1635 "../../../model_brush.c" ; if (sb->cursize) { nummiptex = MSG_ReadLittleLong(sb); loadmodel->num_textures = nummiptex + 2; loadmodel->num_texturesperskin = loadmodel->num_textures; } else { loadmodel->num_textures = 2; loadmodel->num_texturesperskin = loadmodel->num_textures; } loadmodel->data_textures = (texture_t *)_Mem_Alloc(loadmodel->mempool, # 1650 "../../../model_brush.c" 3 4 ((void *)0) # 1650 "../../../model_brush.c" , loadmodel->num_textures * sizeof(texture_t), 16, "../../../model_brush.c", 1650); if (cls.state != ca_dedicated) skinframe = R_SkinFrame_LoadMissing(); else skinframe = # 1656 "../../../model_brush.c" 3 4 ((void *)0) # 1656 "../../../model_brush.c" ; for (i = 0, tx = loadmodel->data_textures;i < loadmodel->num_textures;i++, tx++) { strlcpy(tx->name, "NO TEXTURE FOUND", sizeof(tx->name)); tx->width = 16; tx->height = 16; tx->basealpha = 1.0f; if (cls.state != ca_dedicated) { tx->numskinframes = 1; tx->skinframerate = 1; tx->skinframes[0] = skinframe; tx->currentskinframe = tx->skinframes[0]; } tx->basematerialflags = 64; if (i == loadmodel->num_textures - 1) { tx->basematerialflags |= 256 | 1024 | 16384; tx->supercontents = mod_q1bsp_texture_water.supercontents; tx->surfaceflags = mod_q1bsp_texture_water.surfaceflags; } else { tx->supercontents = mod_q1bsp_texture_solid.supercontents; tx->surfaceflags = mod_q1bsp_texture_solid.surfaceflags; } tx->currentframe = tx; tx->reflectmin = 0; tx->reflectmax = 1; tx->refractfactor = 1; ((tx->refractcolor4f)[0]=(1),(tx->refractcolor4f)[1]=(1),(tx->refractcolor4f)[2]=(1),(tx->refractcolor4f)[3]=(1)); tx->reflectfactor = 1; ((tx->reflectcolor4f)[0]=(1),(tx->reflectcolor4f)[1]=(1),(tx->reflectcolor4f)[2]=(1),(tx->reflectcolor4f)[3]=(1)); tx->r_water_wateralpha = 1; tx->offsetmapping = OFFSETMAPPING_DEFAULT; tx->offsetscale = 1; tx->offsetbias = 0; tx->specularscalemod = 1; tx->specularpowermod = 1; tx->transparentsort = TRANSPARENTSORT_DISTANCE; } if (!sb->cursize) { Con_Printf("%s: no miptex lump to load textures from\n", loadmodel->name); return; } s = loadmodel->name; if (!strncasecmp(s, "maps/", 5)) s += 5; FS_StripExtension(s, mapname, sizeof(mapname)); for (i = 0;i < nummiptex;i++) { doffset = MSG_ReadLittleLong(sb); if (r_nosurftextures.integer) continue; if (doffset == -1) { Con_DPrintf("%s: miptex #%i missing\n", loadmodel->name, i); continue; } MSG_InitReadBuffer(&miptexsb, sb->data + doffset, sb->cursize - doffset); for (j = 0;j < 16;j++) name[j] = ((&miptexsb)->readcount >= (&miptexsb)->cursize ? ((&miptexsb)->badread = true, -1) : (unsigned char)(&miptexsb)->data[(&miptexsb)->readcount++]); name[j] = 0; for (j = (int)strlen(name);j < 16;j++) name[j] = 0; if (!name[0]) { dpsnprintf(name, sizeof(name), "unnamed%i", i); Con_DPrintf("%s: warning: renaming unnamed texture to %s\n", loadmodel->name, name); } mtwidth = MSG_ReadLittleLong(&miptexsb); mtheight = MSG_ReadLittleLong(&miptexsb); mtdata = # 1746 "../../../model_brush.c" 3 4 ((void *)0) # 1746 "../../../model_brush.c" ; j = MSG_ReadLittleLong(&miptexsb); if (j) { if (j < 40 || j + mtwidth * mtheight > miptexsb.cursize) { Con_Printf("%s: Texture \"%s\" is corrupt or incomplete\n", loadmodel->name, name); continue; } mtdata = miptexsb.data + j; } if ((mtwidth & 15) || (mtheight & 15)) Con_DPrintf("%s: warning: texture \"%s\" is not 16 aligned\n", loadmodel->name, name); for (j = 0;name[j];j++) if (name[j] >= 'A' && name[j] <= 'Z') name[j] += 'a' - 'A'; backuptex = loadmodel->data_textures[i]; if (name[0] && Mod_LoadTextureFromQ3Shader(loadmodel->data_textures + i, name, false, false, 0)) continue; loadmodel->data_textures[i] = backuptex; tx = loadmodel->data_textures + i; strlcpy(tx->name, name, sizeof(tx->name)); tx->width = mtwidth; tx->height = mtheight; tx->basealpha = 1.0f; if (tx->name[0] == '*') { if (! # 1781 "../../../model_brush.c" 3 4 (__extension__ (__builtin_constant_p ( # 1781 "../../../model_brush.c" 5 # 1781 "../../../model_brush.c" 3 4 ) && ((__builtin_constant_p ( # 1781 "../../../model_brush.c" tx->name # 1781 "../../../model_brush.c" 3 4 ) && strlen ( # 1781 "../../../model_brush.c" tx->name # 1781 "../../../model_brush.c" 3 4 ) < ((size_t) ( # 1781 "../../../model_brush.c" 5 # 1781 "../../../model_brush.c" 3 4 ))) || (__builtin_constant_p ( # 1781 "../../../model_brush.c" "*lava" # 1781 "../../../model_brush.c" 3 4 ) && strlen ( # 1781 "../../../model_brush.c" "*lava" # 1781 "../../../model_brush.c" 3 4 ) < ((size_t) ( # 1781 "../../../model_brush.c" 5 # 1781 "../../../model_brush.c" 3 4 )))) ? __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( # 1781 "../../../model_brush.c" tx->name # 1781 "../../../model_brush.c" 3 4 ) && __builtin_constant_p ( # 1781 "../../../model_brush.c" "*lava" # 1781 "../../../model_brush.c" 3 4 ) && (__s1_len = __builtin_strlen ( # 1781 "../../../model_brush.c" tx->name # 1781 "../../../model_brush.c" 3 4 ), __s2_len = __builtin_strlen ( # 1781 "../../../model_brush.c" "*lava" # 1781 "../../../model_brush.c" 3 4 ), (!((size_t)(const void *)(( # 1781 "../../../model_brush.c" tx->name # 1781 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 1781 "../../../model_brush.c" tx->name # 1781 "../../../model_brush.c" 3 4 ) == 1) || __s1_len >= 4) && (!((size_t)(const void *)(( # 1781 "../../../model_brush.c" "*lava" # 1781 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 1781 "../../../model_brush.c" "*lava" # 1781 "../../../model_brush.c" 3 4 ) == 1) || __s2_len >= 4)) ? __builtin_strcmp ( # 1781 "../../../model_brush.c" tx->name # 1781 "../../../model_brush.c" 3 4 , # 1781 "../../../model_brush.c" "*lava" # 1781 "../../../model_brush.c" 3 4 ) : (__builtin_constant_p ( # 1781 "../../../model_brush.c" tx->name # 1781 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 1781 "../../../model_brush.c" tx->name # 1781 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 1781 "../../../model_brush.c" tx->name # 1781 "../../../model_brush.c" 3 4 ) == 1) && (__s1_len = __builtin_strlen ( # 1781 "../../../model_brush.c" tx->name # 1781 "../../../model_brush.c" 3 4 ), __s1_len < 4) ? (__builtin_constant_p ( # 1781 "../../../model_brush.c" "*lava" # 1781 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 1781 "../../../model_brush.c" "*lava" # 1781 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 1781 "../../../model_brush.c" "*lava" # 1781 "../../../model_brush.c" 3 4 ) == 1) ? __builtin_strcmp ( # 1781 "../../../model_brush.c" tx->name # 1781 "../../../model_brush.c" 3 4 , # 1781 "../../../model_brush.c" "*lava" # 1781 "../../../model_brush.c" 3 4 ) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ( # 1781 "../../../model_brush.c" "*lava" # 1781 "../../../model_brush.c" 3 4 ); int __result = (((const unsigned char *) (const char *) ( # 1781 "../../../model_brush.c" tx->name # 1781 "../../../model_brush.c" 3 4 ))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 1781 "../../../model_brush.c" tx->name # 1781 "../../../model_brush.c" 3 4 ))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 1781 "../../../model_brush.c" tx->name # 1781 "../../../model_brush.c" 3 4 ))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( # 1781 "../../../model_brush.c" tx->name # 1781 "../../../model_brush.c" 3 4 ))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ( # 1781 "../../../model_brush.c" "*lava" # 1781 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 1781 "../../../model_brush.c" "*lava" # 1781 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 1781 "../../../model_brush.c" "*lava" # 1781 "../../../model_brush.c" 3 4 ) == 1) && (__s2_len = __builtin_strlen ( # 1781 "../../../model_brush.c" "*lava" # 1781 "../../../model_brush.c" 3 4 ), __s2_len < 4) ? (__builtin_constant_p ( # 1781 "../../../model_brush.c" tx->name # 1781 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 1781 "../../../model_brush.c" tx->name # 1781 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 1781 "../../../model_brush.c" tx->name # 1781 "../../../model_brush.c" 3 4 ) == 1) ? __builtin_strcmp ( # 1781 "../../../model_brush.c" tx->name # 1781 "../../../model_brush.c" 3 4 , # 1781 "../../../model_brush.c" "*lava" # 1781 "../../../model_brush.c" 3 4 ) : (- (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ( # 1781 "../../../model_brush.c" tx->name # 1781 "../../../model_brush.c" 3 4 ); int __result = (((const unsigned char *) (const char *) ( # 1781 "../../../model_brush.c" "*lava" # 1781 "../../../model_brush.c" 3 4 ))[0] - __s2[0]); if (__s2_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 1781 "../../../model_brush.c" "*lava" # 1781 "../../../model_brush.c" 3 4 ))[1] - __s2[1]); if (__s2_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 1781 "../../../model_brush.c" "*lava" # 1781 "../../../model_brush.c" 3 4 ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( # 1781 "../../../model_brush.c" "*lava" # 1781 "../../../model_brush.c" 3 4 ))[3] - __s2[3]); } } __result; })))) : __builtin_strcmp ( # 1781 "../../../model_brush.c" tx->name # 1781 "../../../model_brush.c" 3 4 , # 1781 "../../../model_brush.c" "*lava" # 1781 "../../../model_brush.c" 3 4 )))); }) : strncmp ( # 1781 "../../../model_brush.c" tx->name # 1781 "../../../model_brush.c" 3 4 , # 1781 "../../../model_brush.c" "*lava" # 1781 "../../../model_brush.c" 3 4 , # 1781 "../../../model_brush.c" 5 # 1781 "../../../model_brush.c" 3 4 ))) # 1781 "../../../model_brush.c" ) { tx->supercontents = mod_q1bsp_texture_lava.supercontents; tx->surfaceflags = mod_q1bsp_texture_lava.surfaceflags; } else if (! # 1786 "../../../model_brush.c" 3 4 (__extension__ (__builtin_constant_p ( # 1786 "../../../model_brush.c" 6 # 1786 "../../../model_brush.c" 3 4 ) && ((__builtin_constant_p ( # 1786 "../../../model_brush.c" tx->name # 1786 "../../../model_brush.c" 3 4 ) && strlen ( # 1786 "../../../model_brush.c" tx->name # 1786 "../../../model_brush.c" 3 4 ) < ((size_t) ( # 1786 "../../../model_brush.c" 6 # 1786 "../../../model_brush.c" 3 4 ))) || (__builtin_constant_p ( # 1786 "../../../model_brush.c" "*slime" # 1786 "../../../model_brush.c" 3 4 ) && strlen ( # 1786 "../../../model_brush.c" "*slime" # 1786 "../../../model_brush.c" 3 4 ) < ((size_t) ( # 1786 "../../../model_brush.c" 6 # 1786 "../../../model_brush.c" 3 4 )))) ? __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( # 1786 "../../../model_brush.c" tx->name # 1786 "../../../model_brush.c" 3 4 ) && __builtin_constant_p ( # 1786 "../../../model_brush.c" "*slime" # 1786 "../../../model_brush.c" 3 4 ) && (__s1_len = __builtin_strlen ( # 1786 "../../../model_brush.c" tx->name # 1786 "../../../model_brush.c" 3 4 ), __s2_len = __builtin_strlen ( # 1786 "../../../model_brush.c" "*slime" # 1786 "../../../model_brush.c" 3 4 ), (!((size_t)(const void *)(( # 1786 "../../../model_brush.c" tx->name # 1786 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 1786 "../../../model_brush.c" tx->name # 1786 "../../../model_brush.c" 3 4 ) == 1) || __s1_len >= 4) && (!((size_t)(const void *)(( # 1786 "../../../model_brush.c" "*slime" # 1786 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 1786 "../../../model_brush.c" "*slime" # 1786 "../../../model_brush.c" 3 4 ) == 1) || __s2_len >= 4)) ? __builtin_strcmp ( # 1786 "../../../model_brush.c" tx->name # 1786 "../../../model_brush.c" 3 4 , # 1786 "../../../model_brush.c" "*slime" # 1786 "../../../model_brush.c" 3 4 ) : (__builtin_constant_p ( # 1786 "../../../model_brush.c" tx->name # 1786 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 1786 "../../../model_brush.c" tx->name # 1786 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 1786 "../../../model_brush.c" tx->name # 1786 "../../../model_brush.c" 3 4 ) == 1) && (__s1_len = __builtin_strlen ( # 1786 "../../../model_brush.c" tx->name # 1786 "../../../model_brush.c" 3 4 ), __s1_len < 4) ? (__builtin_constant_p ( # 1786 "../../../model_brush.c" "*slime" # 1786 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 1786 "../../../model_brush.c" "*slime" # 1786 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 1786 "../../../model_brush.c" "*slime" # 1786 "../../../model_brush.c" 3 4 ) == 1) ? __builtin_strcmp ( # 1786 "../../../model_brush.c" tx->name # 1786 "../../../model_brush.c" 3 4 , # 1786 "../../../model_brush.c" "*slime" # 1786 "../../../model_brush.c" 3 4 ) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ( # 1786 "../../../model_brush.c" "*slime" # 1786 "../../../model_brush.c" 3 4 ); int __result = (((const unsigned char *) (const char *) ( # 1786 "../../../model_brush.c" tx->name # 1786 "../../../model_brush.c" 3 4 ))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 1786 "../../../model_brush.c" tx->name # 1786 "../../../model_brush.c" 3 4 ))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 1786 "../../../model_brush.c" tx->name # 1786 "../../../model_brush.c" 3 4 ))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( # 1786 "../../../model_brush.c" tx->name # 1786 "../../../model_brush.c" 3 4 ))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ( # 1786 "../../../model_brush.c" "*slime" # 1786 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 1786 "../../../model_brush.c" "*slime" # 1786 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 1786 "../../../model_brush.c" "*slime" # 1786 "../../../model_brush.c" 3 4 ) == 1) && (__s2_len = __builtin_strlen ( # 1786 "../../../model_brush.c" "*slime" # 1786 "../../../model_brush.c" 3 4 ), __s2_len < 4) ? (__builtin_constant_p ( # 1786 "../../../model_brush.c" tx->name # 1786 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 1786 "../../../model_brush.c" tx->name # 1786 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 1786 "../../../model_brush.c" tx->name # 1786 "../../../model_brush.c" 3 4 ) == 1) ? __builtin_strcmp ( # 1786 "../../../model_brush.c" tx->name # 1786 "../../../model_brush.c" 3 4 , # 1786 "../../../model_brush.c" "*slime" # 1786 "../../../model_brush.c" 3 4 ) : (- (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ( # 1786 "../../../model_brush.c" tx->name # 1786 "../../../model_brush.c" 3 4 ); int __result = (((const unsigned char *) (const char *) ( # 1786 "../../../model_brush.c" "*slime" # 1786 "../../../model_brush.c" 3 4 ))[0] - __s2[0]); if (__s2_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 1786 "../../../model_brush.c" "*slime" # 1786 "../../../model_brush.c" 3 4 ))[1] - __s2[1]); if (__s2_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 1786 "../../../model_brush.c" "*slime" # 1786 "../../../model_brush.c" 3 4 ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( # 1786 "../../../model_brush.c" "*slime" # 1786 "../../../model_brush.c" 3 4 ))[3] - __s2[3]); } } __result; })))) : __builtin_strcmp ( # 1786 "../../../model_brush.c" tx->name # 1786 "../../../model_brush.c" 3 4 , # 1786 "../../../model_brush.c" "*slime" # 1786 "../../../model_brush.c" 3 4 )))); }) : strncmp ( # 1786 "../../../model_brush.c" tx->name # 1786 "../../../model_brush.c" 3 4 , # 1786 "../../../model_brush.c" "*slime" # 1786 "../../../model_brush.c" 3 4 , # 1786 "../../../model_brush.c" 6 # 1786 "../../../model_brush.c" 3 4 ))) # 1786 "../../../model_brush.c" ) { tx->supercontents = mod_q1bsp_texture_slime.supercontents; tx->surfaceflags = mod_q1bsp_texture_slime.surfaceflags; } else { tx->supercontents = mod_q1bsp_texture_water.supercontents; tx->surfaceflags = mod_q1bsp_texture_water.surfaceflags; } } else if (! # 1797 "../../../model_brush.c" 3 4 (__extension__ (__builtin_constant_p ( # 1797 "../../../model_brush.c" 3 # 1797 "../../../model_brush.c" 3 4 ) && ((__builtin_constant_p ( # 1797 "../../../model_brush.c" tx->name # 1797 "../../../model_brush.c" 3 4 ) && strlen ( # 1797 "../../../model_brush.c" tx->name # 1797 "../../../model_brush.c" 3 4 ) < ((size_t) ( # 1797 "../../../model_brush.c" 3 # 1797 "../../../model_brush.c" 3 4 ))) || (__builtin_constant_p ( # 1797 "../../../model_brush.c" "sky" # 1797 "../../../model_brush.c" 3 4 ) && strlen ( # 1797 "../../../model_brush.c" "sky" # 1797 "../../../model_brush.c" 3 4 ) < ((size_t) ( # 1797 "../../../model_brush.c" 3 # 1797 "../../../model_brush.c" 3 4 )))) ? __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( # 1797 "../../../model_brush.c" tx->name # 1797 "../../../model_brush.c" 3 4 ) && __builtin_constant_p ( # 1797 "../../../model_brush.c" "sky" # 1797 "../../../model_brush.c" 3 4 ) && (__s1_len = __builtin_strlen ( # 1797 "../../../model_brush.c" tx->name # 1797 "../../../model_brush.c" 3 4 ), __s2_len = __builtin_strlen ( # 1797 "../../../model_brush.c" "sky" # 1797 "../../../model_brush.c" 3 4 ), (!((size_t)(const void *)(( # 1797 "../../../model_brush.c" tx->name # 1797 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 1797 "../../../model_brush.c" tx->name # 1797 "../../../model_brush.c" 3 4 ) == 1) || __s1_len >= 4) && (!((size_t)(const void *)(( # 1797 "../../../model_brush.c" "sky" # 1797 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 1797 "../../../model_brush.c" "sky" # 1797 "../../../model_brush.c" 3 4 ) == 1) || __s2_len >= 4)) ? __builtin_strcmp ( # 1797 "../../../model_brush.c" tx->name # 1797 "../../../model_brush.c" 3 4 , # 1797 "../../../model_brush.c" "sky" # 1797 "../../../model_brush.c" 3 4 ) : (__builtin_constant_p ( # 1797 "../../../model_brush.c" tx->name # 1797 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 1797 "../../../model_brush.c" tx->name # 1797 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 1797 "../../../model_brush.c" tx->name # 1797 "../../../model_brush.c" 3 4 ) == 1) && (__s1_len = __builtin_strlen ( # 1797 "../../../model_brush.c" tx->name # 1797 "../../../model_brush.c" 3 4 ), __s1_len < 4) ? (__builtin_constant_p ( # 1797 "../../../model_brush.c" "sky" # 1797 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 1797 "../../../model_brush.c" "sky" # 1797 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 1797 "../../../model_brush.c" "sky" # 1797 "../../../model_brush.c" 3 4 ) == 1) ? __builtin_strcmp ( # 1797 "../../../model_brush.c" tx->name # 1797 "../../../model_brush.c" 3 4 , # 1797 "../../../model_brush.c" "sky" # 1797 "../../../model_brush.c" 3 4 ) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ( # 1797 "../../../model_brush.c" "sky" # 1797 "../../../model_brush.c" 3 4 ); int __result = (((const unsigned char *) (const char *) ( # 1797 "../../../model_brush.c" tx->name # 1797 "../../../model_brush.c" 3 4 ))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 1797 "../../../model_brush.c" tx->name # 1797 "../../../model_brush.c" 3 4 ))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 1797 "../../../model_brush.c" tx->name # 1797 "../../../model_brush.c" 3 4 ))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( # 1797 "../../../model_brush.c" tx->name # 1797 "../../../model_brush.c" 3 4 ))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ( # 1797 "../../../model_brush.c" "sky" # 1797 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 1797 "../../../model_brush.c" "sky" # 1797 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 1797 "../../../model_brush.c" "sky" # 1797 "../../../model_brush.c" 3 4 ) == 1) && (__s2_len = __builtin_strlen ( # 1797 "../../../model_brush.c" "sky" # 1797 "../../../model_brush.c" 3 4 ), __s2_len < 4) ? (__builtin_constant_p ( # 1797 "../../../model_brush.c" tx->name # 1797 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 1797 "../../../model_brush.c" tx->name # 1797 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 1797 "../../../model_brush.c" tx->name # 1797 "../../../model_brush.c" 3 4 ) == 1) ? __builtin_strcmp ( # 1797 "../../../model_brush.c" tx->name # 1797 "../../../model_brush.c" 3 4 , # 1797 "../../../model_brush.c" "sky" # 1797 "../../../model_brush.c" 3 4 ) : (- (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ( # 1797 "../../../model_brush.c" tx->name # 1797 "../../../model_brush.c" 3 4 ); int __result = (((const unsigned char *) (const char *) ( # 1797 "../../../model_brush.c" "sky" # 1797 "../../../model_brush.c" 3 4 ))[0] - __s2[0]); if (__s2_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 1797 "../../../model_brush.c" "sky" # 1797 "../../../model_brush.c" 3 4 ))[1] - __s2[1]); if (__s2_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 1797 "../../../model_brush.c" "sky" # 1797 "../../../model_brush.c" 3 4 ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( # 1797 "../../../model_brush.c" "sky" # 1797 "../../../model_brush.c" 3 4 ))[3] - __s2[3]); } } __result; })))) : __builtin_strcmp ( # 1797 "../../../model_brush.c" tx->name # 1797 "../../../model_brush.c" 3 4 , # 1797 "../../../model_brush.c" "sky" # 1797 "../../../model_brush.c" 3 4 )))); }) : strncmp ( # 1797 "../../../model_brush.c" tx->name # 1797 "../../../model_brush.c" 3 4 , # 1797 "../../../model_brush.c" "sky" # 1797 "../../../model_brush.c" 3 4 , # 1797 "../../../model_brush.c" 3 # 1797 "../../../model_brush.c" 3 4 ))) # 1797 "../../../model_brush.c" ) { tx->supercontents = mod_q1bsp_texture_sky.supercontents; tx->surfaceflags = mod_q1bsp_texture_sky.surfaceflags; tx->supercontents |= 0x00000001; } else { tx->supercontents = mod_q1bsp_texture_solid.supercontents; tx->surfaceflags = mod_q1bsp_texture_solid.surfaceflags; } if (cls.state != ca_dedicated) { if (!loadmodel->brush.ishlbsp && ! # 1813 "../../../model_brush.c" 3 4 (__extension__ (__builtin_constant_p ( # 1813 "../../../model_brush.c" 3 # 1813 "../../../model_brush.c" 3 4 ) && ((__builtin_constant_p ( # 1813 "../../../model_brush.c" tx->name # 1813 "../../../model_brush.c" 3 4 ) && strlen ( # 1813 "../../../model_brush.c" tx->name # 1813 "../../../model_brush.c" 3 4 ) < ((size_t) ( # 1813 "../../../model_brush.c" 3 # 1813 "../../../model_brush.c" 3 4 ))) || (__builtin_constant_p ( # 1813 "../../../model_brush.c" "sky" # 1813 "../../../model_brush.c" 3 4 ) && strlen ( # 1813 "../../../model_brush.c" "sky" # 1813 "../../../model_brush.c" 3 4 ) < ((size_t) ( # 1813 "../../../model_brush.c" 3 # 1813 "../../../model_brush.c" 3 4 )))) ? __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( # 1813 "../../../model_brush.c" tx->name # 1813 "../../../model_brush.c" 3 4 ) && __builtin_constant_p ( # 1813 "../../../model_brush.c" "sky" # 1813 "../../../model_brush.c" 3 4 ) && (__s1_len = __builtin_strlen ( # 1813 "../../../model_brush.c" tx->name # 1813 "../../../model_brush.c" 3 4 ), __s2_len = __builtin_strlen ( # 1813 "../../../model_brush.c" "sky" # 1813 "../../../model_brush.c" 3 4 ), (!((size_t)(const void *)(( # 1813 "../../../model_brush.c" tx->name # 1813 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 1813 "../../../model_brush.c" tx->name # 1813 "../../../model_brush.c" 3 4 ) == 1) || __s1_len >= 4) && (!((size_t)(const void *)(( # 1813 "../../../model_brush.c" "sky" # 1813 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 1813 "../../../model_brush.c" "sky" # 1813 "../../../model_brush.c" 3 4 ) == 1) || __s2_len >= 4)) ? __builtin_strcmp ( # 1813 "../../../model_brush.c" tx->name # 1813 "../../../model_brush.c" 3 4 , # 1813 "../../../model_brush.c" "sky" # 1813 "../../../model_brush.c" 3 4 ) : (__builtin_constant_p ( # 1813 "../../../model_brush.c" tx->name # 1813 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 1813 "../../../model_brush.c" tx->name # 1813 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 1813 "../../../model_brush.c" tx->name # 1813 "../../../model_brush.c" 3 4 ) == 1) && (__s1_len = __builtin_strlen ( # 1813 "../../../model_brush.c" tx->name # 1813 "../../../model_brush.c" 3 4 ), __s1_len < 4) ? (__builtin_constant_p ( # 1813 "../../../model_brush.c" "sky" # 1813 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 1813 "../../../model_brush.c" "sky" # 1813 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 1813 "../../../model_brush.c" "sky" # 1813 "../../../model_brush.c" 3 4 ) == 1) ? __builtin_strcmp ( # 1813 "../../../model_brush.c" tx->name # 1813 "../../../model_brush.c" 3 4 , # 1813 "../../../model_brush.c" "sky" # 1813 "../../../model_brush.c" 3 4 ) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ( # 1813 "../../../model_brush.c" "sky" # 1813 "../../../model_brush.c" 3 4 ); int __result = (((const unsigned char *) (const char *) ( # 1813 "../../../model_brush.c" tx->name # 1813 "../../../model_brush.c" 3 4 ))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 1813 "../../../model_brush.c" tx->name # 1813 "../../../model_brush.c" 3 4 ))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 1813 "../../../model_brush.c" tx->name # 1813 "../../../model_brush.c" 3 4 ))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( # 1813 "../../../model_brush.c" tx->name # 1813 "../../../model_brush.c" 3 4 ))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ( # 1813 "../../../model_brush.c" "sky" # 1813 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 1813 "../../../model_brush.c" "sky" # 1813 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 1813 "../../../model_brush.c" "sky" # 1813 "../../../model_brush.c" 3 4 ) == 1) && (__s2_len = __builtin_strlen ( # 1813 "../../../model_brush.c" "sky" # 1813 "../../../model_brush.c" 3 4 ), __s2_len < 4) ? (__builtin_constant_p ( # 1813 "../../../model_brush.c" tx->name # 1813 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 1813 "../../../model_brush.c" tx->name # 1813 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 1813 "../../../model_brush.c" tx->name # 1813 "../../../model_brush.c" 3 4 ) == 1) ? __builtin_strcmp ( # 1813 "../../../model_brush.c" tx->name # 1813 "../../../model_brush.c" 3 4 , # 1813 "../../../model_brush.c" "sky" # 1813 "../../../model_brush.c" 3 4 ) : (- (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ( # 1813 "../../../model_brush.c" tx->name # 1813 "../../../model_brush.c" 3 4 ); int __result = (((const unsigned char *) (const char *) ( # 1813 "../../../model_brush.c" "sky" # 1813 "../../../model_brush.c" 3 4 ))[0] - __s2[0]); if (__s2_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 1813 "../../../model_brush.c" "sky" # 1813 "../../../model_brush.c" 3 4 ))[1] - __s2[1]); if (__s2_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 1813 "../../../model_brush.c" "sky" # 1813 "../../../model_brush.c" 3 4 ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( # 1813 "../../../model_brush.c" "sky" # 1813 "../../../model_brush.c" 3 4 ))[3] - __s2[3]); } } __result; })))) : __builtin_strcmp ( # 1813 "../../../model_brush.c" tx->name # 1813 "../../../model_brush.c" 3 4 , # 1813 "../../../model_brush.c" "sky" # 1813 "../../../model_brush.c" 3 4 )))); }) : strncmp ( # 1813 "../../../model_brush.c" tx->name # 1813 "../../../model_brush.c" 3 4 , # 1813 "../../../model_brush.c" "sky" # 1813 "../../../model_brush.c" 3 4 , # 1813 "../../../model_brush.c" 3 # 1813 "../../../model_brush.c" 3 4 ))) # 1813 "../../../model_brush.c" && mtwidth == mtheight * 2) { data = loadimagepixelsbgra(gamemode == GAME_TENEBRAE ? tx->name : va(vabuf, sizeof(vabuf), "textures/%s/%s", mapname, tx->name), false, false, false, # 1815 "../../../model_brush.c" 3 4 ((void *)0) # 1815 "../../../model_brush.c" ); if (!data) data = loadimagepixelsbgra(gamemode == GAME_TENEBRAE ? tx->name : va(vabuf, sizeof(vabuf), "textures/%s", tx->name), false, false, false, # 1817 "../../../model_brush.c" 3 4 ((void *)0) # 1817 "../../../model_brush.c" ); if (data && image_width == image_height * 2) { R_Q1BSP_LoadSplitSky(data, image_width, image_height, 4); _Mem_Free(data, "../../../model_brush.c", 1821); } else if (mtdata != # 1823 "../../../model_brush.c" 3 4 ((void *)0) # 1823 "../../../model_brush.c" ) R_Q1BSP_LoadSplitSky(mtdata, mtwidth, mtheight, 1); } else { skinframe = R_SkinFrame_LoadExternal(gamemode == GAME_TENEBRAE ? tx->name : va(vabuf, sizeof(vabuf), "textures/%s/%s", mapname, tx->name), 0x00000001 | 0x00000002 | 0x00004000 | 0x00000100 | 0x00000200, false); if (!skinframe) skinframe = R_SkinFrame_LoadExternal(gamemode == GAME_TENEBRAE ? tx->name : va(vabuf, sizeof(vabuf), "textures/%s", tx->name), 0x00000001 | 0x00000002 | 0x00004000 | 0x00000100 | 0x00000200, false); if (skinframe) tx->offsetmapping = OFFSETMAPPING_DEFAULT; if (!skinframe) { if (loadmodel->brush.ishlbsp) { unsigned char *pixels, *freepixels; pixels = freepixels = # 1840 "../../../model_brush.c" 3 4 ((void *)0) # 1840 "../../../model_brush.c" ; if (mtdata) pixels = W_ConvertWAD3TextureBGRA(&miptexsb); if (pixels == # 1843 "../../../model_brush.c" 3 4 ((void *)0) # 1843 "../../../model_brush.c" ) pixels = freepixels = W_GetTextureBGRA(tx->name); if (pixels != # 1845 "../../../model_brush.c" 3 4 ((void *)0) # 1845 "../../../model_brush.c" ) { tx->width = image_width; tx->height = image_height; skinframe = R_SkinFrame_LoadInternalBGRA(tx->name, 0x00000001 | 0x00000002 | 0x00004000 | 0x00000100, pixels, image_width, image_height, true); } if (freepixels) _Mem_Free(freepixels, "../../../model_brush.c", 1852); } else if (mtdata) skinframe = R_SkinFrame_LoadInternalQuake(tx->name, 0x00000002 | 0x00004000 | 0x00000100, false, r_fullbrights.integer, mtdata, tx->width, tx->height); } if (skinframe) tx->skinframes[0] = skinframe; } if (! # 1862 "../../../model_brush.c" 3 4 (__extension__ (__builtin_constant_p ( # 1862 "../../../model_brush.c" 12 # 1862 "../../../model_brush.c" 3 4 ) && ((__builtin_constant_p ( # 1862 "../../../model_brush.c" tx->name # 1862 "../../../model_brush.c" 3 4 ) && strlen ( # 1862 "../../../model_brush.c" tx->name # 1862 "../../../model_brush.c" 3 4 ) < ((size_t) ( # 1862 "../../../model_brush.c" 12 # 1862 "../../../model_brush.c" 3 4 ))) || (__builtin_constant_p ( # 1862 "../../../model_brush.c" "*glassmirror" # 1862 "../../../model_brush.c" 3 4 ) && strlen ( # 1862 "../../../model_brush.c" "*glassmirror" # 1862 "../../../model_brush.c" 3 4 ) < ((size_t) ( # 1862 "../../../model_brush.c" 12 # 1862 "../../../model_brush.c" 3 4 )))) ? __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( # 1862 "../../../model_brush.c" tx->name # 1862 "../../../model_brush.c" 3 4 ) && __builtin_constant_p ( # 1862 "../../../model_brush.c" "*glassmirror" # 1862 "../../../model_brush.c" 3 4 ) && (__s1_len = __builtin_strlen ( # 1862 "../../../model_brush.c" tx->name # 1862 "../../../model_brush.c" 3 4 ), __s2_len = __builtin_strlen ( # 1862 "../../../model_brush.c" "*glassmirror" # 1862 "../../../model_brush.c" 3 4 ), (!((size_t)(const void *)(( # 1862 "../../../model_brush.c" tx->name # 1862 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 1862 "../../../model_brush.c" tx->name # 1862 "../../../model_brush.c" 3 4 ) == 1) || __s1_len >= 4) && (!((size_t)(const void *)(( # 1862 "../../../model_brush.c" "*glassmirror" # 1862 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 1862 "../../../model_brush.c" "*glassmirror" # 1862 "../../../model_brush.c" 3 4 ) == 1) || __s2_len >= 4)) ? __builtin_strcmp ( # 1862 "../../../model_brush.c" tx->name # 1862 "../../../model_brush.c" 3 4 , # 1862 "../../../model_brush.c" "*glassmirror" # 1862 "../../../model_brush.c" 3 4 ) : (__builtin_constant_p ( # 1862 "../../../model_brush.c" tx->name # 1862 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 1862 "../../../model_brush.c" tx->name # 1862 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 1862 "../../../model_brush.c" tx->name # 1862 "../../../model_brush.c" 3 4 ) == 1) && (__s1_len = __builtin_strlen ( # 1862 "../../../model_brush.c" tx->name # 1862 "../../../model_brush.c" 3 4 ), __s1_len < 4) ? (__builtin_constant_p ( # 1862 "../../../model_brush.c" "*glassmirror" # 1862 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 1862 "../../../model_brush.c" "*glassmirror" # 1862 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 1862 "../../../model_brush.c" "*glassmirror" # 1862 "../../../model_brush.c" 3 4 ) == 1) ? __builtin_strcmp ( # 1862 "../../../model_brush.c" tx->name # 1862 "../../../model_brush.c" 3 4 , # 1862 "../../../model_brush.c" "*glassmirror" # 1862 "../../../model_brush.c" 3 4 ) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ( # 1862 "../../../model_brush.c" "*glassmirror" # 1862 "../../../model_brush.c" 3 4 ); int __result = (((const unsigned char *) (const char *) ( # 1862 "../../../model_brush.c" tx->name # 1862 "../../../model_brush.c" 3 4 ))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 1862 "../../../model_brush.c" tx->name # 1862 "../../../model_brush.c" 3 4 ))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 1862 "../../../model_brush.c" tx->name # 1862 "../../../model_brush.c" 3 4 ))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( # 1862 "../../../model_brush.c" tx->name # 1862 "../../../model_brush.c" 3 4 ))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ( # 1862 "../../../model_brush.c" "*glassmirror" # 1862 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 1862 "../../../model_brush.c" "*glassmirror" # 1862 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 1862 "../../../model_brush.c" "*glassmirror" # 1862 "../../../model_brush.c" 3 4 ) == 1) && (__s2_len = __builtin_strlen ( # 1862 "../../../model_brush.c" "*glassmirror" # 1862 "../../../model_brush.c" 3 4 ), __s2_len < 4) ? (__builtin_constant_p ( # 1862 "../../../model_brush.c" tx->name # 1862 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 1862 "../../../model_brush.c" tx->name # 1862 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 1862 "../../../model_brush.c" tx->name # 1862 "../../../model_brush.c" 3 4 ) == 1) ? __builtin_strcmp ( # 1862 "../../../model_brush.c" tx->name # 1862 "../../../model_brush.c" 3 4 , # 1862 "../../../model_brush.c" "*glassmirror" # 1862 "../../../model_brush.c" 3 4 ) : (- (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ( # 1862 "../../../model_brush.c" tx->name # 1862 "../../../model_brush.c" 3 4 ); int __result = (((const unsigned char *) (const char *) ( # 1862 "../../../model_brush.c" "*glassmirror" # 1862 "../../../model_brush.c" 3 4 ))[0] - __s2[0]); if (__s2_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 1862 "../../../model_brush.c" "*glassmirror" # 1862 "../../../model_brush.c" 3 4 ))[1] - __s2[1]); if (__s2_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 1862 "../../../model_brush.c" "*glassmirror" # 1862 "../../../model_brush.c" 3 4 ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( # 1862 "../../../model_brush.c" "*glassmirror" # 1862 "../../../model_brush.c" 3 4 ))[3] - __s2[3]); } } __result; })))) : __builtin_strcmp ( # 1862 "../../../model_brush.c" tx->name # 1862 "../../../model_brush.c" 3 4 , # 1862 "../../../model_brush.c" "*glassmirror" # 1862 "../../../model_brush.c" 3 4 )))); }) : strncmp ( # 1862 "../../../model_brush.c" tx->name # 1862 "../../../model_brush.c" 3 4 , # 1862 "../../../model_brush.c" "*glassmirror" # 1862 "../../../model_brush.c" 3 4 , # 1862 "../../../model_brush.c" 12 # 1862 "../../../model_brush.c" 3 4 ))) # 1862 "../../../model_brush.c" ) tx->skinframes[0] = R_SkinFrame_LoadInternalBGRA(tx->name, 0x00000002 | 0x00000001, zerotrans, 1, 1, false); else if (! # 1864 "../../../model_brush.c" 3 4 (__extension__ (__builtin_constant_p ( # 1864 "../../../model_brush.c" 6 # 1864 "../../../model_brush.c" 3 4 ) && ((__builtin_constant_p ( # 1864 "../../../model_brush.c" tx->name # 1864 "../../../model_brush.c" 3 4 ) && strlen ( # 1864 "../../../model_brush.c" tx->name # 1864 "../../../model_brush.c" 3 4 ) < ((size_t) ( # 1864 "../../../model_brush.c" 6 # 1864 "../../../model_brush.c" 3 4 ))) || (__builtin_constant_p ( # 1864 "../../../model_brush.c" "mirror" # 1864 "../../../model_brush.c" 3 4 ) && strlen ( # 1864 "../../../model_brush.c" "mirror" # 1864 "../../../model_brush.c" 3 4 ) < ((size_t) ( # 1864 "../../../model_brush.c" 6 # 1864 "../../../model_brush.c" 3 4 )))) ? __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( # 1864 "../../../model_brush.c" tx->name # 1864 "../../../model_brush.c" 3 4 ) && __builtin_constant_p ( # 1864 "../../../model_brush.c" "mirror" # 1864 "../../../model_brush.c" 3 4 ) && (__s1_len = __builtin_strlen ( # 1864 "../../../model_brush.c" tx->name # 1864 "../../../model_brush.c" 3 4 ), __s2_len = __builtin_strlen ( # 1864 "../../../model_brush.c" "mirror" # 1864 "../../../model_brush.c" 3 4 ), (!((size_t)(const void *)(( # 1864 "../../../model_brush.c" tx->name # 1864 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 1864 "../../../model_brush.c" tx->name # 1864 "../../../model_brush.c" 3 4 ) == 1) || __s1_len >= 4) && (!((size_t)(const void *)(( # 1864 "../../../model_brush.c" "mirror" # 1864 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 1864 "../../../model_brush.c" "mirror" # 1864 "../../../model_brush.c" 3 4 ) == 1) || __s2_len >= 4)) ? __builtin_strcmp ( # 1864 "../../../model_brush.c" tx->name # 1864 "../../../model_brush.c" 3 4 , # 1864 "../../../model_brush.c" "mirror" # 1864 "../../../model_brush.c" 3 4 ) : (__builtin_constant_p ( # 1864 "../../../model_brush.c" tx->name # 1864 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 1864 "../../../model_brush.c" tx->name # 1864 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 1864 "../../../model_brush.c" tx->name # 1864 "../../../model_brush.c" 3 4 ) == 1) && (__s1_len = __builtin_strlen ( # 1864 "../../../model_brush.c" tx->name # 1864 "../../../model_brush.c" 3 4 ), __s1_len < 4) ? (__builtin_constant_p ( # 1864 "../../../model_brush.c" "mirror" # 1864 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 1864 "../../../model_brush.c" "mirror" # 1864 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 1864 "../../../model_brush.c" "mirror" # 1864 "../../../model_brush.c" 3 4 ) == 1) ? __builtin_strcmp ( # 1864 "../../../model_brush.c" tx->name # 1864 "../../../model_brush.c" 3 4 , # 1864 "../../../model_brush.c" "mirror" # 1864 "../../../model_brush.c" 3 4 ) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ( # 1864 "../../../model_brush.c" "mirror" # 1864 "../../../model_brush.c" 3 4 ); int __result = (((const unsigned char *) (const char *) ( # 1864 "../../../model_brush.c" tx->name # 1864 "../../../model_brush.c" 3 4 ))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 1864 "../../../model_brush.c" tx->name # 1864 "../../../model_brush.c" 3 4 ))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 1864 "../../../model_brush.c" tx->name # 1864 "../../../model_brush.c" 3 4 ))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( # 1864 "../../../model_brush.c" tx->name # 1864 "../../../model_brush.c" 3 4 ))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ( # 1864 "../../../model_brush.c" "mirror" # 1864 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 1864 "../../../model_brush.c" "mirror" # 1864 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 1864 "../../../model_brush.c" "mirror" # 1864 "../../../model_brush.c" 3 4 ) == 1) && (__s2_len = __builtin_strlen ( # 1864 "../../../model_brush.c" "mirror" # 1864 "../../../model_brush.c" 3 4 ), __s2_len < 4) ? (__builtin_constant_p ( # 1864 "../../../model_brush.c" tx->name # 1864 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 1864 "../../../model_brush.c" tx->name # 1864 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 1864 "../../../model_brush.c" tx->name # 1864 "../../../model_brush.c" 3 4 ) == 1) ? __builtin_strcmp ( # 1864 "../../../model_brush.c" tx->name # 1864 "../../../model_brush.c" 3 4 , # 1864 "../../../model_brush.c" "mirror" # 1864 "../../../model_brush.c" 3 4 ) : (- (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ( # 1864 "../../../model_brush.c" tx->name # 1864 "../../../model_brush.c" 3 4 ); int __result = (((const unsigned char *) (const char *) ( # 1864 "../../../model_brush.c" "mirror" # 1864 "../../../model_brush.c" 3 4 ))[0] - __s2[0]); if (__s2_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 1864 "../../../model_brush.c" "mirror" # 1864 "../../../model_brush.c" 3 4 ))[1] - __s2[1]); if (__s2_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 1864 "../../../model_brush.c" "mirror" # 1864 "../../../model_brush.c" 3 4 ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( # 1864 "../../../model_brush.c" "mirror" # 1864 "../../../model_brush.c" 3 4 ))[3] - __s2[3]); } } __result; })))) : __builtin_strcmp ( # 1864 "../../../model_brush.c" tx->name # 1864 "../../../model_brush.c" 3 4 , # 1864 "../../../model_brush.c" "mirror" # 1864 "../../../model_brush.c" 3 4 )))); }) : strncmp ( # 1864 "../../../model_brush.c" tx->name # 1864 "../../../model_brush.c" 3 4 , # 1864 "../../../model_brush.c" "mirror" # 1864 "../../../model_brush.c" 3 4 , # 1864 "../../../model_brush.c" 6 # 1864 "../../../model_brush.c" 3 4 ))) # 1864 "../../../model_brush.c" ) tx->skinframes[0] = R_SkinFrame_LoadInternalBGRA(tx->name, 0, zeroopaque, 1, 1, false); } tx->basematerialflags = 64; if (tx->name[0] == '*') { if (! # 1872 "../../../model_brush.c" 3 4 (__extension__ (__builtin_constant_p ( # 1872 "../../../model_brush.c" 12 # 1872 "../../../model_brush.c" 3 4 ) && ((__builtin_constant_p ( # 1872 "../../../model_brush.c" tx->name # 1872 "../../../model_brush.c" 3 4 ) && strlen ( # 1872 "../../../model_brush.c" tx->name # 1872 "../../../model_brush.c" 3 4 ) < ((size_t) ( # 1872 "../../../model_brush.c" 12 # 1872 "../../../model_brush.c" 3 4 ))) || (__builtin_constant_p ( # 1872 "../../../model_brush.c" "*glassmirror" # 1872 "../../../model_brush.c" 3 4 ) && strlen ( # 1872 "../../../model_brush.c" "*glassmirror" # 1872 "../../../model_brush.c" 3 4 ) < ((size_t) ( # 1872 "../../../model_brush.c" 12 # 1872 "../../../model_brush.c" 3 4 )))) ? __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( # 1872 "../../../model_brush.c" tx->name # 1872 "../../../model_brush.c" 3 4 ) && __builtin_constant_p ( # 1872 "../../../model_brush.c" "*glassmirror" # 1872 "../../../model_brush.c" 3 4 ) && (__s1_len = __builtin_strlen ( # 1872 "../../../model_brush.c" tx->name # 1872 "../../../model_brush.c" 3 4 ), __s2_len = __builtin_strlen ( # 1872 "../../../model_brush.c" "*glassmirror" # 1872 "../../../model_brush.c" 3 4 ), (!((size_t)(const void *)(( # 1872 "../../../model_brush.c" tx->name # 1872 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 1872 "../../../model_brush.c" tx->name # 1872 "../../../model_brush.c" 3 4 ) == 1) || __s1_len >= 4) && (!((size_t)(const void *)(( # 1872 "../../../model_brush.c" "*glassmirror" # 1872 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 1872 "../../../model_brush.c" "*glassmirror" # 1872 "../../../model_brush.c" 3 4 ) == 1) || __s2_len >= 4)) ? __builtin_strcmp ( # 1872 "../../../model_brush.c" tx->name # 1872 "../../../model_brush.c" 3 4 , # 1872 "../../../model_brush.c" "*glassmirror" # 1872 "../../../model_brush.c" 3 4 ) : (__builtin_constant_p ( # 1872 "../../../model_brush.c" tx->name # 1872 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 1872 "../../../model_brush.c" tx->name # 1872 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 1872 "../../../model_brush.c" tx->name # 1872 "../../../model_brush.c" 3 4 ) == 1) && (__s1_len = __builtin_strlen ( # 1872 "../../../model_brush.c" tx->name # 1872 "../../../model_brush.c" 3 4 ), __s1_len < 4) ? (__builtin_constant_p ( # 1872 "../../../model_brush.c" "*glassmirror" # 1872 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 1872 "../../../model_brush.c" "*glassmirror" # 1872 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 1872 "../../../model_brush.c" "*glassmirror" # 1872 "../../../model_brush.c" 3 4 ) == 1) ? __builtin_strcmp ( # 1872 "../../../model_brush.c" tx->name # 1872 "../../../model_brush.c" 3 4 , # 1872 "../../../model_brush.c" "*glassmirror" # 1872 "../../../model_brush.c" 3 4 ) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ( # 1872 "../../../model_brush.c" "*glassmirror" # 1872 "../../../model_brush.c" 3 4 ); int __result = (((const unsigned char *) (const char *) ( # 1872 "../../../model_brush.c" tx->name # 1872 "../../../model_brush.c" 3 4 ))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 1872 "../../../model_brush.c" tx->name # 1872 "../../../model_brush.c" 3 4 ))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 1872 "../../../model_brush.c" tx->name # 1872 "../../../model_brush.c" 3 4 ))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( # 1872 "../../../model_brush.c" tx->name # 1872 "../../../model_brush.c" 3 4 ))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ( # 1872 "../../../model_brush.c" "*glassmirror" # 1872 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 1872 "../../../model_brush.c" "*glassmirror" # 1872 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 1872 "../../../model_brush.c" "*glassmirror" # 1872 "../../../model_brush.c" 3 4 ) == 1) && (__s2_len = __builtin_strlen ( # 1872 "../../../model_brush.c" "*glassmirror" # 1872 "../../../model_brush.c" 3 4 ), __s2_len < 4) ? (__builtin_constant_p ( # 1872 "../../../model_brush.c" tx->name # 1872 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 1872 "../../../model_brush.c" tx->name # 1872 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 1872 "../../../model_brush.c" tx->name # 1872 "../../../model_brush.c" 3 4 ) == 1) ? __builtin_strcmp ( # 1872 "../../../model_brush.c" tx->name # 1872 "../../../model_brush.c" 3 4 , # 1872 "../../../model_brush.c" "*glassmirror" # 1872 "../../../model_brush.c" 3 4 ) : (- (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ( # 1872 "../../../model_brush.c" tx->name # 1872 "../../../model_brush.c" 3 4 ); int __result = (((const unsigned char *) (const char *) ( # 1872 "../../../model_brush.c" "*glassmirror" # 1872 "../../../model_brush.c" 3 4 ))[0] - __s2[0]); if (__s2_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 1872 "../../../model_brush.c" "*glassmirror" # 1872 "../../../model_brush.c" 3 4 ))[1] - __s2[1]); if (__s2_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 1872 "../../../model_brush.c" "*glassmirror" # 1872 "../../../model_brush.c" 3 4 ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( # 1872 "../../../model_brush.c" "*glassmirror" # 1872 "../../../model_brush.c" 3 4 ))[3] - __s2[3]); } } __result; })))) : __builtin_strcmp ( # 1872 "../../../model_brush.c" tx->name # 1872 "../../../model_brush.c" 3 4 , # 1872 "../../../model_brush.c" "*glassmirror" # 1872 "../../../model_brush.c" 3 4 )))); }) : strncmp ( # 1872 "../../../model_brush.c" tx->name # 1872 "../../../model_brush.c" 3 4 , # 1872 "../../../model_brush.c" "*glassmirror" # 1872 "../../../model_brush.c" 3 4 , # 1872 "../../../model_brush.c" 12 # 1872 "../../../model_brush.c" 3 4 ))) # 1872 "../../../model_brush.c" ) tx->basematerialflags |= 16384 | 4 | 4096 | 1048576; else if (! # 1874 "../../../model_brush.c" 3 4 (__extension__ (__builtin_constant_p ( # 1874 "../../../model_brush.c" 5 # 1874 "../../../model_brush.c" 3 4 ) && ((__builtin_constant_p ( # 1874 "../../../model_brush.c" tx->name # 1874 "../../../model_brush.c" 3 4 ) && strlen ( # 1874 "../../../model_brush.c" tx->name # 1874 "../../../model_brush.c" 3 4 ) < ((size_t) ( # 1874 "../../../model_brush.c" 5 # 1874 "../../../model_brush.c" 3 4 ))) || (__builtin_constant_p ( # 1874 "../../../model_brush.c" "*lava" # 1874 "../../../model_brush.c" 3 4 ) && strlen ( # 1874 "../../../model_brush.c" "*lava" # 1874 "../../../model_brush.c" 3 4 ) < ((size_t) ( # 1874 "../../../model_brush.c" 5 # 1874 "../../../model_brush.c" 3 4 )))) ? __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( # 1874 "../../../model_brush.c" tx->name # 1874 "../../../model_brush.c" 3 4 ) && __builtin_constant_p ( # 1874 "../../../model_brush.c" "*lava" # 1874 "../../../model_brush.c" 3 4 ) && (__s1_len = __builtin_strlen ( # 1874 "../../../model_brush.c" tx->name # 1874 "../../../model_brush.c" 3 4 ), __s2_len = __builtin_strlen ( # 1874 "../../../model_brush.c" "*lava" # 1874 "../../../model_brush.c" 3 4 ), (!((size_t)(const void *)(( # 1874 "../../../model_brush.c" tx->name # 1874 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 1874 "../../../model_brush.c" tx->name # 1874 "../../../model_brush.c" 3 4 ) == 1) || __s1_len >= 4) && (!((size_t)(const void *)(( # 1874 "../../../model_brush.c" "*lava" # 1874 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 1874 "../../../model_brush.c" "*lava" # 1874 "../../../model_brush.c" 3 4 ) == 1) || __s2_len >= 4)) ? __builtin_strcmp ( # 1874 "../../../model_brush.c" tx->name # 1874 "../../../model_brush.c" 3 4 , # 1874 "../../../model_brush.c" "*lava" # 1874 "../../../model_brush.c" 3 4 ) : (__builtin_constant_p ( # 1874 "../../../model_brush.c" tx->name # 1874 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 1874 "../../../model_brush.c" tx->name # 1874 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 1874 "../../../model_brush.c" tx->name # 1874 "../../../model_brush.c" 3 4 ) == 1) && (__s1_len = __builtin_strlen ( # 1874 "../../../model_brush.c" tx->name # 1874 "../../../model_brush.c" 3 4 ), __s1_len < 4) ? (__builtin_constant_p ( # 1874 "../../../model_brush.c" "*lava" # 1874 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 1874 "../../../model_brush.c" "*lava" # 1874 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 1874 "../../../model_brush.c" "*lava" # 1874 "../../../model_brush.c" 3 4 ) == 1) ? __builtin_strcmp ( # 1874 "../../../model_brush.c" tx->name # 1874 "../../../model_brush.c" 3 4 , # 1874 "../../../model_brush.c" "*lava" # 1874 "../../../model_brush.c" 3 4 ) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ( # 1874 "../../../model_brush.c" "*lava" # 1874 "../../../model_brush.c" 3 4 ); int __result = (((const unsigned char *) (const char *) ( # 1874 "../../../model_brush.c" tx->name # 1874 "../../../model_brush.c" 3 4 ))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 1874 "../../../model_brush.c" tx->name # 1874 "../../../model_brush.c" 3 4 ))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 1874 "../../../model_brush.c" tx->name # 1874 "../../../model_brush.c" 3 4 ))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( # 1874 "../../../model_brush.c" tx->name # 1874 "../../../model_brush.c" 3 4 ))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ( # 1874 "../../../model_brush.c" "*lava" # 1874 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 1874 "../../../model_brush.c" "*lava" # 1874 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 1874 "../../../model_brush.c" "*lava" # 1874 "../../../model_brush.c" 3 4 ) == 1) && (__s2_len = __builtin_strlen ( # 1874 "../../../model_brush.c" "*lava" # 1874 "../../../model_brush.c" 3 4 ), __s2_len < 4) ? (__builtin_constant_p ( # 1874 "../../../model_brush.c" tx->name # 1874 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 1874 "../../../model_brush.c" tx->name # 1874 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 1874 "../../../model_brush.c" tx->name # 1874 "../../../model_brush.c" 3 4 ) == 1) ? __builtin_strcmp ( # 1874 "../../../model_brush.c" tx->name # 1874 "../../../model_brush.c" 3 4 , # 1874 "../../../model_brush.c" "*lava" # 1874 "../../../model_brush.c" 3 4 ) : (- (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ( # 1874 "../../../model_brush.c" tx->name # 1874 "../../../model_brush.c" 3 4 ); int __result = (((const unsigned char *) (const char *) ( # 1874 "../../../model_brush.c" "*lava" # 1874 "../../../model_brush.c" 3 4 ))[0] - __s2[0]); if (__s2_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 1874 "../../../model_brush.c" "*lava" # 1874 "../../../model_brush.c" 3 4 ))[1] - __s2[1]); if (__s2_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 1874 "../../../model_brush.c" "*lava" # 1874 "../../../model_brush.c" 3 4 ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( # 1874 "../../../model_brush.c" "*lava" # 1874 "../../../model_brush.c" 3 4 ))[3] - __s2[3]); } } __result; })))) : __builtin_strcmp ( # 1874 "../../../model_brush.c" tx->name # 1874 "../../../model_brush.c" 3 4 , # 1874 "../../../model_brush.c" "*lava" # 1874 "../../../model_brush.c" 3 4 )))); }) : strncmp ( # 1874 "../../../model_brush.c" tx->name # 1874 "../../../model_brush.c" 3 4 , # 1874 "../../../model_brush.c" "*lava" # 1874 "../../../model_brush.c" 3 4 , # 1874 "../../../model_brush.c" 5 # 1874 "../../../model_brush.c" 3 4 ))) # 1875 "../../../model_brush.c" || ! # 1875 "../../../model_brush.c" 3 4 (__extension__ (__builtin_constant_p ( # 1875 "../../../model_brush.c" 9 # 1875 "../../../model_brush.c" 3 4 ) && ((__builtin_constant_p ( # 1875 "../../../model_brush.c" tx->name # 1875 "../../../model_brush.c" 3 4 ) && strlen ( # 1875 "../../../model_brush.c" tx->name # 1875 "../../../model_brush.c" 3 4 ) < ((size_t) ( # 1875 "../../../model_brush.c" 9 # 1875 "../../../model_brush.c" 3 4 ))) || (__builtin_constant_p ( # 1875 "../../../model_brush.c" "*teleport" # 1875 "../../../model_brush.c" 3 4 ) && strlen ( # 1875 "../../../model_brush.c" "*teleport" # 1875 "../../../model_brush.c" 3 4 ) < ((size_t) ( # 1875 "../../../model_brush.c" 9 # 1875 "../../../model_brush.c" 3 4 )))) ? __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( # 1875 "../../../model_brush.c" tx->name # 1875 "../../../model_brush.c" 3 4 ) && __builtin_constant_p ( # 1875 "../../../model_brush.c" "*teleport" # 1875 "../../../model_brush.c" 3 4 ) && (__s1_len = __builtin_strlen ( # 1875 "../../../model_brush.c" tx->name # 1875 "../../../model_brush.c" 3 4 ), __s2_len = __builtin_strlen ( # 1875 "../../../model_brush.c" "*teleport" # 1875 "../../../model_brush.c" 3 4 ), (!((size_t)(const void *)(( # 1875 "../../../model_brush.c" tx->name # 1875 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 1875 "../../../model_brush.c" tx->name # 1875 "../../../model_brush.c" 3 4 ) == 1) || __s1_len >= 4) && (!((size_t)(const void *)(( # 1875 "../../../model_brush.c" "*teleport" # 1875 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 1875 "../../../model_brush.c" "*teleport" # 1875 "../../../model_brush.c" 3 4 ) == 1) || __s2_len >= 4)) ? __builtin_strcmp ( # 1875 "../../../model_brush.c" tx->name # 1875 "../../../model_brush.c" 3 4 , # 1875 "../../../model_brush.c" "*teleport" # 1875 "../../../model_brush.c" 3 4 ) : (__builtin_constant_p ( # 1875 "../../../model_brush.c" tx->name # 1875 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 1875 "../../../model_brush.c" tx->name # 1875 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 1875 "../../../model_brush.c" tx->name # 1875 "../../../model_brush.c" 3 4 ) == 1) && (__s1_len = __builtin_strlen ( # 1875 "../../../model_brush.c" tx->name # 1875 "../../../model_brush.c" 3 4 ), __s1_len < 4) ? (__builtin_constant_p ( # 1875 "../../../model_brush.c" "*teleport" # 1875 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 1875 "../../../model_brush.c" "*teleport" # 1875 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 1875 "../../../model_brush.c" "*teleport" # 1875 "../../../model_brush.c" 3 4 ) == 1) ? __builtin_strcmp ( # 1875 "../../../model_brush.c" tx->name # 1875 "../../../model_brush.c" 3 4 , # 1875 "../../../model_brush.c" "*teleport" # 1875 "../../../model_brush.c" 3 4 ) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ( # 1875 "../../../model_brush.c" "*teleport" # 1875 "../../../model_brush.c" 3 4 ); int __result = (((const unsigned char *) (const char *) ( # 1875 "../../../model_brush.c" tx->name # 1875 "../../../model_brush.c" 3 4 ))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 1875 "../../../model_brush.c" tx->name # 1875 "../../../model_brush.c" 3 4 ))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 1875 "../../../model_brush.c" tx->name # 1875 "../../../model_brush.c" 3 4 ))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( # 1875 "../../../model_brush.c" tx->name # 1875 "../../../model_brush.c" 3 4 ))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ( # 1875 "../../../model_brush.c" "*teleport" # 1875 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 1875 "../../../model_brush.c" "*teleport" # 1875 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 1875 "../../../model_brush.c" "*teleport" # 1875 "../../../model_brush.c" 3 4 ) == 1) && (__s2_len = __builtin_strlen ( # 1875 "../../../model_brush.c" "*teleport" # 1875 "../../../model_brush.c" 3 4 ), __s2_len < 4) ? (__builtin_constant_p ( # 1875 "../../../model_brush.c" tx->name # 1875 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 1875 "../../../model_brush.c" tx->name # 1875 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 1875 "../../../model_brush.c" tx->name # 1875 "../../../model_brush.c" 3 4 ) == 1) ? __builtin_strcmp ( # 1875 "../../../model_brush.c" tx->name # 1875 "../../../model_brush.c" 3 4 , # 1875 "../../../model_brush.c" "*teleport" # 1875 "../../../model_brush.c" 3 4 ) : (- (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ( # 1875 "../../../model_brush.c" tx->name # 1875 "../../../model_brush.c" 3 4 ); int __result = (((const unsigned char *) (const char *) ( # 1875 "../../../model_brush.c" "*teleport" # 1875 "../../../model_brush.c" 3 4 ))[0] - __s2[0]); if (__s2_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 1875 "../../../model_brush.c" "*teleport" # 1875 "../../../model_brush.c" 3 4 ))[1] - __s2[1]); if (__s2_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 1875 "../../../model_brush.c" "*teleport" # 1875 "../../../model_brush.c" 3 4 ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( # 1875 "../../../model_brush.c" "*teleport" # 1875 "../../../model_brush.c" 3 4 ))[3] - __s2[3]); } } __result; })))) : __builtin_strcmp ( # 1875 "../../../model_brush.c" tx->name # 1875 "../../../model_brush.c" 3 4 , # 1875 "../../../model_brush.c" "*teleport" # 1875 "../../../model_brush.c" 3 4 )))); }) : strncmp ( # 1875 "../../../model_brush.c" tx->name # 1875 "../../../model_brush.c" 3 4 , # 1875 "../../../model_brush.c" "*teleport" # 1875 "../../../model_brush.c" 3 4 , # 1875 "../../../model_brush.c" 9 # 1875 "../../../model_brush.c" 3 4 ))) # 1876 "../../../model_brush.c" || ! # 1876 "../../../model_brush.c" 3 4 (__extension__ (__builtin_constant_p ( # 1876 "../../../model_brush.c" 5 # 1876 "../../../model_brush.c" 3 4 ) && ((__builtin_constant_p ( # 1876 "../../../model_brush.c" tx->name # 1876 "../../../model_brush.c" 3 4 ) && strlen ( # 1876 "../../../model_brush.c" tx->name # 1876 "../../../model_brush.c" 3 4 ) < ((size_t) ( # 1876 "../../../model_brush.c" 5 # 1876 "../../../model_brush.c" 3 4 ))) || (__builtin_constant_p ( # 1876 "../../../model_brush.c" "*rift" # 1876 "../../../model_brush.c" 3 4 ) && strlen ( # 1876 "../../../model_brush.c" "*rift" # 1876 "../../../model_brush.c" 3 4 ) < ((size_t) ( # 1876 "../../../model_brush.c" 5 # 1876 "../../../model_brush.c" 3 4 )))) ? __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( # 1876 "../../../model_brush.c" tx->name # 1876 "../../../model_brush.c" 3 4 ) && __builtin_constant_p ( # 1876 "../../../model_brush.c" "*rift" # 1876 "../../../model_brush.c" 3 4 ) && (__s1_len = __builtin_strlen ( # 1876 "../../../model_brush.c" tx->name # 1876 "../../../model_brush.c" 3 4 ), __s2_len = __builtin_strlen ( # 1876 "../../../model_brush.c" "*rift" # 1876 "../../../model_brush.c" 3 4 ), (!((size_t)(const void *)(( # 1876 "../../../model_brush.c" tx->name # 1876 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 1876 "../../../model_brush.c" tx->name # 1876 "../../../model_brush.c" 3 4 ) == 1) || __s1_len >= 4) && (!((size_t)(const void *)(( # 1876 "../../../model_brush.c" "*rift" # 1876 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 1876 "../../../model_brush.c" "*rift" # 1876 "../../../model_brush.c" 3 4 ) == 1) || __s2_len >= 4)) ? __builtin_strcmp ( # 1876 "../../../model_brush.c" tx->name # 1876 "../../../model_brush.c" 3 4 , # 1876 "../../../model_brush.c" "*rift" # 1876 "../../../model_brush.c" 3 4 ) : (__builtin_constant_p ( # 1876 "../../../model_brush.c" tx->name # 1876 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 1876 "../../../model_brush.c" tx->name # 1876 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 1876 "../../../model_brush.c" tx->name # 1876 "../../../model_brush.c" 3 4 ) == 1) && (__s1_len = __builtin_strlen ( # 1876 "../../../model_brush.c" tx->name # 1876 "../../../model_brush.c" 3 4 ), __s1_len < 4) ? (__builtin_constant_p ( # 1876 "../../../model_brush.c" "*rift" # 1876 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 1876 "../../../model_brush.c" "*rift" # 1876 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 1876 "../../../model_brush.c" "*rift" # 1876 "../../../model_brush.c" 3 4 ) == 1) ? __builtin_strcmp ( # 1876 "../../../model_brush.c" tx->name # 1876 "../../../model_brush.c" 3 4 , # 1876 "../../../model_brush.c" "*rift" # 1876 "../../../model_brush.c" 3 4 ) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ( # 1876 "../../../model_brush.c" "*rift" # 1876 "../../../model_brush.c" 3 4 ); int __result = (((const unsigned char *) (const char *) ( # 1876 "../../../model_brush.c" tx->name # 1876 "../../../model_brush.c" 3 4 ))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 1876 "../../../model_brush.c" tx->name # 1876 "../../../model_brush.c" 3 4 ))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 1876 "../../../model_brush.c" tx->name # 1876 "../../../model_brush.c" 3 4 ))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( # 1876 "../../../model_brush.c" tx->name # 1876 "../../../model_brush.c" 3 4 ))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ( # 1876 "../../../model_brush.c" "*rift" # 1876 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 1876 "../../../model_brush.c" "*rift" # 1876 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 1876 "../../../model_brush.c" "*rift" # 1876 "../../../model_brush.c" 3 4 ) == 1) && (__s2_len = __builtin_strlen ( # 1876 "../../../model_brush.c" "*rift" # 1876 "../../../model_brush.c" 3 4 ), __s2_len < 4) ? (__builtin_constant_p ( # 1876 "../../../model_brush.c" tx->name # 1876 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 1876 "../../../model_brush.c" tx->name # 1876 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 1876 "../../../model_brush.c" tx->name # 1876 "../../../model_brush.c" 3 4 ) == 1) ? __builtin_strcmp ( # 1876 "../../../model_brush.c" tx->name # 1876 "../../../model_brush.c" 3 4 , # 1876 "../../../model_brush.c" "*rift" # 1876 "../../../model_brush.c" 3 4 ) : (- (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ( # 1876 "../../../model_brush.c" tx->name # 1876 "../../../model_brush.c" 3 4 ); int __result = (((const unsigned char *) (const char *) ( # 1876 "../../../model_brush.c" "*rift" # 1876 "../../../model_brush.c" 3 4 ))[0] - __s2[0]); if (__s2_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 1876 "../../../model_brush.c" "*rift" # 1876 "../../../model_brush.c" 3 4 ))[1] - __s2[1]); if (__s2_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 1876 "../../../model_brush.c" "*rift" # 1876 "../../../model_brush.c" 3 4 ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( # 1876 "../../../model_brush.c" "*rift" # 1876 "../../../model_brush.c" 3 4 ))[3] - __s2[3]); } } __result; })))) : __builtin_strcmp ( # 1876 "../../../model_brush.c" tx->name # 1876 "../../../model_brush.c" 3 4 , # 1876 "../../../model_brush.c" "*rift" # 1876 "../../../model_brush.c" 3 4 )))); }) : strncmp ( # 1876 "../../../model_brush.c" tx->name # 1876 "../../../model_brush.c" 3 4 , # 1876 "../../../model_brush.c" "*rift" # 1876 "../../../model_brush.c" 3 4 , # 1876 "../../../model_brush.c" 5 # 1876 "../../../model_brush.c" 3 4 ))) # 1876 "../../../model_brush.c" ) tx->basematerialflags |= 256 | 1024 | 16384; else tx->basematerialflags |= 256 | 1024 | 16384 | 16 | 262144; if (tx->skinframes[0] && tx->skinframes[0]->hasalpha) tx->basematerialflags |= 2 | 4096 | 16384; } else if (! # 1883 "../../../model_brush.c" 3 4 (__extension__ (__builtin_constant_p ( # 1883 "../../../model_brush.c" 6 # 1883 "../../../model_brush.c" 3 4 ) && ((__builtin_constant_p ( # 1883 "../../../model_brush.c" tx->name # 1883 "../../../model_brush.c" 3 4 ) && strlen ( # 1883 "../../../model_brush.c" tx->name # 1883 "../../../model_brush.c" 3 4 ) < ((size_t) ( # 1883 "../../../model_brush.c" 6 # 1883 "../../../model_brush.c" 3 4 ))) || (__builtin_constant_p ( # 1883 "../../../model_brush.c" "mirror" # 1883 "../../../model_brush.c" 3 4 ) && strlen ( # 1883 "../../../model_brush.c" "mirror" # 1883 "../../../model_brush.c" 3 4 ) < ((size_t) ( # 1883 "../../../model_brush.c" 6 # 1883 "../../../model_brush.c" 3 4 )))) ? __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( # 1883 "../../../model_brush.c" tx->name # 1883 "../../../model_brush.c" 3 4 ) && __builtin_constant_p ( # 1883 "../../../model_brush.c" "mirror" # 1883 "../../../model_brush.c" 3 4 ) && (__s1_len = __builtin_strlen ( # 1883 "../../../model_brush.c" tx->name # 1883 "../../../model_brush.c" 3 4 ), __s2_len = __builtin_strlen ( # 1883 "../../../model_brush.c" "mirror" # 1883 "../../../model_brush.c" 3 4 ), (!((size_t)(const void *)(( # 1883 "../../../model_brush.c" tx->name # 1883 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 1883 "../../../model_brush.c" tx->name # 1883 "../../../model_brush.c" 3 4 ) == 1) || __s1_len >= 4) && (!((size_t)(const void *)(( # 1883 "../../../model_brush.c" "mirror" # 1883 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 1883 "../../../model_brush.c" "mirror" # 1883 "../../../model_brush.c" 3 4 ) == 1) || __s2_len >= 4)) ? __builtin_strcmp ( # 1883 "../../../model_brush.c" tx->name # 1883 "../../../model_brush.c" 3 4 , # 1883 "../../../model_brush.c" "mirror" # 1883 "../../../model_brush.c" 3 4 ) : (__builtin_constant_p ( # 1883 "../../../model_brush.c" tx->name # 1883 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 1883 "../../../model_brush.c" tx->name # 1883 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 1883 "../../../model_brush.c" tx->name # 1883 "../../../model_brush.c" 3 4 ) == 1) && (__s1_len = __builtin_strlen ( # 1883 "../../../model_brush.c" tx->name # 1883 "../../../model_brush.c" 3 4 ), __s1_len < 4) ? (__builtin_constant_p ( # 1883 "../../../model_brush.c" "mirror" # 1883 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 1883 "../../../model_brush.c" "mirror" # 1883 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 1883 "../../../model_brush.c" "mirror" # 1883 "../../../model_brush.c" 3 4 ) == 1) ? __builtin_strcmp ( # 1883 "../../../model_brush.c" tx->name # 1883 "../../../model_brush.c" 3 4 , # 1883 "../../../model_brush.c" "mirror" # 1883 "../../../model_brush.c" 3 4 ) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ( # 1883 "../../../model_brush.c" "mirror" # 1883 "../../../model_brush.c" 3 4 ); int __result = (((const unsigned char *) (const char *) ( # 1883 "../../../model_brush.c" tx->name # 1883 "../../../model_brush.c" 3 4 ))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 1883 "../../../model_brush.c" tx->name # 1883 "../../../model_brush.c" 3 4 ))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 1883 "../../../model_brush.c" tx->name # 1883 "../../../model_brush.c" 3 4 ))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( # 1883 "../../../model_brush.c" tx->name # 1883 "../../../model_brush.c" 3 4 ))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ( # 1883 "../../../model_brush.c" "mirror" # 1883 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 1883 "../../../model_brush.c" "mirror" # 1883 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 1883 "../../../model_brush.c" "mirror" # 1883 "../../../model_brush.c" 3 4 ) == 1) && (__s2_len = __builtin_strlen ( # 1883 "../../../model_brush.c" "mirror" # 1883 "../../../model_brush.c" 3 4 ), __s2_len < 4) ? (__builtin_constant_p ( # 1883 "../../../model_brush.c" tx->name # 1883 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 1883 "../../../model_brush.c" tx->name # 1883 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 1883 "../../../model_brush.c" tx->name # 1883 "../../../model_brush.c" 3 4 ) == 1) ? __builtin_strcmp ( # 1883 "../../../model_brush.c" tx->name # 1883 "../../../model_brush.c" 3 4 , # 1883 "../../../model_brush.c" "mirror" # 1883 "../../../model_brush.c" 3 4 ) : (- (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ( # 1883 "../../../model_brush.c" tx->name # 1883 "../../../model_brush.c" 3 4 ); int __result = (((const unsigned char *) (const char *) ( # 1883 "../../../model_brush.c" "mirror" # 1883 "../../../model_brush.c" 3 4 ))[0] - __s2[0]); if (__s2_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 1883 "../../../model_brush.c" "mirror" # 1883 "../../../model_brush.c" 3 4 ))[1] - __s2[1]); if (__s2_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 1883 "../../../model_brush.c" "mirror" # 1883 "../../../model_brush.c" 3 4 ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( # 1883 "../../../model_brush.c" "mirror" # 1883 "../../../model_brush.c" 3 4 ))[3] - __s2[3]); } } __result; })))) : __builtin_strcmp ( # 1883 "../../../model_brush.c" tx->name # 1883 "../../../model_brush.c" 3 4 , # 1883 "../../../model_brush.c" "mirror" # 1883 "../../../model_brush.c" 3 4 )))); }) : strncmp ( # 1883 "../../../model_brush.c" tx->name # 1883 "../../../model_brush.c" 3 4 , # 1883 "../../../model_brush.c" "mirror" # 1883 "../../../model_brush.c" 3 4 , # 1883 "../../../model_brush.c" 6 # 1883 "../../../model_brush.c" 3 4 ))) # 1883 "../../../model_brush.c" ) { tx->basematerialflags |= 1048576; } else if (! # 1888 "../../../model_brush.c" 3 4 (__extension__ (__builtin_constant_p ( # 1888 "../../../model_brush.c" 3 # 1888 "../../../model_brush.c" 3 4 ) && ((__builtin_constant_p ( # 1888 "../../../model_brush.c" tx->name # 1888 "../../../model_brush.c" 3 4 ) && strlen ( # 1888 "../../../model_brush.c" tx->name # 1888 "../../../model_brush.c" 3 4 ) < ((size_t) ( # 1888 "../../../model_brush.c" 3 # 1888 "../../../model_brush.c" 3 4 ))) || (__builtin_constant_p ( # 1888 "../../../model_brush.c" "sky" # 1888 "../../../model_brush.c" 3 4 ) && strlen ( # 1888 "../../../model_brush.c" "sky" # 1888 "../../../model_brush.c" 3 4 ) < ((size_t) ( # 1888 "../../../model_brush.c" 3 # 1888 "../../../model_brush.c" 3 4 )))) ? __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( # 1888 "../../../model_brush.c" tx->name # 1888 "../../../model_brush.c" 3 4 ) && __builtin_constant_p ( # 1888 "../../../model_brush.c" "sky" # 1888 "../../../model_brush.c" 3 4 ) && (__s1_len = __builtin_strlen ( # 1888 "../../../model_brush.c" tx->name # 1888 "../../../model_brush.c" 3 4 ), __s2_len = __builtin_strlen ( # 1888 "../../../model_brush.c" "sky" # 1888 "../../../model_brush.c" 3 4 ), (!((size_t)(const void *)(( # 1888 "../../../model_brush.c" tx->name # 1888 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 1888 "../../../model_brush.c" tx->name # 1888 "../../../model_brush.c" 3 4 ) == 1) || __s1_len >= 4) && (!((size_t)(const void *)(( # 1888 "../../../model_brush.c" "sky" # 1888 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 1888 "../../../model_brush.c" "sky" # 1888 "../../../model_brush.c" 3 4 ) == 1) || __s2_len >= 4)) ? __builtin_strcmp ( # 1888 "../../../model_brush.c" tx->name # 1888 "../../../model_brush.c" 3 4 , # 1888 "../../../model_brush.c" "sky" # 1888 "../../../model_brush.c" 3 4 ) : (__builtin_constant_p ( # 1888 "../../../model_brush.c" tx->name # 1888 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 1888 "../../../model_brush.c" tx->name # 1888 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 1888 "../../../model_brush.c" tx->name # 1888 "../../../model_brush.c" 3 4 ) == 1) && (__s1_len = __builtin_strlen ( # 1888 "../../../model_brush.c" tx->name # 1888 "../../../model_brush.c" 3 4 ), __s1_len < 4) ? (__builtin_constant_p ( # 1888 "../../../model_brush.c" "sky" # 1888 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 1888 "../../../model_brush.c" "sky" # 1888 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 1888 "../../../model_brush.c" "sky" # 1888 "../../../model_brush.c" 3 4 ) == 1) ? __builtin_strcmp ( # 1888 "../../../model_brush.c" tx->name # 1888 "../../../model_brush.c" 3 4 , # 1888 "../../../model_brush.c" "sky" # 1888 "../../../model_brush.c" 3 4 ) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ( # 1888 "../../../model_brush.c" "sky" # 1888 "../../../model_brush.c" 3 4 ); int __result = (((const unsigned char *) (const char *) ( # 1888 "../../../model_brush.c" tx->name # 1888 "../../../model_brush.c" 3 4 ))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 1888 "../../../model_brush.c" tx->name # 1888 "../../../model_brush.c" 3 4 ))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 1888 "../../../model_brush.c" tx->name # 1888 "../../../model_brush.c" 3 4 ))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( # 1888 "../../../model_brush.c" tx->name # 1888 "../../../model_brush.c" 3 4 ))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ( # 1888 "../../../model_brush.c" "sky" # 1888 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 1888 "../../../model_brush.c" "sky" # 1888 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 1888 "../../../model_brush.c" "sky" # 1888 "../../../model_brush.c" 3 4 ) == 1) && (__s2_len = __builtin_strlen ( # 1888 "../../../model_brush.c" "sky" # 1888 "../../../model_brush.c" 3 4 ), __s2_len < 4) ? (__builtin_constant_p ( # 1888 "../../../model_brush.c" tx->name # 1888 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 1888 "../../../model_brush.c" tx->name # 1888 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 1888 "../../../model_brush.c" tx->name # 1888 "../../../model_brush.c" 3 4 ) == 1) ? __builtin_strcmp ( # 1888 "../../../model_brush.c" tx->name # 1888 "../../../model_brush.c" 3 4 , # 1888 "../../../model_brush.c" "sky" # 1888 "../../../model_brush.c" 3 4 ) : (- (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ( # 1888 "../../../model_brush.c" tx->name # 1888 "../../../model_brush.c" 3 4 ); int __result = (((const unsigned char *) (const char *) ( # 1888 "../../../model_brush.c" "sky" # 1888 "../../../model_brush.c" 3 4 ))[0] - __s2[0]); if (__s2_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 1888 "../../../model_brush.c" "sky" # 1888 "../../../model_brush.c" 3 4 ))[1] - __s2[1]); if (__s2_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 1888 "../../../model_brush.c" "sky" # 1888 "../../../model_brush.c" 3 4 ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( # 1888 "../../../model_brush.c" "sky" # 1888 "../../../model_brush.c" 3 4 ))[3] - __s2[3]); } } __result; })))) : __builtin_strcmp ( # 1888 "../../../model_brush.c" tx->name # 1888 "../../../model_brush.c" 3 4 , # 1888 "../../../model_brush.c" "sky" # 1888 "../../../model_brush.c" 3 4 )))); }) : strncmp ( # 1888 "../../../model_brush.c" tx->name # 1888 "../../../model_brush.c" 3 4 , # 1888 "../../../model_brush.c" "sky" # 1888 "../../../model_brush.c" 3 4 , # 1888 "../../../model_brush.c" 3 # 1888 "../../../model_brush.c" 3 4 ))) # 1888 "../../../model_brush.c" ) tx->basematerialflags = 128 | 16384; else if (! # 1890 "../../../model_brush.c" 3 4 __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( # 1890 "../../../model_brush.c" tx->name # 1890 "../../../model_brush.c" 3 4 ) && __builtin_constant_p ( # 1890 "../../../model_brush.c" "caulk" # 1890 "../../../model_brush.c" 3 4 ) && (__s1_len = __builtin_strlen ( # 1890 "../../../model_brush.c" tx->name # 1890 "../../../model_brush.c" 3 4 ), __s2_len = __builtin_strlen ( # 1890 "../../../model_brush.c" "caulk" # 1890 "../../../model_brush.c" 3 4 ), (!((size_t)(const void *)(( # 1890 "../../../model_brush.c" tx->name # 1890 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 1890 "../../../model_brush.c" tx->name # 1890 "../../../model_brush.c" 3 4 ) == 1) || __s1_len >= 4) && (!((size_t)(const void *)(( # 1890 "../../../model_brush.c" "caulk" # 1890 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 1890 "../../../model_brush.c" "caulk" # 1890 "../../../model_brush.c" 3 4 ) == 1) || __s2_len >= 4)) ? __builtin_strcmp ( # 1890 "../../../model_brush.c" tx->name # 1890 "../../../model_brush.c" 3 4 , # 1890 "../../../model_brush.c" "caulk" # 1890 "../../../model_brush.c" 3 4 ) : (__builtin_constant_p ( # 1890 "../../../model_brush.c" tx->name # 1890 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 1890 "../../../model_brush.c" tx->name # 1890 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 1890 "../../../model_brush.c" tx->name # 1890 "../../../model_brush.c" 3 4 ) == 1) && (__s1_len = __builtin_strlen ( # 1890 "../../../model_brush.c" tx->name # 1890 "../../../model_brush.c" 3 4 ), __s1_len < 4) ? (__builtin_constant_p ( # 1890 "../../../model_brush.c" "caulk" # 1890 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 1890 "../../../model_brush.c" "caulk" # 1890 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 1890 "../../../model_brush.c" "caulk" # 1890 "../../../model_brush.c" 3 4 ) == 1) ? __builtin_strcmp ( # 1890 "../../../model_brush.c" tx->name # 1890 "../../../model_brush.c" 3 4 , # 1890 "../../../model_brush.c" "caulk" # 1890 "../../../model_brush.c" 3 4 ) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ( # 1890 "../../../model_brush.c" "caulk" # 1890 "../../../model_brush.c" 3 4 ); int __result = (((const unsigned char *) (const char *) ( # 1890 "../../../model_brush.c" tx->name # 1890 "../../../model_brush.c" 3 4 ))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 1890 "../../../model_brush.c" tx->name # 1890 "../../../model_brush.c" 3 4 ))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 1890 "../../../model_brush.c" tx->name # 1890 "../../../model_brush.c" 3 4 ))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( # 1890 "../../../model_brush.c" tx->name # 1890 "../../../model_brush.c" 3 4 ))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ( # 1890 "../../../model_brush.c" "caulk" # 1890 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 1890 "../../../model_brush.c" "caulk" # 1890 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 1890 "../../../model_brush.c" "caulk" # 1890 "../../../model_brush.c" 3 4 ) == 1) && (__s2_len = __builtin_strlen ( # 1890 "../../../model_brush.c" "caulk" # 1890 "../../../model_brush.c" 3 4 ), __s2_len < 4) ? (__builtin_constant_p ( # 1890 "../../../model_brush.c" tx->name # 1890 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 1890 "../../../model_brush.c" tx->name # 1890 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 1890 "../../../model_brush.c" tx->name # 1890 "../../../model_brush.c" 3 4 ) == 1) ? __builtin_strcmp ( # 1890 "../../../model_brush.c" tx->name # 1890 "../../../model_brush.c" 3 4 , # 1890 "../../../model_brush.c" "caulk" # 1890 "../../../model_brush.c" 3 4 ) : (- (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ( # 1890 "../../../model_brush.c" tx->name # 1890 "../../../model_brush.c" 3 4 ); int __result = (((const unsigned char *) (const char *) ( # 1890 "../../../model_brush.c" "caulk" # 1890 "../../../model_brush.c" 3 4 ))[0] - __s2[0]); if (__s2_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 1890 "../../../model_brush.c" "caulk" # 1890 "../../../model_brush.c" 3 4 ))[1] - __s2[1]); if (__s2_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 1890 "../../../model_brush.c" "caulk" # 1890 "../../../model_brush.c" 3 4 ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( # 1890 "../../../model_brush.c" "caulk" # 1890 "../../../model_brush.c" 3 4 ))[3] - __s2[3]); } } __result; })))) : __builtin_strcmp ( # 1890 "../../../model_brush.c" tx->name # 1890 "../../../model_brush.c" 3 4 , # 1890 "../../../model_brush.c" "caulk" # 1890 "../../../model_brush.c" 3 4 )))); }) # 1890 "../../../model_brush.c" ) tx->basematerialflags = 512 | 16384; else if (tx->skinframes[0] && tx->skinframes[0]->hasalpha) tx->basematerialflags |= 2 | 4096 | 16384; tx->currentframe = tx; tx->currentskinframe = tx->skinframes[0]; tx->currentmaterialflags = tx->basematerialflags; } for (i = 0;i < nummiptex;i++) { tx = loadmodel->data_textures + i; if (!tx || tx->name[0] != '+' || tx->name[1] == 0 || tx->name[2] == 0) continue; if (tx->anim_total[0] || tx->anim_total[1]) continue; memset(anims, 0, sizeof(anims)); memset(altanims, 0, sizeof(altanims)); for (j = i;j < nummiptex;j++) { tx2 = loadmodel->data_textures + j; if (!tx2 || tx2->name[0] != '+' || # 1917 "../../../model_brush.c" 3 4 __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( # 1917 "../../../model_brush.c" tx2->name+2 # 1917 "../../../model_brush.c" 3 4 ) && __builtin_constant_p ( # 1917 "../../../model_brush.c" tx->name+2 # 1917 "../../../model_brush.c" 3 4 ) && (__s1_len = __builtin_strlen ( # 1917 "../../../model_brush.c" tx2->name+2 # 1917 "../../../model_brush.c" 3 4 ), __s2_len = __builtin_strlen ( # 1917 "../../../model_brush.c" tx->name+2 # 1917 "../../../model_brush.c" 3 4 ), (!((size_t)(const void *)(( # 1917 "../../../model_brush.c" tx2->name+2 # 1917 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 1917 "../../../model_brush.c" tx2->name+2 # 1917 "../../../model_brush.c" 3 4 ) == 1) || __s1_len >= 4) && (!((size_t)(const void *)(( # 1917 "../../../model_brush.c" tx->name+2 # 1917 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 1917 "../../../model_brush.c" tx->name+2 # 1917 "../../../model_brush.c" 3 4 ) == 1) || __s2_len >= 4)) ? __builtin_strcmp ( # 1917 "../../../model_brush.c" tx2->name+2 # 1917 "../../../model_brush.c" 3 4 , # 1917 "../../../model_brush.c" tx->name+2 # 1917 "../../../model_brush.c" 3 4 ) : (__builtin_constant_p ( # 1917 "../../../model_brush.c" tx2->name+2 # 1917 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 1917 "../../../model_brush.c" tx2->name+2 # 1917 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 1917 "../../../model_brush.c" tx2->name+2 # 1917 "../../../model_brush.c" 3 4 ) == 1) && (__s1_len = __builtin_strlen ( # 1917 "../../../model_brush.c" tx2->name+2 # 1917 "../../../model_brush.c" 3 4 ), __s1_len < 4) ? (__builtin_constant_p ( # 1917 "../../../model_brush.c" tx->name+2 # 1917 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 1917 "../../../model_brush.c" tx->name+2 # 1917 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 1917 "../../../model_brush.c" tx->name+2 # 1917 "../../../model_brush.c" 3 4 ) == 1) ? __builtin_strcmp ( # 1917 "../../../model_brush.c" tx2->name+2 # 1917 "../../../model_brush.c" 3 4 , # 1917 "../../../model_brush.c" tx->name+2 # 1917 "../../../model_brush.c" 3 4 ) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ( # 1917 "../../../model_brush.c" tx->name+2 # 1917 "../../../model_brush.c" 3 4 ); int __result = (((const unsigned char *) (const char *) ( # 1917 "../../../model_brush.c" tx2->name+2 # 1917 "../../../model_brush.c" 3 4 ))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 1917 "../../../model_brush.c" tx2->name+2 # 1917 "../../../model_brush.c" 3 4 ))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 1917 "../../../model_brush.c" tx2->name+2 # 1917 "../../../model_brush.c" 3 4 ))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( # 1917 "../../../model_brush.c" tx2->name+2 # 1917 "../../../model_brush.c" 3 4 ))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ( # 1917 "../../../model_brush.c" tx->name+2 # 1917 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 1917 "../../../model_brush.c" tx->name+2 # 1917 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 1917 "../../../model_brush.c" tx->name+2 # 1917 "../../../model_brush.c" 3 4 ) == 1) && (__s2_len = __builtin_strlen ( # 1917 "../../../model_brush.c" tx->name+2 # 1917 "../../../model_brush.c" 3 4 ), __s2_len < 4) ? (__builtin_constant_p ( # 1917 "../../../model_brush.c" tx2->name+2 # 1917 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 1917 "../../../model_brush.c" tx2->name+2 # 1917 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 1917 "../../../model_brush.c" tx2->name+2 # 1917 "../../../model_brush.c" 3 4 ) == 1) ? __builtin_strcmp ( # 1917 "../../../model_brush.c" tx2->name+2 # 1917 "../../../model_brush.c" 3 4 , # 1917 "../../../model_brush.c" tx->name+2 # 1917 "../../../model_brush.c" 3 4 ) : (- (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ( # 1917 "../../../model_brush.c" tx2->name+2 # 1917 "../../../model_brush.c" 3 4 ); int __result = (((const unsigned char *) (const char *) ( # 1917 "../../../model_brush.c" tx->name+2 # 1917 "../../../model_brush.c" 3 4 ))[0] - __s2[0]); if (__s2_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 1917 "../../../model_brush.c" tx->name+2 # 1917 "../../../model_brush.c" 3 4 ))[1] - __s2[1]); if (__s2_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 1917 "../../../model_brush.c" tx->name+2 # 1917 "../../../model_brush.c" 3 4 ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( # 1917 "../../../model_brush.c" tx->name+2 # 1917 "../../../model_brush.c" 3 4 ))[3] - __s2[3]); } } __result; })))) : __builtin_strcmp ( # 1917 "../../../model_brush.c" tx2->name+2 # 1917 "../../../model_brush.c" 3 4 , # 1917 "../../../model_brush.c" tx->name+2 # 1917 "../../../model_brush.c" 3 4 )))); }) # 1917 "../../../model_brush.c" ) continue; num = tx2->name[1]; if (num >= '0' && num <= '9') anims[num - '0'] = tx2; else if (num >= 'a' && num <= 'j') altanims[num - 'a'] = tx2; else Con_Printf("Bad animating texture %s\n", tx->name); } max = altmax = 0; for (j = 0;j < 10;j++) { if (anims[j]) max = j + 1; if (altanims[j]) altmax = j + 1; } incomplete = false; for (j = 0;j < max;j++) { if (!anims[j]) { Con_Printf("Missing frame %i of %s\n", j, tx->name); incomplete = true; } } for (j = 0;j < altmax;j++) { if (!altanims[j]) { Con_Printf("Missing altframe %i of %s\n", j, tx->name); incomplete = true; } } if (incomplete) continue; if (altmax < 1) { altmax = max; for (k = 0;k < 10;k++) altanims[k] = anims[k]; } for (j = 0;j < max;j++) { tx2 = anims[j]; tx2->animated = 1; tx2->anim_total[0] = max; tx2->anim_total[1] = altmax; for (k = 0;k < 10;k++) { tx2->anim_frames[0][k] = anims[k]; tx2->anim_frames[1][k] = altanims[k]; } } if (anims[0] != altanims[0]) { for (j = 0;j < altmax;j++) { tx2 = altanims[j]; tx2->animated = 1; tx2->anim_total[0] = altmax; tx2->anim_total[1] = max; for (k = 0;k < 10;k++) { tx2->anim_frames[0][k] = altanims[k]; tx2->anim_frames[1][k] = anims[k]; } } } } } static void Mod_Q1BSP_LoadLighting(sizebuf_t *sb) { int i; unsigned char *in, *out, *data, d; char litfilename[128]; char dlitfilename[128]; fs_offset_t filesize; if (loadmodel->brush.ishlbsp) { loadmodel->brushq1.lightdata = (unsigned char *)_Mem_Alloc(loadmodel->mempool, # 2012 "../../../model_brush.c" 3 4 ((void *)0) # 2012 "../../../model_brush.c" , sb->cursize, 16, "../../../model_brush.c", 2012); for (i = 0;i < sb->cursize;i++) loadmodel->brushq1.lightdata[i] = sb->data[i] >>= 1; } else { strlcpy (litfilename, loadmodel->name, sizeof (litfilename)); FS_StripExtension (litfilename, litfilename, sizeof (litfilename)); strlcpy (dlitfilename, litfilename, sizeof (dlitfilename)); strlcat (litfilename, ".lit", sizeof (litfilename)); strlcat (dlitfilename, ".dlit", sizeof (dlitfilename)); data = (unsigned char*) FS_LoadFile(litfilename, tempmempool, false, &filesize); if (data) { if (filesize == (fs_offset_t)(8 + sb->cursize * 3) && data[0] == 'Q' && data[1] == 'L' && data[2] == 'I' && data[3] == 'T') { i = BuffLittleLong((unsigned char *)&(((int *)data)[1])); if (i == 1) { if (developer_loading.integer) Con_Printf("loaded %s\n", litfilename); loadmodel->brushq1.lightdata = (unsigned char *)_Mem_Alloc(loadmodel->mempool, # 2034 "../../../model_brush.c" 3 4 ((void *)0) # 2034 "../../../model_brush.c" , filesize - 8, 16, "../../../model_brush.c", 2034); memcpy(loadmodel->brushq1.lightdata, data + 8, filesize - 8); _Mem_Free(data, "../../../model_brush.c", 2036); data = (unsigned char*) FS_LoadFile(dlitfilename, tempmempool, false, &filesize); if (data) { if (filesize == (fs_offset_t)(8 + sb->cursize * 3) && data[0] == 'Q' && data[1] == 'L' && data[2] == 'I' && data[3] == 'T') { i = BuffLittleLong((unsigned char *)&(((int *)data)[1])); if (i == 1) { if (developer_loading.integer) Con_Printf("loaded %s\n", dlitfilename); loadmodel->brushq1.nmaplightdata = (unsigned char *)_Mem_Alloc(loadmodel->mempool, # 2047 "../../../model_brush.c" 3 4 ((void *)0) # 2047 "../../../model_brush.c" , filesize - 8, 16, "../../../model_brush.c", 2047); memcpy(loadmodel->brushq1.nmaplightdata, data + 8, filesize - 8); loadmodel->brushq3.deluxemapping_modelspace = false; loadmodel->brushq3.deluxemapping = true; } } _Mem_Free(data, "../../../model_brush.c", 2053); data = # 2054 "../../../model_brush.c" 3 4 ((void *)0) # 2054 "../../../model_brush.c" ; } return; } else Con_Printf("Unknown .lit file version (%d)\n", i); } else if (filesize == 8) Con_Print("Empty .lit file, ignoring\n"); else Con_Printf("Corrupt .lit file (file size %i bytes, should be %i bytes), ignoring\n", (int) filesize, (int) (8 + sb->cursize * 3)); if (data) { _Mem_Free(data, "../../../model_brush.c", 2067); data = # 2068 "../../../model_brush.c" 3 4 ((void *)0) # 2068 "../../../model_brush.c" ; } } if (!sb->cursize) return; loadmodel->brushq1.lightdata = (unsigned char *)_Mem_Alloc(loadmodel->mempool, # 2074 "../../../model_brush.c" 3 4 ((void *)0) # 2074 "../../../model_brush.c" , sb->cursize*3, 16, "../../../model_brush.c", 2074); in = sb->data; out = loadmodel->brushq1.lightdata; for (i = 0;i < sb->cursize;i++) { d = *in++; *out++ = d; *out++ = d; *out++ = d; } } } static void Mod_Q1BSP_LoadVisibility(sizebuf_t *sb) { loadmodel->brushq1.num_compressedpvs = 0; loadmodel->brushq1.data_compressedpvs = # 2090 "../../../model_brush.c" 3 4 ((void *)0) # 2090 "../../../model_brush.c" ; if (!sb->cursize) return; loadmodel->brushq1.num_compressedpvs = sb->cursize; loadmodel->brushq1.data_compressedpvs = (unsigned char *)_Mem_Alloc(loadmodel->mempool, # 2094 "../../../model_brush.c" 3 4 ((void *)0) # 2094 "../../../model_brush.c" , sb->cursize, 16, "../../../model_brush.c", 2094); MSG_ReadBytes(sb, sb->cursize, loadmodel->brushq1.data_compressedpvs); } static void Mod_Q1BSP_ParseWadsFromEntityLump(const char *data) { char key[128], value[4096]; int i, j, k; if (!data) return; if (!COM_ParseToken_Simple(&data, false, false, true)) return; if (com_token[0] != '{') return; while (1) { if (!COM_ParseToken_Simple(&data, false, false, true)) return; if (com_token[0] == '}') break; if (com_token[0] == '_') strlcpy(key, com_token + 1, sizeof(key)); else strlcpy(key, com_token, sizeof(key)); while (key[strlen(key)-1] == ' ') key[strlen(key)-1] = 0; if (!COM_ParseToken_Simple(&data, false, false, true)) return; dpsnprintf(value, sizeof(value), "%s", com_token); if (! # 2124 "../../../model_brush.c" 3 4 __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( # 2124 "../../../model_brush.c" "wad" # 2124 "../../../model_brush.c" 3 4 ) && __builtin_constant_p ( # 2124 "../../../model_brush.c" key # 2124 "../../../model_brush.c" 3 4 ) && (__s1_len = __builtin_strlen ( # 2124 "../../../model_brush.c" "wad" # 2124 "../../../model_brush.c" 3 4 ), __s2_len = __builtin_strlen ( # 2124 "../../../model_brush.c" key # 2124 "../../../model_brush.c" 3 4 ), (!((size_t)(const void *)(( # 2124 "../../../model_brush.c" "wad" # 2124 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 2124 "../../../model_brush.c" "wad" # 2124 "../../../model_brush.c" 3 4 ) == 1) || __s1_len >= 4) && (!((size_t)(const void *)(( # 2124 "../../../model_brush.c" key # 2124 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 2124 "../../../model_brush.c" key # 2124 "../../../model_brush.c" 3 4 ) == 1) || __s2_len >= 4)) ? __builtin_strcmp ( # 2124 "../../../model_brush.c" "wad" # 2124 "../../../model_brush.c" 3 4 , # 2124 "../../../model_brush.c" key # 2124 "../../../model_brush.c" 3 4 ) : (__builtin_constant_p ( # 2124 "../../../model_brush.c" "wad" # 2124 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 2124 "../../../model_brush.c" "wad" # 2124 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 2124 "../../../model_brush.c" "wad" # 2124 "../../../model_brush.c" 3 4 ) == 1) && (__s1_len = __builtin_strlen ( # 2124 "../../../model_brush.c" "wad" # 2124 "../../../model_brush.c" 3 4 ), __s1_len < 4) ? (__builtin_constant_p ( # 2124 "../../../model_brush.c" key # 2124 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 2124 "../../../model_brush.c" key # 2124 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 2124 "../../../model_brush.c" key # 2124 "../../../model_brush.c" 3 4 ) == 1) ? __builtin_strcmp ( # 2124 "../../../model_brush.c" "wad" # 2124 "../../../model_brush.c" 3 4 , # 2124 "../../../model_brush.c" key # 2124 "../../../model_brush.c" 3 4 ) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ( # 2124 "../../../model_brush.c" key # 2124 "../../../model_brush.c" 3 4 ); int __result = (((const unsigned char *) (const char *) ( # 2124 "../../../model_brush.c" "wad" # 2124 "../../../model_brush.c" 3 4 ))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 2124 "../../../model_brush.c" "wad" # 2124 "../../../model_brush.c" 3 4 ))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 2124 "../../../model_brush.c" "wad" # 2124 "../../../model_brush.c" 3 4 ))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( # 2124 "../../../model_brush.c" "wad" # 2124 "../../../model_brush.c" 3 4 ))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ( # 2124 "../../../model_brush.c" key # 2124 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 2124 "../../../model_brush.c" key # 2124 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 2124 "../../../model_brush.c" key # 2124 "../../../model_brush.c" 3 4 ) == 1) && (__s2_len = __builtin_strlen ( # 2124 "../../../model_brush.c" key # 2124 "../../../model_brush.c" 3 4 ), __s2_len < 4) ? (__builtin_constant_p ( # 2124 "../../../model_brush.c" "wad" # 2124 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 2124 "../../../model_brush.c" "wad" # 2124 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 2124 "../../../model_brush.c" "wad" # 2124 "../../../model_brush.c" 3 4 ) == 1) ? __builtin_strcmp ( # 2124 "../../../model_brush.c" "wad" # 2124 "../../../model_brush.c" 3 4 , # 2124 "../../../model_brush.c" key # 2124 "../../../model_brush.c" 3 4 ) : (- (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ( # 2124 "../../../model_brush.c" "wad" # 2124 "../../../model_brush.c" 3 4 ); int __result = (((const unsigned char *) (const char *) ( # 2124 "../../../model_brush.c" key # 2124 "../../../model_brush.c" 3 4 ))[0] - __s2[0]); if (__s2_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 2124 "../../../model_brush.c" key # 2124 "../../../model_brush.c" 3 4 ))[1] - __s2[1]); if (__s2_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 2124 "../../../model_brush.c" key # 2124 "../../../model_brush.c" 3 4 ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( # 2124 "../../../model_brush.c" key # 2124 "../../../model_brush.c" 3 4 ))[3] - __s2[3]); } } __result; })))) : __builtin_strcmp ( # 2124 "../../../model_brush.c" "wad" # 2124 "../../../model_brush.c" 3 4 , # 2124 "../../../model_brush.c" key # 2124 "../../../model_brush.c" 3 4 )))); }) # 2124 "../../../model_brush.c" ) { if (loadmodel->brush.ishlbsp) { j = 0; for (i = 0;i < (int)sizeof(value);i++) if (value[i] != ';' && value[i] != '\\' && value[i] != '/' && value[i] != ':') break; if (i < (int)sizeof(value) && value[i]) { for (;i < (int)sizeof(value);i++) { if (value[i] == '\\' || value[i] == '/' || value[i] == ':') j = i+1; else if (value[i] == ';' || value[i] == 0) { k = value[i]; value[i] = 0; W_LoadTextureWadFile(&value[j], false); j = i+1; if (!k) break; } } } } } } } static void Mod_Q1BSP_LoadEntities(sizebuf_t *sb) { loadmodel->brush.entities = # 2157 "../../../model_brush.c" 3 4 ((void *)0) # 2157 "../../../model_brush.c" ; if (!sb->cursize) return; loadmodel->brush.entities = (char *)_Mem_Alloc(loadmodel->mempool, # 2160 "../../../model_brush.c" 3 4 ((void *)0) # 2160 "../../../model_brush.c" , sb->cursize + 1, 16, "../../../model_brush.c", 2160); MSG_ReadBytes(sb, sb->cursize, (unsigned char *)loadmodel->brush.entities); loadmodel->brush.entities[sb->cursize] = 0; if (loadmodel->brush.ishlbsp) Mod_Q1BSP_ParseWadsFromEntityLump(loadmodel->brush.entities); } static void Mod_Q1BSP_LoadVertexes(sizebuf_t *sb) { mvertex_t *out; int i, count; int structsize = 12; if (sb->cursize % structsize) Host_Error("Mod_Q1BSP_LoadVertexes: funny lump size in %s",loadmodel->name); count = sb->cursize / structsize; out = (mvertex_t *)_Mem_Alloc(loadmodel->mempool, # 2177 "../../../model_brush.c" 3 4 ((void *)0) # 2177 "../../../model_brush.c" , count*sizeof(*out), 16, "../../../model_brush.c", 2177); loadmodel->brushq1.vertexes = out; loadmodel->brushq1.numvertexes = count; for ( i=0 ; iposition[0] = MSG_ReadLittleFloat(sb); out->position[1] = MSG_ReadLittleFloat(sb); out->position[2] = MSG_ReadLittleFloat(sb); } } static void Mod_Q1BSP_LoadSubmodels(sizebuf_t *sb, hullinfo_t *hullinfo) { mmodel_t *out; int i, j, count; int structsize = (48+4*hullinfo->filehulls); if (sb->cursize % structsize) Host_Error ("Mod_Q1BSP_LoadSubmodels: funny lump size in %s", loadmodel->name); count = sb->cursize / structsize; out = (mmodel_t *)_Mem_Alloc(loadmodel->mempool, # 2200 "../../../model_brush.c" 3 4 ((void *)0) # 2200 "../../../model_brush.c" , count*sizeof(*out), 16, "../../../model_brush.c", 2200); loadmodel->brushq1.submodels = out; loadmodel->brush.numsubmodels = count; for (i = 0; i < count; i++, out++) { out->mins[0] = MSG_ReadLittleFloat(sb) - 1; out->mins[1] = MSG_ReadLittleFloat(sb) - 1; out->mins[2] = MSG_ReadLittleFloat(sb) - 1; out->maxs[0] = MSG_ReadLittleFloat(sb) + 1; out->maxs[1] = MSG_ReadLittleFloat(sb) + 1; out->maxs[2] = MSG_ReadLittleFloat(sb) + 1; out->origin[0] = MSG_ReadLittleFloat(sb); out->origin[1] = MSG_ReadLittleFloat(sb); out->origin[2] = MSG_ReadLittleFloat(sb); for (j = 0; j < hullinfo->filehulls; j++) out->headnode[j] = MSG_ReadLittleLong(sb); out->visleafs = MSG_ReadLittleLong(sb); out->firstface = MSG_ReadLittleLong(sb); out->numfaces = MSG_ReadLittleLong(sb); } } static void Mod_Q1BSP_LoadEdges(sizebuf_t *sb) { medge_t *out; int i, count; int structsize = loadmodel->brush.isbsp2 ? 8 : 4; if (sb->cursize % structsize) Host_Error("Mod_Q1BSP_LoadEdges: funny lump size in %s",loadmodel->name); count = sb->cursize / structsize; out = (medge_t *)_Mem_Alloc(loadmodel->mempool, # 2234 "../../../model_brush.c" 3 4 ((void *)0) # 2234 "../../../model_brush.c" , count * sizeof(*out), 16, "../../../model_brush.c", 2234); loadmodel->brushq1.edges = out; loadmodel->brushq1.numedges = count; for ( i=0 ; ibrush.isbsp2) { out->v[0] = (unsigned int)MSG_ReadLittleLong(sb); out->v[1] = (unsigned int)MSG_ReadLittleLong(sb); } else { out->v[0] = (unsigned short)MSG_ReadLittleShort(sb); out->v[1] = (unsigned short)MSG_ReadLittleShort(sb); } if ((int)out->v[0] >= loadmodel->brushq1.numvertexes || (int)out->v[1] >= loadmodel->brushq1.numvertexes) { Con_Printf("Mod_Q1BSP_LoadEdges: %s has invalid vertex indices in edge %i (vertices %i %i >= numvertices %i)\n", loadmodel->name, i, out->v[0], out->v[1], loadmodel->brushq1.numvertexes); if(!loadmodel->brushq1.numvertexes) Host_Error("Mod_Q1BSP_LoadEdges: %s has edges but no vertexes, cannot fix\n", loadmodel->name); out->v[0] = 0; out->v[1] = 0; } } } static void Mod_Q1BSP_LoadTexinfo(sizebuf_t *sb) { mtexinfo_t *out; int i, j, k, count, miptex; int structsize = 40; if (sb->cursize % structsize) Host_Error("Mod_Q1BSP_LoadTexinfo: funny lump size in %s",loadmodel->name); count = sb->cursize / structsize; out = (mtexinfo_t *)_Mem_Alloc(loadmodel->mempool, # 2272 "../../../model_brush.c" 3 4 ((void *)0) # 2272 "../../../model_brush.c" , count * sizeof(*out), 16, "../../../model_brush.c", 2272); loadmodel->brushq1.texinfo = out; loadmodel->brushq1.numtexinfo = count; for (i = 0;i < count;i++, out++) { for (k = 0;k < 2;k++) for (j = 0;j < 4;j++) out->vecs[k][j] = MSG_ReadLittleFloat(sb); miptex = MSG_ReadLittleLong(sb); out->q1flags = MSG_ReadLittleLong(sb); if (out->q1flags & 1) { out->textureindex = loadmodel->num_textures - 1; } else { out->textureindex = loadmodel->num_textures - 2; } if (loadmodel->data_textures) { if ((unsigned int) miptex >= (unsigned int) loadmodel->num_textures) Con_Printf("error in model \"%s\": invalid miptex index %i(of %i)\n", loadmodel->name, miptex, loadmodel->num_textures); else out->textureindex = miptex; } } } # 2460 "../../../model_brush.c" extern cvar_t gl_max_lightmapsize; static void Mod_Q1BSP_LoadFaces(sizebuf_t *sb) { msurface_t *surface; int i, j, count, surfacenum, planenum, smax, tmax, ssize, tsize, firstedge, numedges, totalverts, totaltris, lightmapnumber, lightmapsize, totallightmapsamples, lightmapoffset, texinfoindex; float texmins[2], texmaxs[2], val; rtexture_t *lightmaptexture, *deluxemaptexture; char vabuf[1024]; int structsize = loadmodel->brush.isbsp2 ? 28 : 20; if (sb->cursize % structsize) Host_Error("Mod_Q1BSP_LoadFaces: funny lump size in %s",loadmodel->name); count = sb->cursize / structsize; loadmodel->data_surfaces = (msurface_t *)_Mem_Alloc(loadmodel->mempool, # 2473 "../../../model_brush.c" 3 4 ((void *)0) # 2473 "../../../model_brush.c" , count*sizeof(msurface_t), 16, "../../../model_brush.c", 2473); loadmodel->data_surfaces_lightmapinfo = (msurface_lightmapinfo_t *)_Mem_Alloc(loadmodel->mempool, # 2474 "../../../model_brush.c" 3 4 ((void *)0) # 2474 "../../../model_brush.c" , count*sizeof(msurface_lightmapinfo_t), 16, "../../../model_brush.c", 2474); loadmodel->num_surfaces = count; loadmodel->brushq1.firstrender = true; loadmodel->brushq1.lightmapupdateflags = (unsigned char *)_Mem_Alloc(loadmodel->mempool, # 2479 "../../../model_brush.c" 3 4 ((void *)0) # 2479 "../../../model_brush.c" , count*sizeof(unsigned char), 16, "../../../model_brush.c", 2479); totalverts = 0; totaltris = 0; for (surfacenum = 0;surfacenum < count;surfacenum++) { if (loadmodel->brush.isbsp2) numedges = BuffLittleLong(sb->data + structsize * surfacenum + 12); else numedges = BuffLittleShort(sb->data + structsize * surfacenum + 8); totalverts += numedges; totaltris += numedges - 2; } Mod_AllocSurfMesh(loadmodel->mempool, totalverts, totaltris, true, false, false); lightmaptexture = # 2495 "../../../model_brush.c" 3 4 ((void *)0) # 2495 "../../../model_brush.c" ; deluxemaptexture = r_texture_blanknormalmap; lightmapnumber = 0; lightmapsize = ((gl_max_lightmapsize.integer) >= (256) ? ((gl_max_lightmapsize.integer) < ((int)vid.maxtexturesize_2d) ? (gl_max_lightmapsize.integer) : ((int)vid.maxtexturesize_2d)) : (256)); totallightmapsamples = 0; totalverts = 0; totaltris = 0; for (surfacenum = 0, surface = loadmodel->data_surfaces;surfacenum < count;surfacenum++, surface++) { surface->lightmapinfo = loadmodel->data_surfaces_lightmapinfo + surfacenum; planenum = loadmodel->brush.isbsp2 ? MSG_ReadLittleLong(sb) : (unsigned short)MSG_ReadLittleShort(sb); loadmodel->brush.isbsp2 ? MSG_ReadLittleLong(sb) : (unsigned short)MSG_ReadLittleShort(sb); firstedge = MSG_ReadLittleLong(sb); numedges = loadmodel->brush.isbsp2 ? MSG_ReadLittleLong(sb) : (unsigned short)MSG_ReadLittleShort(sb); texinfoindex = loadmodel->brush.isbsp2 ? MSG_ReadLittleLong(sb) : (unsigned short)MSG_ReadLittleShort(sb); for (i = 0;i < 4;i++) surface->lightmapinfo->styles[i] = ((sb)->readcount >= (sb)->cursize ? ((sb)->badread = true, -1) : (unsigned char)(sb)->data[(sb)->readcount++]); lightmapoffset = MSG_ReadLittleLong(sb); if ((unsigned int) firstedge > (unsigned int) loadmodel->brushq1.numsurfedges || (unsigned int) numedges > (unsigned int) loadmodel->brushq1.numsurfedges || (unsigned int) firstedge + (unsigned int) numedges > (unsigned int) loadmodel->brushq1.numsurfedges) Host_Error("Mod_Q1BSP_LoadFaces: invalid edge range (firstedge %i, numedges %i, model edges %i)", firstedge, numedges, loadmodel->brushq1.numsurfedges); if ((unsigned int) texinfoindex >= (unsigned int) loadmodel->brushq1.numtexinfo) Host_Error("Mod_Q1BSP_LoadFaces: invalid texinfo index %i(model has %i texinfos)", texinfoindex, loadmodel->brushq1.numtexinfo); if ((unsigned int) planenum >= (unsigned int) loadmodel->brush.num_planes) Host_Error("Mod_Q1BSP_LoadFaces: invalid plane index %i (model has %i planes)", planenum, loadmodel->brush.num_planes); surface->lightmapinfo->texinfo = loadmodel->brushq1.texinfo + texinfoindex; surface->texture = loadmodel->data_textures + surface->lightmapinfo->texinfo->textureindex; if (lightmapoffset == 0 && (surface->texture->q2flags & (0x4 | 0x8))) lightmapoffset = -1; surface->num_firstvertex = totalverts; surface->num_vertices = numedges; surface->num_firsttriangle = totaltris; surface->num_triangles = numedges - 2; totalverts += numedges; totaltris += numedges - 2; for (i = 0;i < surface->num_vertices;i++) { int lindex = loadmodel->brushq1.surfedges[firstedge + i]; float s, t; if (lindex >= 0) (((loadmodel->surfmesh.data_vertex3f + 3 * surface->num_firstvertex) + i * 3)[0]=(loadmodel->brushq1.vertexes[loadmodel->brushq1.edges[lindex].v[0]].position)[0],((loadmodel->surfmesh.data_vertex3f + 3 * surface->num_firstvertex) + i * 3)[1]=(loadmodel->brushq1.vertexes[loadmodel->brushq1.edges[lindex].v[0]].position)[1],((loadmodel->surfmesh.data_vertex3f + 3 * surface->num_firstvertex) + i * 3)[2]=(loadmodel->brushq1.vertexes[loadmodel->brushq1.edges[lindex].v[0]].position)[2]); else (((loadmodel->surfmesh.data_vertex3f + 3 * surface->num_firstvertex) + i * 3)[0]=(loadmodel->brushq1.vertexes[loadmodel->brushq1.edges[-lindex].v[1]].position)[0],((loadmodel->surfmesh.data_vertex3f + 3 * surface->num_firstvertex) + i * 3)[1]=(loadmodel->brushq1.vertexes[loadmodel->brushq1.edges[-lindex].v[1]].position)[1],((loadmodel->surfmesh.data_vertex3f + 3 * surface->num_firstvertex) + i * 3)[2]=(loadmodel->brushq1.vertexes[loadmodel->brushq1.edges[-lindex].v[1]].position)[2]); s = ((((loadmodel->surfmesh.data_vertex3f + 3 * surface->num_firstvertex) + i * 3))[0]*(surface->lightmapinfo->texinfo->vecs[0])[0]+(((loadmodel->surfmesh.data_vertex3f + 3 * surface->num_firstvertex) + i * 3))[1]*(surface->lightmapinfo->texinfo->vecs[0])[1]+(((loadmodel->surfmesh.data_vertex3f + 3 * surface->num_firstvertex) + i * 3))[2]*(surface->lightmapinfo->texinfo->vecs[0])[2]) + surface->lightmapinfo->texinfo->vecs[0][3]; t = ((((loadmodel->surfmesh.data_vertex3f + 3 * surface->num_firstvertex) + i * 3))[0]*(surface->lightmapinfo->texinfo->vecs[1])[0]+(((loadmodel->surfmesh.data_vertex3f + 3 * surface->num_firstvertex) + i * 3))[1]*(surface->lightmapinfo->texinfo->vecs[1])[1]+(((loadmodel->surfmesh.data_vertex3f + 3 * surface->num_firstvertex) + i * 3))[2]*(surface->lightmapinfo->texinfo->vecs[1])[2]) + surface->lightmapinfo->texinfo->vecs[1][3]; (loadmodel->surfmesh.data_texcoordtexture2f + 2 * surface->num_firstvertex)[i * 2 + 0] = s / surface->texture->width; (loadmodel->surfmesh.data_texcoordtexture2f + 2 * surface->num_firstvertex)[i * 2 + 1] = t / surface->texture->height; (loadmodel->surfmesh.data_texcoordlightmap2f + 2 * surface->num_firstvertex)[i * 2 + 0] = 0; (loadmodel->surfmesh.data_texcoordlightmap2f + 2 * surface->num_firstvertex)[i * 2 + 1] = 0; (loadmodel->surfmesh.data_lightmapoffsets + surface->num_firstvertex)[i] = 0; } for (i = 0;i < surface->num_triangles;i++) { (loadmodel->surfmesh.data_element3i + 3 * surface->num_firsttriangle)[i * 3 + 0] = 0 + surface->num_firstvertex; (loadmodel->surfmesh.data_element3i + 3 * surface->num_firsttriangle)[i * 3 + 1] = i + 1 + surface->num_firstvertex; (loadmodel->surfmesh.data_element3i + 3 * surface->num_firsttriangle)[i * 3 + 2] = i + 2 + surface->num_firstvertex; } Mod_BuildNormals(surface->num_firstvertex, surface->num_vertices, surface->num_triangles, loadmodel->surfmesh.data_vertex3f, (loadmodel->surfmesh.data_element3i + 3 * surface->num_firsttriangle), loadmodel->surfmesh.data_normal3f, r_smoothnormals_areaweighting.integer != 0); Mod_BuildTextureVectorsFromNormals(surface->num_firstvertex, surface->num_vertices, surface->num_triangles, loadmodel->surfmesh.data_vertex3f, loadmodel->surfmesh.data_texcoordtexture2f, loadmodel->surfmesh.data_normal3f, (loadmodel->surfmesh.data_element3i + 3 * surface->num_firsttriangle), loadmodel->surfmesh.data_svector3f, loadmodel->surfmesh.data_tvector3f, r_smoothnormals_areaweighting.integer != 0); BoxFromPoints(surface->mins, surface->maxs, surface->num_vertices, (loadmodel->surfmesh.data_vertex3f + 3 * surface->num_firstvertex)); texmins[0] = texmaxs[0] = (((loadmodel->surfmesh.data_vertex3f + 3 * surface->num_firstvertex))[0]*(surface->lightmapinfo->texinfo->vecs[0])[0]+((loadmodel->surfmesh.data_vertex3f + 3 * surface->num_firstvertex))[1]*(surface->lightmapinfo->texinfo->vecs[0])[1]+((loadmodel->surfmesh.data_vertex3f + 3 * surface->num_firstvertex))[2]*(surface->lightmapinfo->texinfo->vecs[0])[2]) + surface->lightmapinfo->texinfo->vecs[0][3]; texmins[1] = texmaxs[1] = (((loadmodel->surfmesh.data_vertex3f + 3 * surface->num_firstvertex))[0]*(surface->lightmapinfo->texinfo->vecs[1])[0]+((loadmodel->surfmesh.data_vertex3f + 3 * surface->num_firstvertex))[1]*(surface->lightmapinfo->texinfo->vecs[1])[1]+((loadmodel->surfmesh.data_vertex3f + 3 * surface->num_firstvertex))[2]*(surface->lightmapinfo->texinfo->vecs[1])[2]) + surface->lightmapinfo->texinfo->vecs[1][3]; for (i = 1;i < surface->num_vertices;i++) { for (j = 0;j < 2;j++) { val = (((loadmodel->surfmesh.data_vertex3f + 3 * surface->num_firstvertex) + i * 3)[0]*(surface->lightmapinfo->texinfo->vecs[j])[0]+((loadmodel->surfmesh.data_vertex3f + 3 * surface->num_firstvertex) + i * 3)[1]*(surface->lightmapinfo->texinfo->vecs[j])[1]+((loadmodel->surfmesh.data_vertex3f + 3 * surface->num_firstvertex) + i * 3)[2]*(surface->lightmapinfo->texinfo->vecs[j])[2]) + surface->lightmapinfo->texinfo->vecs[j][3]; texmins[j] = ((texmins[j]) < (val) ? (texmins[j]) : (val)); texmaxs[j] = ((texmaxs[j]) > (val) ? (texmaxs[j]) : (val)); } } for (i = 0;i < 2;i++) { surface->lightmapinfo->texturemins[i] = (int) floor(texmins[i] / 16.0) * 16; surface->lightmapinfo->extents[i] = (int) ceil(texmaxs[i] / 16.0) * 16 - surface->lightmapinfo->texturemins[i]; } smax = surface->lightmapinfo->extents[0] >> 4; tmax = surface->lightmapinfo->extents[1] >> 4; ssize = (surface->lightmapinfo->extents[0] >> 4) + 1; tsize = (surface->lightmapinfo->extents[1] >> 4) + 1; surface->lightmaptexture = # 2598 "../../../model_brush.c" 3 4 ((void *)0) # 2598 "../../../model_brush.c" ; surface->deluxemaptexture = r_texture_blanknormalmap; if (lightmapoffset == -1) { surface->lightmapinfo->samples = # 2602 "../../../model_brush.c" 3 4 ((void *)0) # 2602 "../../../model_brush.c" ; if (!loadmodel->brush.isq2bsp && surface->texture->name[0] == '*' && (surface->lightmapinfo->texinfo->q1flags & 1) && ssize <= 256 && tsize <= 256) { surface->lightmapinfo->samples = (unsigned char *)_Mem_Alloc(loadmodel->mempool, # 2607 "../../../model_brush.c" 3 4 ((void *)0) # 2607 "../../../model_brush.c" , ssize * tsize * 3, 16, "../../../model_brush.c", 2607); surface->lightmapinfo->styles[0] = 0; memset(surface->lightmapinfo->samples, 128, ssize * tsize * 3); } } else if (loadmodel->brush.ishlbsp || loadmodel->brush.isq2bsp) surface->lightmapinfo->samples = loadmodel->brushq1.lightdata + lightmapoffset; else { surface->lightmapinfo->samples = loadmodel->brushq1.lightdata + (lightmapoffset * 3); if (loadmodel->brushq1.nmaplightdata) surface->lightmapinfo->nmapsamples = loadmodel->brushq1.nmaplightdata + (lightmapoffset * 3); } if (!(surface->lightmapinfo->texinfo->q1flags & 1) || surface->lightmapinfo->samples) { if (ssize > 256 || tsize > 256) Host_Error("Bad surface extents"); if (lightmapsize < ssize) lightmapsize = ssize; if (lightmapsize < tsize) lightmapsize = tsize; totallightmapsamples += ssize*tsize; loadmodel->brushq1.lightmapupdateflags[surfacenum] = true; loadmodel->lit = true; } } i = lightmapsize; for (lightmapsize = 64; (lightmapsize < i) && (lightmapsize < ((gl_max_lightmapsize.integer) >= (128) ? ((gl_max_lightmapsize.integer) < ((int)vid.maxtexturesize_2d) ? (gl_max_lightmapsize.integer) : ((int)vid.maxtexturesize_2d)) : (128))) && (totallightmapsamples > lightmapsize*lightmapsize); lightmapsize*=2) ; if (cls.state != ca_dedicated) { int stainmapsize = 0; mod_alloclightmap_state_t allocState; Mod_AllocLightmap_Init(&allocState, lightmapsize, lightmapsize); for (surfacenum = 0, surface = loadmodel->data_surfaces;surfacenum < count;surfacenum++, surface++) { int i, iu, iv, lightmapx = 0, lightmapy = 0; float u, v, ubase, vbase, uscale, vscale; if (!loadmodel->brushq1.lightmapupdateflags[surfacenum]) continue; smax = surface->lightmapinfo->extents[0] >> 4; tmax = surface->lightmapinfo->extents[1] >> 4; ssize = (surface->lightmapinfo->extents[0] >> 4) + 1; tsize = (surface->lightmapinfo->extents[1] >> 4) + 1; stainmapsize += ssize * tsize * 3; if (!lightmaptexture || !Mod_AllocLightmap_Block(&allocState, ssize, tsize, &lightmapx, &lightmapy)) { if (loadmodel->texturepool == # 2679 "../../../model_brush.c" 3 4 ((void *)0) # 2679 "../../../model_brush.c" ) loadmodel->texturepool = R_AllocTexturePool(); loadmodel->brushq3.num_mergedlightmaps = lightmapnumber + 1; loadmodel->brushq3.data_lightmaps = (rtexture_t **)_Mem_Alloc(loadmodel->mempool, loadmodel->brushq3.data_lightmaps, loadmodel->brushq3.num_mergedlightmaps * sizeof(loadmodel->brushq3.data_lightmaps[0]), 16, "../../../model_brush.c", 2683); loadmodel->brushq3.data_deluxemaps = (rtexture_t **)_Mem_Alloc(loadmodel->mempool, loadmodel->brushq3.data_deluxemaps, loadmodel->brushq3.num_mergedlightmaps * sizeof(loadmodel->brushq3.data_deluxemaps[0]), 16, "../../../model_brush.c", 2684); loadmodel->brushq3.data_lightmaps[lightmapnumber] = lightmaptexture = R_LoadTexture2D(loadmodel->texturepool, va(vabuf, sizeof(vabuf), "lightmap%i", lightmapnumber), lightmapsize, lightmapsize, # 2685 "../../../model_brush.c" 3 4 ((void *)0) # 2685 "../../../model_brush.c" , TEXTYPE_BGRA, 0x00000080 | 0x00002000, -1, # 2685 "../../../model_brush.c" 3 4 ((void *)0) # 2685 "../../../model_brush.c" ); if (loadmodel->brushq1.nmaplightdata) loadmodel->brushq3.data_deluxemaps[lightmapnumber] = deluxemaptexture = R_LoadTexture2D(loadmodel->texturepool, va(vabuf, sizeof(vabuf), "deluxemap%i", lightmapnumber), lightmapsize, lightmapsize, # 2687 "../../../model_brush.c" 3 4 ((void *)0) # 2687 "../../../model_brush.c" , TEXTYPE_BGRA, 0x00000080 | 0x00002000, -1, # 2687 "../../../model_brush.c" 3 4 ((void *)0) # 2687 "../../../model_brush.c" ); lightmapnumber++; Mod_AllocLightmap_Reset(&allocState); Mod_AllocLightmap_Block(&allocState, ssize, tsize, &lightmapx, &lightmapy); } surface->lightmaptexture = lightmaptexture; surface->deluxemaptexture = deluxemaptexture; surface->lightmapinfo->lightmaporigin[0] = lightmapx; surface->lightmapinfo->lightmaporigin[1] = lightmapy; uscale = 1.0f / (float)lightmapsize; vscale = 1.0f / (float)lightmapsize; ubase = lightmapx * uscale; vbase = lightmapy * vscale; for (i = 0;i < surface->num_vertices;i++) { u = ((((((loadmodel->surfmesh.data_vertex3f + 3 * surface->num_firstvertex) + i * 3))[0]*(surface->lightmapinfo->texinfo->vecs[0])[0]+(((loadmodel->surfmesh.data_vertex3f + 3 * surface->num_firstvertex) + i * 3))[1]*(surface->lightmapinfo->texinfo->vecs[0])[1]+(((loadmodel->surfmesh.data_vertex3f + 3 * surface->num_firstvertex) + i * 3))[2]*(surface->lightmapinfo->texinfo->vecs[0])[2]) + surface->lightmapinfo->texinfo->vecs[0][3]) + 8 - surface->lightmapinfo->texturemins[0]) * (1.0 / 16.0); v = ((((((loadmodel->surfmesh.data_vertex3f + 3 * surface->num_firstvertex) + i * 3))[0]*(surface->lightmapinfo->texinfo->vecs[1])[0]+(((loadmodel->surfmesh.data_vertex3f + 3 * surface->num_firstvertex) + i * 3))[1]*(surface->lightmapinfo->texinfo->vecs[1])[1]+(((loadmodel->surfmesh.data_vertex3f + 3 * surface->num_firstvertex) + i * 3))[2]*(surface->lightmapinfo->texinfo->vecs[1])[2]) + surface->lightmapinfo->texinfo->vecs[1][3]) + 8 - surface->lightmapinfo->texturemins[1]) * (1.0 / 16.0); (loadmodel->surfmesh.data_texcoordlightmap2f + 2 * surface->num_firstvertex)[i * 2 + 0] = u * uscale + ubase; (loadmodel->surfmesh.data_texcoordlightmap2f + 2 * surface->num_firstvertex)[i * 2 + 1] = v * vscale + vbase; iu = (int) u; iv = (int) v; (loadmodel->surfmesh.data_lightmapoffsets + surface->num_firstvertex)[i] = (((iv) >= (0) ? ((iv) < (tmax) ? (iv) : (tmax)) : (0)) * ssize + ((iu) >= (0) ? ((iu) < (smax) ? (iu) : (smax)) : (0))) * 3; } } if (cl_stainmaps.integer) { unsigned char *stainsamples = # 2718 "../../../model_brush.c" 3 4 ((void *)0) # 2718 "../../../model_brush.c" ; stainsamples = (unsigned char *)_Mem_Alloc(loadmodel->mempool, # 2719 "../../../model_brush.c" 3 4 ((void *)0) # 2719 "../../../model_brush.c" , stainmapsize, 16, "../../../model_brush.c", 2719); memset(stainsamples, 255, stainmapsize); for (surfacenum = 0, surface = loadmodel->data_surfaces;surfacenum < count;surfacenum++, surface++) { if (!loadmodel->brushq1.lightmapupdateflags[surfacenum]) continue; ssize = (surface->lightmapinfo->extents[0] >> 4) + 1; tsize = (surface->lightmapinfo->extents[1] >> 4) + 1; surface->lightmapinfo->stainsamples = stainsamples; stainsamples += ssize * tsize * 3; } } } if (loadmodel->surfmesh.data_element3s) for (i = 0;i < loadmodel->surfmesh.num_triangles*3;i++) loadmodel->surfmesh.data_element3s[i] = loadmodel->surfmesh.data_element3i[i]; } static void Mod_Q1BSP_LoadNodes_RecursiveSetParent(mnode_t *node, mnode_t *parent) { node->parent = parent; if (node->plane) { Mod_Q1BSP_LoadNodes_RecursiveSetParent(node->children[0], node); Mod_Q1BSP_LoadNodes_RecursiveSetParent(node->children[1], node); node->combinedsupercontents = node->children[0]->combinedsupercontents | node->children[1]->combinedsupercontents; } else { int j; mleaf_t *leaf = (mleaf_t *)node; leaf->combinedsupercontents = 0; for (j = 0;j < leaf->numleafbrushes;j++) leaf->combinedsupercontents |= loadmodel->brush.data_brushes[leaf->firstleafbrush[j]].texture->supercontents; for (j = 0;j < leaf->numleafsurfaces;j++) { msurface_t *surface = loadmodel->data_surfaces + leaf->firstleafsurface[j]; if (surface->num_collisiontriangles) { leaf->containscollisionsurfaces = true; leaf->combinedsupercontents |= surface->texture->supercontents; } } } } static void Mod_Q1BSP_LoadNodes(sizebuf_t *sb) { int i, j, count, p, child[2]; mnode_t *out; int structsize = loadmodel->brush.isbsp2rmqe ? 32 : (loadmodel->brush.isbsp2 ? 44 : 24); if (sb->cursize % structsize) Host_Error("Mod_Q1BSP_LoadNodes: funny lump size in %s",loadmodel->name); count = sb->cursize / structsize; if (count == 0) Host_Error("Mod_Q1BSP_LoadNodes: missing BSP tree in %s",loadmodel->name); out = (mnode_t *)_Mem_Alloc(loadmodel->mempool, # 2788 "../../../model_brush.c" 3 4 ((void *)0) # 2788 "../../../model_brush.c" , count*sizeof(*out), 16, "../../../model_brush.c", 2788); loadmodel->brush.data_nodes = out; loadmodel->brush.num_nodes = count; for ( i=0 ; iplane = loadmodel->brush.data_planes + p; if (loadmodel->brush.isbsp2rmqe) { child[0] = MSG_ReadLittleLong(sb); child[1] = MSG_ReadLittleLong(sb); out->mins[0] = MSG_ReadLittleShort(sb); out->mins[1] = MSG_ReadLittleShort(sb); out->mins[2] = MSG_ReadLittleShort(sb); out->maxs[0] = MSG_ReadLittleShort(sb); out->maxs[1] = MSG_ReadLittleShort(sb); out->maxs[2] = MSG_ReadLittleShort(sb); out->firstsurface = MSG_ReadLittleLong(sb); out->numsurfaces = MSG_ReadLittleLong(sb); } else if (loadmodel->brush.isbsp2) { child[0] = MSG_ReadLittleLong(sb); child[1] = MSG_ReadLittleLong(sb); out->mins[0] = MSG_ReadLittleFloat(sb); out->mins[1] = MSG_ReadLittleFloat(sb); out->mins[2] = MSG_ReadLittleFloat(sb); out->maxs[0] = MSG_ReadLittleFloat(sb); out->maxs[1] = MSG_ReadLittleFloat(sb); out->maxs[2] = MSG_ReadLittleFloat(sb); out->firstsurface = MSG_ReadLittleLong(sb); out->numsurfaces = MSG_ReadLittleLong(sb); } else { child[0] = (unsigned short)MSG_ReadLittleShort(sb); child[1] = (unsigned short)MSG_ReadLittleShort(sb); if (child[0] >= count) child[0] -= 65536; if (child[1] >= count) child[1] -= 65536; out->mins[0] = MSG_ReadLittleShort(sb); out->mins[1] = MSG_ReadLittleShort(sb); out->mins[2] = MSG_ReadLittleShort(sb); out->maxs[0] = MSG_ReadLittleShort(sb); out->maxs[1] = MSG_ReadLittleShort(sb); out->maxs[2] = MSG_ReadLittleShort(sb); out->firstsurface = (unsigned short)MSG_ReadLittleShort(sb); out->numsurfaces = (unsigned short)MSG_ReadLittleShort(sb); } for (j=0 ; j<2 ; j++) { p = child[j]; if (p >= 0) { if (p < loadmodel->brush.num_nodes) out->children[j] = loadmodel->brush.data_nodes + p; else { Con_Printf("Mod_Q1BSP_LoadNodes: invalid node index %i (file has only %i nodes)\n", p, loadmodel->brush.num_nodes); out->children[j] = (mnode_t *)loadmodel->brush.data_leafs; } } else { p = -(p+1); if (p < loadmodel->brush.num_leafs) out->children[j] = (mnode_t *)(loadmodel->brush.data_leafs + p); else { Con_Printf("Mod_Q1BSP_LoadNodes: invalid leaf index %i (file has only %i leafs)\n", p, loadmodel->brush.num_leafs); out->children[j] = (mnode_t *)loadmodel->brush.data_leafs; } } } } Mod_Q1BSP_LoadNodes_RecursiveSetParent(loadmodel->brush.data_nodes, # 2878 "../../../model_brush.c" 3 4 ((void *)0) # 2878 "../../../model_brush.c" ); } static void Mod_Q1BSP_LoadLeafs(sizebuf_t *sb) { mleaf_t *out; int i, j, count, p, firstmarksurface, nummarksurfaces; int structsize = loadmodel->brush.isbsp2rmqe ? 32 : (loadmodel->brush.isbsp2 ? 44 : 28); if (sb->cursize % structsize) Host_Error("Mod_Q1BSP_LoadLeafs: funny lump size in %s",loadmodel->name); count = sb->cursize / structsize; out = (mleaf_t *)_Mem_Alloc(loadmodel->mempool, # 2890 "../../../model_brush.c" 3 4 ((void *)0) # 2890 "../../../model_brush.c" , count*sizeof(*out), 16, "../../../model_brush.c", 2890); loadmodel->brush.data_leafs = out; loadmodel->brush.num_leafs = count; loadmodel->brush.num_pvsclusters = loadmodel->brushq1.submodels[0].visleafs; loadmodel->brush.num_pvsclusterbytes = (loadmodel->brush.num_pvsclusters+7)>>3; loadmodel->brush.data_pvsclusters = (unsigned char *)_Mem_Alloc(loadmodel->mempool, # 2897 "../../../model_brush.c" 3 4 ((void *)0) # 2897 "../../../model_brush.c" , loadmodel->brush.num_pvsclusters * loadmodel->brush.num_pvsclusterbytes, 16, "../../../model_brush.c", 2897); memset(loadmodel->brush.data_pvsclusters, 0xFF, loadmodel->brush.num_pvsclusters * loadmodel->brush.num_pvsclusterbytes); for ( i=0 ; icontents = MSG_ReadLittleLong(sb); out->clusterindex = i - 1; if (out->clusterindex >= loadmodel->brush.num_pvsclusters) out->clusterindex = -1; p = MSG_ReadLittleLong(sb); if (p >= 0 && out->clusterindex >= 0) { if (p >= loadmodel->brushq1.num_compressedpvs) Con_Print("Mod_Q1BSP_LoadLeafs: invalid visofs\n"); else Mod_Q1BSP_DecompressVis(loadmodel->brushq1.data_compressedpvs + p, loadmodel->brushq1.data_compressedpvs + loadmodel->brushq1.num_compressedpvs, loadmodel->brush.data_pvsclusters + out->clusterindex * loadmodel->brush.num_pvsclusterbytes, loadmodel->brush.data_pvsclusters + (out->clusterindex + 1) * loadmodel->brush.num_pvsclusterbytes); } if (loadmodel->brush.isbsp2rmqe) { out->mins[0] = MSG_ReadLittleShort(sb); out->mins[1] = MSG_ReadLittleShort(sb); out->mins[2] = MSG_ReadLittleShort(sb); out->maxs[0] = MSG_ReadLittleShort(sb); out->maxs[1] = MSG_ReadLittleShort(sb); out->maxs[2] = MSG_ReadLittleShort(sb); firstmarksurface = MSG_ReadLittleLong(sb); nummarksurfaces = MSG_ReadLittleLong(sb); } else if (loadmodel->brush.isbsp2) { out->mins[0] = MSG_ReadLittleFloat(sb); out->mins[1] = MSG_ReadLittleFloat(sb); out->mins[2] = MSG_ReadLittleFloat(sb); out->maxs[0] = MSG_ReadLittleFloat(sb); out->maxs[1] = MSG_ReadLittleFloat(sb); out->maxs[2] = MSG_ReadLittleFloat(sb); firstmarksurface = MSG_ReadLittleLong(sb); nummarksurfaces = MSG_ReadLittleLong(sb); } else { out->mins[0] = MSG_ReadLittleShort(sb); out->mins[1] = MSG_ReadLittleShort(sb); out->mins[2] = MSG_ReadLittleShort(sb); out->maxs[0] = MSG_ReadLittleShort(sb); out->maxs[1] = MSG_ReadLittleShort(sb); out->maxs[2] = MSG_ReadLittleShort(sb); firstmarksurface = (unsigned short)MSG_ReadLittleShort(sb); nummarksurfaces = (unsigned short)MSG_ReadLittleShort(sb); } if (firstmarksurface >= 0 && firstmarksurface + nummarksurfaces <= loadmodel->brush.num_leafsurfaces) { out->firstleafsurface = loadmodel->brush.data_leafsurfaces + firstmarksurface; out->numleafsurfaces = nummarksurfaces; } else { Con_Printf("Mod_Q1BSP_LoadLeafs: invalid leafsurface range %i:%i outside range %i:%i\n", firstmarksurface, firstmarksurface+nummarksurfaces, 0, loadmodel->brush.num_leafsurfaces); out->firstleafsurface = # 2964 "../../../model_brush.c" 3 4 ((void *)0) # 2964 "../../../model_brush.c" ; out->numleafsurfaces = 0; } for (j = 0;j < 4;j++) out->ambient_sound_level[j] = ((sb)->readcount >= (sb)->cursize ? ((sb)->badread = true, -1) : (unsigned char)(sb)->data[(sb)->readcount++]); } } static qboolean Mod_Q1BSP_CheckWaterAlphaSupport(void) { int i, j; mleaf_t *leaf; const unsigned char *pvs; if (!loadmodel->brush.data_pvsclusters) return true; for (i = 0, leaf = loadmodel->brush.data_leafs;i < loadmodel->brush.num_leafs;i++, leaf++) { if ((leaf->contents == -3 || leaf->contents == -4) && leaf->clusterindex >= 0) { pvs = loadmodel->brush.data_pvsclusters + leaf->clusterindex * loadmodel->brush.num_pvsclusterbytes; for (j = 0;j < loadmodel->brush.num_leafs;j++) if (((loadmodel->brush.data_leafs[j].clusterindex) >= 0 ? (unsigned char) ((pvs)[(loadmodel->brush.data_leafs[j].clusterindex) >> 3] & (1 << ((loadmodel->brush.data_leafs[j].clusterindex) & 7))) : (unsigned char) false) && loadmodel->brush.data_leafs[j].contents == -1) return true; } } return false; } static void Mod_Q1BSP_LoadClipnodes(sizebuf_t *sb, hullinfo_t *hullinfo) { mclipnode_t *out; int i, count; hull_t *hull; int structsize = loadmodel->brush.isbsp2 ? 12 : 8; if (sb->cursize % structsize) Host_Error("Mod_Q1BSP_LoadClipnodes: funny lump size in %s",loadmodel->name); count = sb->cursize / structsize; out = (mclipnode_t *)_Mem_Alloc(loadmodel->mempool, # 3006 "../../../model_brush.c" 3 4 ((void *)0) # 3006 "../../../model_brush.c" , count*sizeof(*out), 16, "../../../model_brush.c", 3006); loadmodel->brushq1.clipnodes = out; loadmodel->brushq1.numclipnodes = count; for (i = 1; i < 16; i++) { hull = &loadmodel->brushq1.hulls[i]; hull->clipnodes = out; hull->firstclipnode = 0; hull->lastclipnode = count-1; hull->planes = loadmodel->brush.data_planes; hull->clip_mins[0] = hullinfo->hullsizes[i][0][0]; hull->clip_mins[1] = hullinfo->hullsizes[i][0][1]; hull->clip_mins[2] = hullinfo->hullsizes[i][0][2]; hull->clip_maxs[0] = hullinfo->hullsizes[i][1][0]; hull->clip_maxs[1] = hullinfo->hullsizes[i][1][1]; hull->clip_maxs[2] = hullinfo->hullsizes[i][1][2]; ((hull->clip_size)[0]=(hull->clip_maxs)[0]-(hull->clip_mins)[0],(hull->clip_size)[1]=(hull->clip_maxs)[1]-(hull->clip_mins)[1],(hull->clip_size)[2]=(hull->clip_maxs)[2]-(hull->clip_mins)[2]); } for (i=0 ; iplanenum = MSG_ReadLittleLong(sb); if (out->planenum < 0 || out->planenum >= loadmodel->brush.num_planes) Host_Error("%s: Corrupt clipping hull(out of range planenum)", loadmodel->name); if (loadmodel->brush.isbsp2) { out->children[0] = MSG_ReadLittleLong(sb); out->children[1] = MSG_ReadLittleLong(sb); if (out->children[0] >= count) Host_Error("%s: Corrupt clipping hull (invalid child index)", loadmodel->name); if (out->children[1] >= count) Host_Error("%s: Corrupt clipping hull (invalid child index)", loadmodel->name); } else { out->children[0] = (unsigned short)MSG_ReadLittleShort(sb); out->children[1] = (unsigned short)MSG_ReadLittleShort(sb); if (out->children[0] >= count) out->children[0] -= 65536; if (out->children[1] >= count) out->children[1] -= 65536; } } } static void Mod_Q1BSP_MakeHull0(void) { mnode_t *in; mclipnode_t *out; int i; hull_t *hull; hull = &loadmodel->brushq1.hulls[0]; in = loadmodel->brush.data_nodes; out = (mclipnode_t *)_Mem_Alloc(loadmodel->mempool, # 3065 "../../../model_brush.c" 3 4 ((void *)0) # 3065 "../../../model_brush.c" , loadmodel->brush.num_nodes * sizeof(*out), 16, "../../../model_brush.c", 3065); hull->clipnodes = out; hull->firstclipnode = 0; hull->lastclipnode = loadmodel->brush.num_nodes - 1; hull->planes = loadmodel->brush.data_planes; for (i = 0;i < loadmodel->brush.num_nodes;i++, out++, in++) { out->planenum = in->plane - loadmodel->brush.data_planes; out->children[0] = in->children[0]->plane ? in->children[0] - loadmodel->brush.data_nodes : ((mleaf_t *)in->children[0])->contents; out->children[1] = in->children[1]->plane ? in->children[1] - loadmodel->brush.data_nodes : ((mleaf_t *)in->children[1])->contents; } } static void Mod_Q1BSP_LoadLeaffaces(sizebuf_t *sb) { int i, j; int structsize = loadmodel->brush.isbsp2 ? 4 : 2; if (sb->cursize % structsize) Host_Error("Mod_Q1BSP_LoadLeaffaces: funny lump size in %s",loadmodel->name); loadmodel->brush.num_leafsurfaces = sb->cursize / structsize; loadmodel->brush.data_leafsurfaces = (int *)_Mem_Alloc(loadmodel->mempool, # 3088 "../../../model_brush.c" 3 4 ((void *)0) # 3088 "../../../model_brush.c" , loadmodel->brush.num_leafsurfaces * sizeof(int), 16, "../../../model_brush.c", 3088); if (loadmodel->brush.isbsp2) { for (i = 0;i < loadmodel->brush.num_leafsurfaces;i++) { j = MSG_ReadLittleLong(sb); if (j < 0 || j >= loadmodel->num_surfaces) Host_Error("Mod_Q1BSP_LoadLeaffaces: bad surface number"); loadmodel->brush.data_leafsurfaces[i] = j; } } else { for (i = 0;i < loadmodel->brush.num_leafsurfaces;i++) { j = (unsigned short) MSG_ReadLittleShort(sb); if (j >= loadmodel->num_surfaces) Host_Error("Mod_Q1BSP_LoadLeaffaces: bad surface number"); loadmodel->brush.data_leafsurfaces[i] = j; } } } static void Mod_Q1BSP_LoadSurfedges(sizebuf_t *sb) { int i; int structsize = 4; if (sb->cursize % structsize) Host_Error("Mod_Q1BSP_LoadSurfedges: funny lump size in %s",loadmodel->name); loadmodel->brushq1.numsurfedges = sb->cursize / structsize; loadmodel->brushq1.surfedges = (int *)_Mem_Alloc(loadmodel->mempool, # 3120 "../../../model_brush.c" 3 4 ((void *)0) # 3120 "../../../model_brush.c" , loadmodel->brushq1.numsurfedges * sizeof(int), 16, "../../../model_brush.c", 3120); for (i = 0;i < loadmodel->brushq1.numsurfedges;i++) loadmodel->brushq1.surfedges[i] = MSG_ReadLittleLong(sb); } static void Mod_Q1BSP_LoadPlanes(sizebuf_t *sb) { int i; mplane_t *out; int structsize = 20; if (sb->cursize % structsize) Host_Error("Mod_Q1BSP_LoadPlanes: funny lump size in %s", loadmodel->name); loadmodel->brush.num_planes = sb->cursize / structsize; loadmodel->brush.data_planes = out = (mplane_t *)_Mem_Alloc(loadmodel->mempool, # 3136 "../../../model_brush.c" 3 4 ((void *)0) # 3136 "../../../model_brush.c" , loadmodel->brush.num_planes * sizeof(*out), 16, "../../../model_brush.c", 3136); for (i = 0;i < loadmodel->brush.num_planes;i++, out++) { out->normal[0] = MSG_ReadLittleFloat(sb); out->normal[1] = MSG_ReadLittleFloat(sb); out->normal[2] = MSG_ReadLittleFloat(sb); out->dist = MSG_ReadLittleFloat(sb); MSG_ReadLittleLong(sb); PlaneClassify(out); } } static void Mod_Q1BSP_LoadMapBrushes(void) { # 3242 "../../../model_brush.c" } typedef struct portal_s { mplane_t plane; mnode_t *nodes[2]; struct portal_s *next[2]; int numpoints; double points[3*64]; struct portal_s *chain; } portal_t; static memexpandablearray_t portalarray; static void Mod_Q1BSP_RecursiveRecalcNodeBBox(mnode_t *node) { if (!node->plane) return; Mod_Q1BSP_RecursiveRecalcNodeBBox(node->children[0]); Mod_Q1BSP_RecursiveRecalcNodeBBox(node->children[1]); node->mins[0] = ((node->children[0]->mins[0]) < (node->children[1]->mins[0]) ? (node->children[0]->mins[0]) : (node->children[1]->mins[0])); node->mins[1] = ((node->children[0]->mins[1]) < (node->children[1]->mins[1]) ? (node->children[0]->mins[1]) : (node->children[1]->mins[1])); node->mins[2] = ((node->children[0]->mins[2]) < (node->children[1]->mins[2]) ? (node->children[0]->mins[2]) : (node->children[1]->mins[2])); node->maxs[0] = ((node->children[0]->maxs[0]) > (node->children[1]->maxs[0]) ? (node->children[0]->maxs[0]) : (node->children[1]->maxs[0])); node->maxs[1] = ((node->children[0]->maxs[1]) > (node->children[1]->maxs[1]) ? (node->children[0]->maxs[1]) : (node->children[1]->maxs[1])); node->maxs[2] = ((node->children[0]->maxs[2]) > (node->children[1]->maxs[2]) ? (node->children[0]->maxs[2]) : (node->children[1]->maxs[2])); } static void Mod_Q1BSP_FinalizePortals(void) { int i, j, numportals, numpoints, portalindex, portalrange = (int)Mem_ExpandableArray_IndexRange(&portalarray); portal_t *p; mportal_t *portal; mvertex_t *point; mleaf_t *leaf, *endleaf; leaf = loadmodel->brush.data_leafs; endleaf = leaf + loadmodel->brush.num_leafs; if (mod_recalculatenodeboxes.integer) { for (;leaf < endleaf;leaf++) { ((leaf->mins)[0]=(2000000000),(leaf->mins)[1]=(2000000000),(leaf->mins)[2]=(2000000000)); ((leaf->maxs)[0]=(-2000000000),(leaf->maxs)[1]=(-2000000000),(leaf->maxs)[2]=(-2000000000)); } } numportals = 0; numpoints = 0; for (portalindex = 0;portalindex < portalrange;portalindex++) { p = (portal_t*)Mem_ExpandableArray_RecordAtIndex(&portalarray, portalindex); if (!p) continue; if (p->numpoints >= 3 && p->nodes[0] != p->nodes[1] && ((mleaf_t *)p->nodes[0])->clusterindex >= 0 && ((mleaf_t *)p->nodes[1])->clusterindex >= 0) { numportals += 2; numpoints += p->numpoints * 2; } } loadmodel->brush.data_portals = (mportal_t *)_Mem_Alloc(loadmodel->mempool, # 3314 "../../../model_brush.c" 3 4 ((void *)0) # 3314 "../../../model_brush.c" , numportals * sizeof(mportal_t) + numpoints * sizeof(mvertex_t), 16, "../../../model_brush.c", 3314); loadmodel->brush.num_portals = numportals; loadmodel->brush.data_portalpoints = (mvertex_t *)((unsigned char *) loadmodel->brush.data_portals + numportals * sizeof(mportal_t)); loadmodel->brush.num_portalpoints = numpoints; for (i = 0;i < loadmodel->brush.num_leafs;i++) loadmodel->brush.data_leafs[i].portals = # 3320 "../../../model_brush.c" 3 4 ((void *)0) # 3320 "../../../model_brush.c" ; portal = loadmodel->brush.data_portals; point = loadmodel->brush.data_portalpoints; for (portalindex = 0;portalindex < portalrange;portalindex++) { p = (portal_t*)Mem_ExpandableArray_RecordAtIndex(&portalarray, portalindex); if (!p) continue; if (p->numpoints >= 3 && p->nodes[0] != p->nodes[1]) { if (((mleaf_t *)p->nodes[0])->clusterindex >= 0 && ((mleaf_t *)p->nodes[1])->clusterindex >= 0) { portal->points = point; portal->numpoints = p->numpoints; portal->plane.dist = p->plane.dist; ((portal->plane.normal)[0]=(p->plane.normal)[0],(portal->plane.normal)[1]=(p->plane.normal)[1],(portal->plane.normal)[2]=(p->plane.normal)[2]); portal->here = (mleaf_t *)p->nodes[1]; portal->past = (mleaf_t *)p->nodes[0]; for (j = 0;j < portal->numpoints;j++) { ((point->position)[0]=(p->points + j*3)[0],(point->position)[1]=(p->points + j*3)[1],(point->position)[2]=(p->points + j*3)[2]); point++; } BoxFromPoints(portal->mins, portal->maxs, portal->numpoints, portal->points->position); PlaneClassify(&portal->plane); portal->next = portal->here->portals; portal->here->portals = portal; portal++; portal->points = point; portal->numpoints = p->numpoints; portal->plane.dist = -p->plane.dist; ((portal->plane.normal)[0]=-((p->plane.normal)[0]),(portal->plane.normal)[1]=-((p->plane.normal)[1]),(portal->plane.normal)[2]=-((p->plane.normal)[2])); portal->here = (mleaf_t *)p->nodes[0]; portal->past = (mleaf_t *)p->nodes[1]; for (j = portal->numpoints - 1;j >= 0;j--) { ((point->position)[0]=(p->points + j*3)[0],(point->position)[1]=(p->points + j*3)[1],(point->position)[2]=(p->points + j*3)[2]); point++; } BoxFromPoints(portal->mins, portal->maxs, portal->numpoints, portal->points->position); PlaneClassify(&portal->plane); portal->next = portal->here->portals; portal->here->portals = portal; portal++; } if (mod_recalculatenodeboxes.integer) { for (i = 0;i < 2;i++) { leaf = (mleaf_t *)p->nodes[i]; for (j = 0;j < p->numpoints;j++) { if (leaf->mins[0] > p->points[j*3+0]) leaf->mins[0] = p->points[j*3+0]; if (leaf->mins[1] > p->points[j*3+1]) leaf->mins[1] = p->points[j*3+1]; if (leaf->mins[2] > p->points[j*3+2]) leaf->mins[2] = p->points[j*3+2]; if (leaf->maxs[0] < p->points[j*3+0]) leaf->maxs[0] = p->points[j*3+0]; if (leaf->maxs[1] < p->points[j*3+1]) leaf->maxs[1] = p->points[j*3+1]; if (leaf->maxs[2] < p->points[j*3+2]) leaf->maxs[2] = p->points[j*3+2]; } } } } } if (mod_recalculatenodeboxes.integer) Mod_Q1BSP_RecursiveRecalcNodeBBox(loadmodel->brush.data_nodes + loadmodel->brushq1.hulls[0].firstclipnode); } static void AddPortalToNodes(portal_t *p, mnode_t *front, mnode_t *back) { if (!front) Host_Error("AddPortalToNodes: NULL front node"); if (!back) Host_Error("AddPortalToNodes: NULL back node"); if (p->nodes[0] || p->nodes[1]) Host_Error("AddPortalToNodes: already included"); p->nodes[0] = front; p->next[0] = (portal_t *)front->portals; front->portals = (mportal_t *)p; p->nodes[1] = back; p->next[1] = (portal_t *)back->portals; back->portals = (mportal_t *)p; } static void RemovePortalFromNodes(portal_t *portal) { int i; mnode_t *node; void **portalpointer; portal_t *t; for (i = 0;i < 2;i++) { node = portal->nodes[i]; portalpointer = (void **) &node->portals; while (1) { t = (portal_t *)*portalpointer; if (!t) Host_Error("RemovePortalFromNodes: portal not in leaf"); if (t == portal) { if (portal->nodes[0] == node) { *portalpointer = portal->next[0]; portal->nodes[0] = # 3456 "../../../model_brush.c" 3 4 ((void *)0) # 3456 "../../../model_brush.c" ; } else if (portal->nodes[1] == node) { *portalpointer = portal->next[1]; portal->nodes[1] = # 3461 "../../../model_brush.c" 3 4 ((void *)0) # 3461 "../../../model_brush.c" ; } else Host_Error("RemovePortalFromNodes: portal not bounding leaf"); break; } if (t->nodes[0] == node) portalpointer = (void **) &t->next[0]; else if (t->nodes[1] == node) portalpointer = (void **) &t->next[1]; else Host_Error("RemovePortalFromNodes: portal not bounding leaf"); } } } static double *portalpointsbuffer; static int portalpointsbufferoffset; static int portalpointsbuffersize; static void Mod_Q1BSP_RecursiveNodePortals(mnode_t *node) { int i, side; mnode_t *front, *back, *other_node; mplane_t clipplane, *plane; portal_t *portal, *nextportal, *nodeportal, *splitportal, *temp; int numfrontpoints, numbackpoints; double *frontpoints, *backpoints; if (!node->plane) return; if (portalpointsbuffersize < portalpointsbufferoffset + 6*64) { portalpointsbuffersize = portalpointsbufferoffset * 2; portalpointsbuffer = (double *)_Mem_Alloc(loadmodel->mempool, portalpointsbuffer, portalpointsbuffersize * sizeof(*portalpointsbuffer), 16, "../../../model_brush.c", 3499); } frontpoints = portalpointsbuffer + portalpointsbufferoffset; portalpointsbufferoffset += 3*64; backpoints = portalpointsbuffer + portalpointsbufferoffset; portalpointsbufferoffset += 3*64; plane = node->plane; front = node->children[0]; back = node->children[1]; if (front == back) Host_Error("Mod_Q1BSP_RecursiveNodePortals: corrupt node hierarchy"); nodeportal = (portal_t *)Mem_ExpandableArray_AllocRecord(&portalarray); nodeportal->plane = *plane; PolygonD_QuadForPlane(nodeportal->points, nodeportal->plane.normal[0], nodeportal->plane.normal[1], nodeportal->plane.normal[2], nodeportal->plane.dist, 1024.0*1024.0*1024.0); nodeportal->numpoints = 4; for (portal = (portal_t *)node->portals;portal;portal = portal->next[side]) { clipplane = portal->plane; if (portal->nodes[0] == portal->nodes[1]) Host_Error("Mod_Q1BSP_RecursiveNodePortals: portal has same node on both sides(1)"); if (portal->nodes[0] == node) side = 0; else if (portal->nodes[1] == node) { clipplane.dist = -clipplane.dist; ((clipplane.normal)[0]=-((clipplane.normal)[0]),(clipplane.normal)[1]=-((clipplane.normal)[1]),(clipplane.normal)[2]=-((clipplane.normal)[2])); side = 1; } else { Host_Error("Mod_Q1BSP_RecursiveNodePortals: mislinked portal"); side = 0; } for (i = 0;i < nodeportal->numpoints*3;i++) frontpoints[i] = nodeportal->points[i]; PolygonD_Divide(nodeportal->numpoints, frontpoints, clipplane.normal[0], clipplane.normal[1], clipplane.normal[2], clipplane.dist, (1.0 / 32.0), 64, nodeportal->points, &nodeportal->numpoints, 0, # 3543 "../../../model_brush.c" 3 4 ((void *)0) # 3543 "../../../model_brush.c" , # 3543 "../../../model_brush.c" 3 4 ((void *)0) # 3543 "../../../model_brush.c" , # 3543 "../../../model_brush.c" 3 4 ((void *)0) # 3543 "../../../model_brush.c" ); if (nodeportal->numpoints <= 0 || nodeportal->numpoints >= 64) break; } if (nodeportal->numpoints < 3) { Con_Print("Mod_Q1BSP_RecursiveNodePortals: WARNING: new portal was clipped away\n"); nodeportal->numpoints = 0; } else if (nodeportal->numpoints >= 64) { Con_Print("Mod_Q1BSP_RecursiveNodePortals: WARNING: new portal has too many points\n"); nodeportal->numpoints = 0; } AddPortalToNodes(nodeportal, front, back); for (portal = (portal_t *)node->portals;portal;portal = nextportal) { if (portal->nodes[0] == portal->nodes[1]) Host_Error("Mod_Q1BSP_RecursiveNodePortals: portal has same node on both sides(2)"); if (portal->nodes[0] == node) side = 0; else if (portal->nodes[1] == node) side = 1; else { Host_Error("Mod_Q1BSP_RecursiveNodePortals: mislinked portal"); side = 0; } nextportal = portal->next[side]; if (!portal->numpoints) continue; other_node = portal->nodes[!side]; RemovePortalFromNodes(portal); PolygonD_Divide(portal->numpoints, portal->points, plane->normal[0], plane->normal[1], plane->normal[2], plane->dist, (1.0 / 32.0), 64, frontpoints, &numfrontpoints, 64, backpoints, &numbackpoints, # 3584 "../../../model_brush.c" 3 4 ((void *)0) # 3584 "../../../model_brush.c" ); if (!numfrontpoints) { if (side == 0) AddPortalToNodes(portal, back, other_node); else AddPortalToNodes(portal, other_node, back); continue; } if (!numbackpoints) { if (side == 0) AddPortalToNodes(portal, front, other_node); else AddPortalToNodes(portal, other_node, front); continue; } splitportal = (portal_t *)Mem_ExpandableArray_AllocRecord(&portalarray); temp = splitportal->chain; *splitportal = *portal; splitportal->chain = temp; for (i = 0;i < numbackpoints*3;i++) splitportal->points[i] = backpoints[i]; splitportal->numpoints = numbackpoints; for (i = 0;i < numfrontpoints*3;i++) portal->points[i] = frontpoints[i]; portal->numpoints = numfrontpoints; if (side == 0) { AddPortalToNodes(portal, front, other_node); AddPortalToNodes(splitportal, back, other_node); } else { AddPortalToNodes(portal, other_node, front); AddPortalToNodes(splitportal, other_node, back); } } Mod_Q1BSP_RecursiveNodePortals(front); Mod_Q1BSP_RecursiveNodePortals(back); portalpointsbufferoffset -= 6*64; } static void Mod_Q1BSP_MakePortals(void) { Mem_ExpandableArray_NewArray(&portalarray, loadmodel->mempool, sizeof(portal_t), 1020*1024/sizeof(portal_t)); portalpointsbufferoffset = 0; portalpointsbuffersize = 6*64*128; portalpointsbuffer = (double *)_Mem_Alloc(loadmodel->mempool, # 3638 "../../../model_brush.c" 3 4 ((void *)0) # 3638 "../../../model_brush.c" , portalpointsbuffersize * sizeof(*portalpointsbuffer), 16, "../../../model_brush.c", 3638); Mod_Q1BSP_RecursiveNodePortals(loadmodel->brush.data_nodes + loadmodel->brushq1.hulls[0].firstclipnode); _Mem_Free(portalpointsbuffer, "../../../model_brush.c", 3640); portalpointsbuffer = # 3641 "../../../model_brush.c" 3 4 ((void *)0) # 3641 "../../../model_brush.c" ; portalpointsbufferoffset = 0; portalpointsbuffersize = 0; Mod_Q1BSP_FinalizePortals(); Mem_ExpandableArray_FreeArray(&portalarray); } static unsigned char *Mod_Q1BSP_GetPVS(dp_model_t *model, const vec3_t p) { mnode_t *node; node = model->brush.data_nodes + model->brushq1.hulls[0].firstclipnode; while (node->plane) node = node->children[(node->plane->type < 3 ? p[node->plane->type] : ((p)[0]*(node->plane->normal)[0]+(p)[1]*(node->plane->normal)[1]+(p)[2]*(node->plane->normal)[2])) < node->plane->dist]; if (((mleaf_t *)node)->clusterindex >= 0) return model->brush.data_pvsclusters + ((mleaf_t *)node)->clusterindex * model->brush.num_pvsclusterbytes; else return # 3659 "../../../model_brush.c" 3 4 ((void *)0) # 3659 "../../../model_brush.c" ; } static void Mod_Q1BSP_FatPVS_RecursiveBSPNode(dp_model_t *model, const vec3_t org, vec_t radius, unsigned char *pvsbuffer, int pvsbytes, mnode_t *node) { while (node->plane) { float d = (((node->plane)->type < 3 ? (org)[(node->plane)->type] : (((org))[0]*((node->plane)->normal)[0]+((org))[1]*((node->plane)->normal)[1]+((org))[2]*((node->plane)->normal)[2])) - (node->plane)->dist); if (d > radius) node = node->children[0]; else if (d < -radius) node = node->children[1]; else { Mod_Q1BSP_FatPVS_RecursiveBSPNode(model, org, radius, pvsbuffer, pvsbytes, node->children[0]); node = node->children[1]; } } if (((mleaf_t *)node)->clusterindex >= 0) { int i; unsigned char *pvs = model->brush.data_pvsclusters + ((mleaf_t *)node)->clusterindex * model->brush.num_pvsclusterbytes; for (i = 0;i < pvsbytes;i++) pvsbuffer[i] |= pvs[i]; } } static int Mod_Q1BSP_FatPVS(dp_model_t *model, const vec3_t org, vec_t radius, unsigned char *pvsbuffer, int pvsbufferlength, qboolean merge) { int bytes = model->brush.num_pvsclusterbytes; bytes = ((bytes) < (pvsbufferlength) ? (bytes) : (pvsbufferlength)); if (r_novis.integer || r_trippy.integer || !model->brush.num_pvsclusters || !Mod_Q1BSP_GetPVS(model, org)) { memset(pvsbuffer, 0xFF, bytes); return bytes; } if (!merge) memset(pvsbuffer, 0, bytes); Mod_Q1BSP_FatPVS_RecursiveBSPNode(model, org, radius, pvsbuffer, bytes, model->brush.data_nodes + model->brushq1.hulls[0].firstclipnode); return bytes; } static void Mod_Q1BSP_RoundUpToHullSize(dp_model_t *cmodel, const vec3_t inmins, const vec3_t inmaxs, vec3_t outmins, vec3_t outmaxs) { vec3_t size; const hull_t *hull; ((size)[0]=(inmaxs)[0]-(inmins)[0],(size)[1]=(inmaxs)[1]-(inmins)[1],(size)[2]=(inmaxs)[2]-(inmins)[2]); if (cmodel->brush.ishlbsp) { if (size[0] < 3) hull = &cmodel->brushq1.hulls[0]; else if (size[0] <= 32) { if (size[2] < 54) hull = &cmodel->brushq1.hulls[3]; else hull = &cmodel->brushq1.hulls[1]; } else hull = &cmodel->brushq1.hulls[2]; } else { if (size[0] < 3) hull = &cmodel->brushq1.hulls[0]; else if (size[0] <= 32) hull = &cmodel->brushq1.hulls[1]; else hull = &cmodel->brushq1.hulls[2]; } ((outmins)[0]=(inmins)[0],(outmins)[1]=(inmins)[1],(outmins)[2]=(inmins)[2]); ((outmaxs)[0]=(inmins)[0]+(hull->clip_size)[0],(outmaxs)[1]=(inmins)[1]+(hull->clip_size)[1],(outmaxs)[2]=(inmins)[2]+(hull->clip_size)[2]); } static int Mod_Q1BSP_CreateShadowMesh(dp_model_t *mod) { int j; int numshadowmeshtriangles = 0; msurface_t *surface; if (cls.state == ca_dedicated) return 0; for (j = 0, surface = mod->data_surfaces;j < mod->num_surfaces;j++, surface++) { surface->num_firstshadowmeshtriangle = numshadowmeshtriangles; numshadowmeshtriangles += surface->num_triangles; } mod->brush.shadowmesh = Mod_ShadowMesh_Begin(mod->mempool, numshadowmeshtriangles * 3, numshadowmeshtriangles, # 3752 "../../../model_brush.c" 3 4 ((void *)0) # 3752 "../../../model_brush.c" , # 3752 "../../../model_brush.c" 3 4 ((void *)0) # 3752 "../../../model_brush.c" , # 3752 "../../../model_brush.c" 3 4 ((void *)0) # 3752 "../../../model_brush.c" , false, false, true); for (j = 0, surface = mod->data_surfaces;j < mod->num_surfaces;j++, surface++) if (surface->num_triangles > 0) Mod_ShadowMesh_AddMesh(mod->mempool, mod->brush.shadowmesh, # 3755 "../../../model_brush.c" 3 4 ((void *)0) # 3755 "../../../model_brush.c" , # 3755 "../../../model_brush.c" 3 4 ((void *)0) # 3755 "../../../model_brush.c" , # 3755 "../../../model_brush.c" 3 4 ((void *)0) # 3755 "../../../model_brush.c" , mod->surfmesh.data_vertex3f, # 3755 "../../../model_brush.c" 3 4 ((void *)0) # 3755 "../../../model_brush.c" , # 3755 "../../../model_brush.c" 3 4 ((void *)0) # 3755 "../../../model_brush.c" , # 3755 "../../../model_brush.c" 3 4 ((void *)0) # 3755 "../../../model_brush.c" , # 3755 "../../../model_brush.c" 3 4 ((void *)0) # 3755 "../../../model_brush.c" , surface->num_triangles, (mod->surfmesh.data_element3i + 3 * surface->num_firsttriangle)); mod->brush.shadowmesh = Mod_ShadowMesh_Finish(mod->mempool, mod->brush.shadowmesh, false, r_enableshadowvolumes.integer != 0, false); if (mod->brush.shadowmesh && mod->brush.shadowmesh->neighbor3i) Mod_BuildTriangleNeighbors(mod->brush.shadowmesh->neighbor3i, mod->brush.shadowmesh->element3i, mod->brush.shadowmesh->numtriangles); return numshadowmeshtriangles; } void Mod_CollisionBIH_TraceLineAgainstSurfaces(dp_model_t *model, const frameblend_t *frameblend, const skeleton_t *skeleton, trace_t *trace, const vec3_t start, const vec3_t end, int hitsupercontentsmask); void Mod_Q1BSP_Load(dp_model_t *mod, void *buffer, void *bufferend) { int i, j, k; sizebuf_t lumpsb[15]; mmodel_t *bm; float dist, modelyawradius, modelradius; msurface_t *surface; hullinfo_t hullinfo; int totalstylesurfaces, totalstyles, stylecounts[256], remapstyles[256]; model_brush_lightstyleinfo_t styleinfo[256]; unsigned char *datapointer; sizebuf_t sb; MSG_InitReadBuffer(&sb, (unsigned char *)buffer, (unsigned char *)bufferend - (unsigned char *)buffer); mod->type = mod_brushq1; mod->brush.ishlbsp = false; mod->brush.isbsp2rmqe = false; mod->brush.isbsp2 = false; mod->brush.isq2bsp = false; mod->brush.isq3bsp = false; mod->brush.skymasking = true; i = MSG_ReadLittleLong(&sb); switch(i) { case 29: mod->modeldatatypestring = "Q1BSP"; break; case 30: mod->brush.ishlbsp = true; mod->modeldatatypestring = "HLBSP"; break; case ('2' + 'P' * 256 + 'S' * 65536 + 'B' * 16777216): mod->brush.isbsp2 = true; mod->brush.isbsp2rmqe = true; mod->modeldatatypestring = "Q1BSP2rmqe"; break; case ('B' + 'S' * 256 + 'P' * 65536 + '2' * 16777216): mod->brush.isbsp2 = true; mod->modeldatatypestring = "Q1BSP2"; break; default: mod->modeldatatypestring = "Unknown BSP"; Host_Error("Mod_Q1BSP_Load: %s has wrong version number %i: supported versions are 29 (Quake), 30 (Half-Life), \"BSP2\" or \"2PSB\" (rmqe)", mod->name, i); return; } ((hullinfo.hullsizes[0][0])[0]=(hullinfo.hullsizes[0][0])[1]=(hullinfo.hullsizes[0][0])[2]=0); ((hullinfo.hullsizes[0][1])[0]=(hullinfo.hullsizes[0][1])[1]=(hullinfo.hullsizes[0][1])[2]=0); if (mod->brush.ishlbsp) { hullinfo.filehulls = 4; ((hullinfo.hullsizes[1][0])[0]=(-16),(hullinfo.hullsizes[1][0])[1]=(-16),(hullinfo.hullsizes[1][0])[2]=(-36)); ((hullinfo.hullsizes[1][1])[0]=(16),(hullinfo.hullsizes[1][1])[1]=(16),(hullinfo.hullsizes[1][1])[2]=(36)); ((hullinfo.hullsizes[2][0])[0]=(-32),(hullinfo.hullsizes[2][0])[1]=(-32),(hullinfo.hullsizes[2][0])[2]=(-32)); ((hullinfo.hullsizes[2][1])[0]=(32),(hullinfo.hullsizes[2][1])[1]=(32),(hullinfo.hullsizes[2][1])[2]=(32)); ((hullinfo.hullsizes[3][0])[0]=(-16),(hullinfo.hullsizes[3][0])[1]=(-16),(hullinfo.hullsizes[3][0])[2]=(-18)); ((hullinfo.hullsizes[3][1])[0]=(16),(hullinfo.hullsizes[3][1])[1]=(16),(hullinfo.hullsizes[3][1])[2]=(18)); } else { hullinfo.filehulls = 4; ((hullinfo.hullsizes[1][0])[0]=(-16),(hullinfo.hullsizes[1][0])[1]=(-16),(hullinfo.hullsizes[1][0])[2]=(-24)); ((hullinfo.hullsizes[1][1])[0]=(16),(hullinfo.hullsizes[1][1])[1]=(16),(hullinfo.hullsizes[1][1])[2]=(32)); ((hullinfo.hullsizes[2][0])[0]=(-32),(hullinfo.hullsizes[2][0])[1]=(-32),(hullinfo.hullsizes[2][0])[2]=(-24)); ((hullinfo.hullsizes[2][1])[0]=(32),(hullinfo.hullsizes[2][1])[1]=(32),(hullinfo.hullsizes[2][1])[2]=(64)); } for (i = 0; i < 15; i++) { int offset = MSG_ReadLittleLong(&sb); int size = MSG_ReadLittleLong(&sb); if (offset < 0 || offset + size > sb.cursize) Host_Error("Mod_Q1BSP_Load: %s has invalid lump %i (offset %i, size %i, file size %i)\n", mod->name, i, offset, size, (int)sb.cursize); MSG_InitReadBuffer(&lumpsb[i], sb.data + offset, size); } mod->soundfromcenter = true; mod->TraceBox = Mod_Q1BSP_TraceBox; mod->TraceLine = Mod_Q1BSP_TraceLine; mod->TracePoint = Mod_Q1BSP_TracePoint; mod->PointSuperContents = Mod_Q1BSP_PointSuperContents; mod->TraceLineAgainstSurfaces = Mod_Q1BSP_TraceLineAgainstSurfaces; mod->brush.TraceLineOfSight = Mod_Q1BSP_TraceLineOfSight; mod->brush.SuperContentsFromNativeContents = Mod_Q1BSP_SuperContentsFromNativeContents; mod->brush.NativeContentsFromSuperContents = Mod_Q1BSP_NativeContentsFromSuperContents; mod->brush.GetPVS = Mod_Q1BSP_GetPVS; mod->brush.FatPVS = Mod_Q1BSP_FatPVS; mod->brush.BoxTouchingPVS = Mod_Q1BSP_BoxTouchingPVS; mod->brush.BoxTouchingLeafPVS = Mod_Q1BSP_BoxTouchingLeafPVS; mod->brush.BoxTouchingVisibleLeafs = Mod_Q1BSP_BoxTouchingVisibleLeafs; mod->brush.FindBoxClusters = Mod_Q1BSP_FindBoxClusters; mod->brush.LightPoint = Mod_Q1BSP_LightPoint; mod->brush.FindNonSolidLocation = Mod_Q1BSP_FindNonSolidLocation; mod->brush.AmbientSoundLevelsForPoint = Mod_Q1BSP_AmbientSoundLevelsForPoint; mod->brush.RoundUpToHullSize = Mod_Q1BSP_RoundUpToHullSize; mod->brush.PointInLeaf = Mod_Q1BSP_PointInLeaf; mod->Draw = R_Q1BSP_Draw; mod->DrawDepth = R_Q1BSP_DrawDepth; mod->DrawDebug = R_Q1BSP_DrawDebug; mod->DrawPrepass = R_Q1BSP_DrawPrepass; mod->GetLightInfo = R_Q1BSP_GetLightInfo; mod->CompileShadowMap = R_Q1BSP_CompileShadowMap; mod->DrawShadowMap = R_Q1BSP_DrawShadowMap; mod->CompileShadowVolume = R_Q1BSP_CompileShadowVolume; mod->DrawShadowVolume = R_Q1BSP_DrawShadowVolume; mod->DrawLight = R_Q1BSP_DrawLight; mod->brush.qw_md4sum = 0; mod->brush.qw_md4sum2 = 0; for (i = 0;i < 15;i++) { int temp; if (i == 0) continue; temp = Com_BlockChecksum(lumpsb[i].data, lumpsb[i].cursize); mod->brush.qw_md4sum ^= BuffLittleLong((unsigned char *)&(temp)); if (i == 4 || i == 10 || i == 5) continue; mod->brush.qw_md4sum2 ^= BuffLittleLong((unsigned char *)&(temp)); } Mod_Q1BSP_LoadEntities(&lumpsb[0]); Mod_Q1BSP_LoadVertexes(&lumpsb[3]); Mod_Q1BSP_LoadEdges(&lumpsb[12]); Mod_Q1BSP_LoadSurfedges(&lumpsb[13]); Mod_Q1BSP_LoadTextures(&lumpsb[2]); Mod_Q1BSP_LoadLighting(&lumpsb[8]); Mod_Q1BSP_LoadPlanes(&lumpsb[1]); Mod_Q1BSP_LoadTexinfo(&lumpsb[6]); Mod_Q1BSP_LoadFaces(&lumpsb[7]); Mod_Q1BSP_LoadLeaffaces(&lumpsb[11]); Mod_Q1BSP_LoadVisibility(&lumpsb[4]); Mod_Q1BSP_LoadSubmodels(&lumpsb[14], &hullinfo); Mod_Q1BSP_LoadLeafs(&lumpsb[10]); Mod_Q1BSP_LoadNodes(&lumpsb[5]); Mod_Q1BSP_LoadClipnodes(&lumpsb[9], &hullinfo); for (i = 0; i < 15; i++) if (lumpsb[i].readcount != lumpsb[i].cursize && i != 2 && i != 8) Host_Error("Lump %i incorrectly loaded (readcount %i, size %i)\n", i, lumpsb[i].readcount, lumpsb[i].cursize); loadmodel->brush.supportwateralpha = Mod_Q1BSP_CheckWaterAlphaSupport(); if (mod->brushq1.data_compressedpvs) _Mem_Free(mod->brushq1.data_compressedpvs, "../../../model_brush.c", 3918); mod->brushq1.data_compressedpvs = # 3919 "../../../model_brush.c" 3 4 ((void *)0) # 3919 "../../../model_brush.c" ; mod->brushq1.num_compressedpvs = 0; Mod_Q1BSP_MakeHull0(); if (mod_bsp_portalize.integer) Mod_Q1BSP_MakePortals(); mod->numframes = 2; mod->numskins = 1; Mod_Q1BSP_CreateShadowMesh(loadmodel); if (loadmodel->brush.numsubmodels) loadmodel->brush.submodels = (dp_model_t **)_Mem_Alloc(loadmodel->mempool, # 3933 "../../../model_brush.c" 3 4 ((void *)0) # 3933 "../../../model_brush.c" , loadmodel->brush.numsubmodels * sizeof(dp_model_t *), 16, "../../../model_brush.c", 3933); # 3949 "../../../model_brush.c" totalstylesurfaces = 0; totalstyles = 0; for (i = 0;i < mod->brush.numsubmodels;i++) { memset(stylecounts, 0, sizeof(stylecounts)); for (k = 0;k < mod->brushq1.submodels[i].numfaces;k++) { surface = mod->data_surfaces + mod->brushq1.submodels[i].firstface + k; for (j = 0;j < 4;j++) stylecounts[surface->lightmapinfo->styles[j]]++; } for (k = 0;k < 255;k++) { totalstyles++; if (stylecounts[k]) totalstylesurfaces += stylecounts[k]; } } datapointer = (unsigned char *)_Mem_Alloc(mod->mempool, # 3967 "../../../model_brush.c" 3 4 ((void *)0) # 3967 "../../../model_brush.c" , mod->num_surfaces * sizeof(int) + totalstyles * sizeof(model_brush_lightstyleinfo_t) + totalstylesurfaces * sizeof(int *), 16, "../../../model_brush.c", 3967); for (i = 0;i < mod->brush.numsubmodels;i++) { if (i > 0) { char name[10]; dpsnprintf(name, sizeof(name), "*%i", i); mod = Mod_FindName(name, loadmodel->name); *mod = *loadmodel; strlcpy(mod->name, name, sizeof(mod->name)); mod->brush.parentmodel = loadmodel; mod->texturepool = # 3985 "../../../model_brush.c" 3 4 ((void *)0) # 3985 "../../../model_brush.c" ; mod->mempool = # 3986 "../../../model_brush.c" 3 4 ((void *)0) # 3986 "../../../model_brush.c" ; mod->brush.GetPVS = # 3987 "../../../model_brush.c" 3 4 ((void *)0) # 3987 "../../../model_brush.c" ; mod->brush.FatPVS = # 3988 "../../../model_brush.c" 3 4 ((void *)0) # 3988 "../../../model_brush.c" ; mod->brush.BoxTouchingPVS = # 3989 "../../../model_brush.c" 3 4 ((void *)0) # 3989 "../../../model_brush.c" ; mod->brush.BoxTouchingLeafPVS = # 3990 "../../../model_brush.c" 3 4 ((void *)0) # 3990 "../../../model_brush.c" ; mod->brush.BoxTouchingVisibleLeafs = # 3991 "../../../model_brush.c" 3 4 ((void *)0) # 3991 "../../../model_brush.c" ; mod->brush.FindBoxClusters = # 3992 "../../../model_brush.c" 3 4 ((void *)0) # 3992 "../../../model_brush.c" ; mod->brush.LightPoint = # 3993 "../../../model_brush.c" 3 4 ((void *)0) # 3993 "../../../model_brush.c" ; mod->brush.AmbientSoundLevelsForPoint = # 3994 "../../../model_brush.c" 3 4 ((void *)0) # 3994 "../../../model_brush.c" ; } mod->brush.submodel = i; if (loadmodel->brush.submodels) loadmodel->brush.submodels[i] = mod; bm = &mod->brushq1.submodels[i]; mod->brushq1.hulls[0].firstclipnode = bm->headnode[0]; for (j=1 ; j<16 ; j++) { mod->brushq1.hulls[j].firstclipnode = bm->headnode[j]; mod->brushq1.hulls[j].lastclipnode = mod->brushq1.numclipnodes - 1; } mod->firstmodelsurface = bm->firstface; mod->nummodelsurfaces = bm->numfaces; Mod_Q1BSP_LoadNodes_RecursiveSetParent(mod->brush.data_nodes + mod->brushq1.hulls[0].firstclipnode, # 4015 "../../../model_brush.c" 3 4 ((void *)0) # 4015 "../../../model_brush.c" ); mod->sortedmodelsurfaces = (int *)datapointer;datapointer += mod->nummodelsurfaces * sizeof(int); Mod_MakeSortedSurfaces(mod); ((mod->normalmins)[0]=(bm->mins)[0],(mod->normalmins)[1]=(bm->mins)[1],(mod->normalmins)[2]=(bm->mins)[2]); ((mod->normalmaxs)[0]=(bm->maxs)[0],(mod->normalmaxs)[1]=(bm->maxs)[1],(mod->normalmaxs)[2]=(bm->maxs)[2]); dist = ((fabs(mod->normalmins[0])) > (fabs(mod->normalmaxs[0])) ? (fabs(mod->normalmins[0])) : (fabs(mod->normalmaxs[0]))); modelyawradius = ((fabs(mod->normalmins[1])) > (fabs(mod->normalmaxs[1])) ? (fabs(mod->normalmins[1])) : (fabs(mod->normalmaxs[1]))); modelyawradius = dist*dist+modelyawradius*modelyawradius; modelradius = ((fabs(mod->normalmins[2])) > (fabs(mod->normalmaxs[2])) ? (fabs(mod->normalmins[2])) : (fabs(mod->normalmaxs[2]))); modelradius = modelyawradius + modelradius * modelradius; modelyawradius = sqrt(modelyawradius); modelradius = sqrt(modelradius); mod->yawmins[0] = mod->yawmins[1] = -modelyawradius; mod->yawmins[2] = mod->normalmins[2]; mod->yawmaxs[0] = mod->yawmaxs[1] = modelyawradius; mod->yawmaxs[2] = mod->normalmaxs[2]; mod->rotatedmins[0] = mod->rotatedmins[1] = mod->rotatedmins[2] = -modelradius; mod->rotatedmaxs[0] = mod->rotatedmaxs[1] = mod->rotatedmaxs[2] = modelradius; mod->radius = modelradius; mod->radius2 = modelradius * modelradius; mod->DrawSky = # 4042 "../../../model_brush.c" 3 4 ((void *)0) # 4042 "../../../model_brush.c" ; mod->DrawAddWaterPlanes = # 4043 "../../../model_brush.c" 3 4 ((void *)0) # 4043 "../../../model_brush.c" ; if (mod->nummodelsurfaces) { for (j = 0, surface = &mod->data_surfaces[mod->firstmodelsurface];j < mod->nummodelsurfaces;j++, surface++) if (surface->texture->basematerialflags & 128) break; if (j < mod->nummodelsurfaces) mod->DrawSky = R_Q1BSP_DrawSky; for (j = 0, surface = &mod->data_surfaces[mod->firstmodelsurface];j < mod->nummodelsurfaces;j++, surface++) if (surface->texture->basematerialflags & (262144 | 524288 | 1048576 | 67108864)) break; if (j < mod->nummodelsurfaces) mod->DrawAddWaterPlanes = R_Q1BSP_DrawAddWaterPlanes; memset(stylecounts, 0, sizeof(stylecounts)); for (k = 0;k < mod->nummodelsurfaces;k++) { surface = mod->data_surfaces + mod->firstmodelsurface + k; for (j = 0;j < 4;j++) stylecounts[surface->lightmapinfo->styles[j]]++; } mod->brushq1.num_lightstyles = 0; for (k = 0;k < 255;k++) { if (stylecounts[k]) { styleinfo[mod->brushq1.num_lightstyles].style = k; styleinfo[mod->brushq1.num_lightstyles].value = 0; styleinfo[mod->brushq1.num_lightstyles].numsurfaces = 0; styleinfo[mod->brushq1.num_lightstyles].surfacelist = (int *)datapointer;datapointer += stylecounts[k] * sizeof(int); remapstyles[k] = mod->brushq1.num_lightstyles; mod->brushq1.num_lightstyles++; } } for (k = 0;k < mod->nummodelsurfaces;k++) { surface = mod->data_surfaces + mod->firstmodelsurface + k; for (j = 0;j < 4;j++) { if (surface->lightmapinfo->styles[j] != 255) { int r = remapstyles[surface->lightmapinfo->styles[j]]; styleinfo[r].surfacelist[styleinfo[r].numsurfaces++] = mod->firstmodelsurface + k; } } } mod->brushq1.data_lightstyleinfo = (model_brush_lightstyleinfo_t *)datapointer;datapointer += mod->brushq1.num_lightstyles * sizeof(model_brush_lightstyleinfo_t); memcpy(mod->brushq1.data_lightstyleinfo, styleinfo, mod->brushq1.num_lightstyles * sizeof(model_brush_lightstyleinfo_t)); } else { Con_Printf("warning: empty submodel *%i in %s\n", i+1, loadmodel->name); } Mod_MakeCollisionBIH(mod, true, &mod->render_bih); if (mod_q1bsp_polygoncollisions.integer) { mod->collision_bih = mod->render_bih; mod->TraceLine = Mod_CollisionBIH_TraceLine; mod->TraceBox = Mod_CollisionBIH_TraceBox; mod->TraceBrush = Mod_CollisionBIH_TraceBrush; mod->TraceLineAgainstSurfaces = Mod_CollisionBIH_TraceLineAgainstSurfaces; } if (i == 0) { Mod_BuildVBOs(); Mod_Q1BSP_LoadMapBrushes(); } } Con_DPrintf("Stats for q1bsp model \"%s\": %i faces, %i nodes, %i leafs, %i visleafs, %i visleafportals, mesh: %i vertices, %i triangles, %i surfaces\n", loadmodel->name, loadmodel->num_surfaces, loadmodel->brush.num_nodes, loadmodel->brush.num_leafs, mod->brush.num_pvsclusters, loadmodel->brush.num_portals, loadmodel->surfmesh.num_vertices, loadmodel->surfmesh.num_triangles, loadmodel->num_surfaces); } int Mod_Q2BSP_SuperContentsFromNativeContents(dp_model_t *model, int nativecontents) { int supercontents = 0; if (nativecontents & 0x00000001) supercontents |= 0x00000001; if (nativecontents & 0x00000020) supercontents |= 0x00000002; if (nativecontents & 0x00000010) supercontents |= 0x00000004; if (nativecontents & 0x00000008) supercontents |= 0x00000008; if (nativecontents & 0x02000000) supercontents |= 0x00000020; if (nativecontents & 0x04000000) supercontents |= 0x00000040; if (nativecontents & 0x00010000) supercontents |= 0x00000100; if (nativecontents & 0x00020000) supercontents |= 0x00000200; if (!(nativecontents & 0x10000000)) supercontents |= 0x00001000; return supercontents; } int Mod_Q2BSP_NativeContentsFromSuperContents(dp_model_t *model, int supercontents) { int nativecontents = 0; if (supercontents & 0x00000001) nativecontents |= 0x00000001; if (supercontents & 0x00000002) nativecontents |= 0x00000020; if (supercontents & 0x00000004) nativecontents |= 0x00000010; if (supercontents & 0x00000008) nativecontents |= 0x00000008; if (supercontents & 0x00000020) nativecontents |= 0x02000000; if (supercontents & 0x00000040) nativecontents |= 0x04000000; if (supercontents & 0x00000100) nativecontents |= 0x00010000; if (supercontents & 0x00000200) nativecontents |= 0x00020000; if (!(supercontents & 0x00001000)) nativecontents |= 0x10000000; return nativecontents; } static void Mod_Q2BSP_LoadVisibility(sizebuf_t *sb) { int i, count; loadmodel->brushq1.num_compressedpvs = 0; loadmodel->brushq1.data_compressedpvs = # 4183 "../../../model_brush.c" 3 4 ((void *)0) # 4183 "../../../model_brush.c" ; loadmodel->brush.num_pvsclusters = 0; loadmodel->brush.num_pvsclusterbytes = 0; loadmodel->brush.data_pvsclusters = # 4186 "../../../model_brush.c" 3 4 ((void *)0) # 4186 "../../../model_brush.c" ; if (!sb->cursize) return; count = MSG_ReadLittleLong(sb); loadmodel->brush.num_pvsclusters = count; loadmodel->brush.num_pvsclusterbytes = (count+7)>>3; loadmodel->brush.data_pvsclusters = (unsigned char *)_Mem_Alloc(loadmodel->mempool, # 4194 "../../../model_brush.c" 3 4 ((void *)0) # 4194 "../../../model_brush.c" , count*loadmodel->brush.num_pvsclusterbytes, 16, "../../../model_brush.c", 4194); for (i = 0;i < count;i++) { int pvsofs = MSG_ReadLittleLong(sb); MSG_ReadLittleLong(sb); Mod_Q1BSP_DecompressVis(sb->data + pvsofs, sb->data + sb->cursize, loadmodel->brush.data_pvsclusters + i * loadmodel->brush.num_pvsclusterbytes, loadmodel->brush.data_pvsclusters + (i+1) * loadmodel->brush.num_pvsclusterbytes); } sb->readcount = sb->cursize; } static void Mod_Q2BSP_LoadNodes(sizebuf_t *sb) { int i, j, count, p, child[2]; mnode_t *out; int structsize = 28; if (sb->cursize % structsize) Host_Error("Mod_Q2BSP_LoadNodes: funny lump size in %s",loadmodel->name); count = sb->cursize / structsize; if (count == 0) Host_Error("Mod_Q2BSP_LoadNodes: missing BSP tree in %s",loadmodel->name); out = (mnode_t *)_Mem_Alloc(loadmodel->mempool, # 4218 "../../../model_brush.c" 3 4 ((void *)0) # 4218 "../../../model_brush.c" , count*sizeof(*out), 16, "../../../model_brush.c", 4218); loadmodel->brush.data_nodes = out; loadmodel->brush.num_nodes = count; for ( i=0 ; iplane = loadmodel->brush.data_planes + p; child[0] = MSG_ReadLittleLong(sb); child[1] = MSG_ReadLittleLong(sb); out->mins[0] = MSG_ReadLittleShort(sb); out->mins[1] = MSG_ReadLittleShort(sb); out->mins[2] = MSG_ReadLittleShort(sb); out->maxs[0] = MSG_ReadLittleShort(sb); out->maxs[1] = MSG_ReadLittleShort(sb); out->maxs[2] = MSG_ReadLittleShort(sb); out->firstsurface = (unsigned short)MSG_ReadLittleShort(sb); out->numsurfaces = (unsigned short)MSG_ReadLittleShort(sb); if (out->firstsurface + out->numsurfaces > (unsigned int)loadmodel->num_surfaces) { Con_Printf("Mod_Q2BSP_LoadNodes: invalid surface index range %i+%i (file has only %i surfaces)\n", out->firstsurface, out->numsurfaces, loadmodel->num_surfaces); out->firstsurface = 0; out->numsurfaces = 0; } for (j=0 ; j<2 ; j++) { p = child[j]; if (p >= 0) { if (p < loadmodel->brush.num_nodes) out->children[j] = loadmodel->brush.data_nodes + p; else { Con_Printf("Mod_Q2BSP_LoadNodes: invalid node index %i (file has only %i nodes)\n", p, loadmodel->brush.num_nodes); out->children[j] = (mnode_t *)loadmodel->brush.data_leafs; } } else { p = -(p+1); if (p < loadmodel->brush.num_leafs) out->children[j] = (mnode_t *)(loadmodel->brush.data_leafs + p); else { Con_Printf("Mod_Q2BSP_LoadNodes: invalid leaf index %i (file has only %i leafs)\n", p, loadmodel->brush.num_leafs); out->children[j] = (mnode_t *)loadmodel->brush.data_leafs; } } } } Mod_Q1BSP_LoadNodes_RecursiveSetParent(loadmodel->brush.data_nodes, # 4273 "../../../model_brush.c" 3 4 ((void *)0) # 4273 "../../../model_brush.c" ); } static void Mod_Q2BSP_LoadTexinfo(sizebuf_t *sb) { mtexinfo_t *out; int i, j, k, l, count; int structsize = 76; int maxtextures = 1024; char filename[128]; if (sb->cursize % structsize) Host_Error("Mod_Q2BSP_LoadTexinfo: funny lump size in %s",loadmodel->name); count = sb->cursize / structsize; out = (mtexinfo_t *)_Mem_Alloc(loadmodel->mempool, # 4287 "../../../model_brush.c" 3 4 ((void *)0) # 4287 "../../../model_brush.c" , count * sizeof(*out), 16, "../../../model_brush.c", 4287); loadmodel->brushq1.texinfo = out; loadmodel->brushq1.numtexinfo = count; loadmodel->num_texturesperskin = 0; loadmodel->data_textures = (texture_t*)_Mem_Alloc(loadmodel->mempool, # 4291 "../../../model_brush.c" 3 4 ((void *)0) # 4291 "../../../model_brush.c" , maxtextures * sizeof(texture_t), 16, "../../../model_brush.c", 4291); for (i = 0;i < count;i++, out++) { for (k = 0;k < 2;k++) for (j = 0;j < 4;j++) out->vecs[k][j] = MSG_ReadLittleFloat(sb); out->q2flags = MSG_ReadLittleLong(sb); out->q2value = MSG_ReadLittleLong(sb); MSG_ReadBytes(sb, 32, (unsigned char*)out->q2texture); out->q2texture[31] = 0; out->q2nexttexinfo = MSG_ReadLittleLong(sb); dpsnprintf(filename, sizeof(filename), "textures/%s.wal", out->q2texture); for (j = 0;j < loadmodel->num_texturesperskin;j++) if (! # 4308 "../../../model_brush.c" 3 4 __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( # 4308 "../../../model_brush.c" filename # 4308 "../../../model_brush.c" 3 4 ) && __builtin_constant_p ( # 4308 "../../../model_brush.c" loadmodel->data_textures[j].name # 4308 "../../../model_brush.c" 3 4 ) && (__s1_len = __builtin_strlen ( # 4308 "../../../model_brush.c" filename # 4308 "../../../model_brush.c" 3 4 ), __s2_len = __builtin_strlen ( # 4308 "../../../model_brush.c" loadmodel->data_textures[j].name # 4308 "../../../model_brush.c" 3 4 ), (!((size_t)(const void *)(( # 4308 "../../../model_brush.c" filename # 4308 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 4308 "../../../model_brush.c" filename # 4308 "../../../model_brush.c" 3 4 ) == 1) || __s1_len >= 4) && (!((size_t)(const void *)(( # 4308 "../../../model_brush.c" loadmodel->data_textures[j].name # 4308 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 4308 "../../../model_brush.c" loadmodel->data_textures[j].name # 4308 "../../../model_brush.c" 3 4 ) == 1) || __s2_len >= 4)) ? __builtin_strcmp ( # 4308 "../../../model_brush.c" filename # 4308 "../../../model_brush.c" 3 4 , # 4308 "../../../model_brush.c" loadmodel->data_textures[j].name # 4308 "../../../model_brush.c" 3 4 ) : (__builtin_constant_p ( # 4308 "../../../model_brush.c" filename # 4308 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 4308 "../../../model_brush.c" filename # 4308 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 4308 "../../../model_brush.c" filename # 4308 "../../../model_brush.c" 3 4 ) == 1) && (__s1_len = __builtin_strlen ( # 4308 "../../../model_brush.c" filename # 4308 "../../../model_brush.c" 3 4 ), __s1_len < 4) ? (__builtin_constant_p ( # 4308 "../../../model_brush.c" loadmodel->data_textures[j].name # 4308 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 4308 "../../../model_brush.c" loadmodel->data_textures[j].name # 4308 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 4308 "../../../model_brush.c" loadmodel->data_textures[j].name # 4308 "../../../model_brush.c" 3 4 ) == 1) ? __builtin_strcmp ( # 4308 "../../../model_brush.c" filename # 4308 "../../../model_brush.c" 3 4 , # 4308 "../../../model_brush.c" loadmodel->data_textures[j].name # 4308 "../../../model_brush.c" 3 4 ) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ( # 4308 "../../../model_brush.c" loadmodel->data_textures[j].name # 4308 "../../../model_brush.c" 3 4 ); int __result = (((const unsigned char *) (const char *) ( # 4308 "../../../model_brush.c" filename # 4308 "../../../model_brush.c" 3 4 ))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 4308 "../../../model_brush.c" filename # 4308 "../../../model_brush.c" 3 4 ))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 4308 "../../../model_brush.c" filename # 4308 "../../../model_brush.c" 3 4 ))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( # 4308 "../../../model_brush.c" filename # 4308 "../../../model_brush.c" 3 4 ))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ( # 4308 "../../../model_brush.c" loadmodel->data_textures[j].name # 4308 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 4308 "../../../model_brush.c" loadmodel->data_textures[j].name # 4308 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 4308 "../../../model_brush.c" loadmodel->data_textures[j].name # 4308 "../../../model_brush.c" 3 4 ) == 1) && (__s2_len = __builtin_strlen ( # 4308 "../../../model_brush.c" loadmodel->data_textures[j].name # 4308 "../../../model_brush.c" 3 4 ), __s2_len < 4) ? (__builtin_constant_p ( # 4308 "../../../model_brush.c" filename # 4308 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 4308 "../../../model_brush.c" filename # 4308 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 4308 "../../../model_brush.c" filename # 4308 "../../../model_brush.c" 3 4 ) == 1) ? __builtin_strcmp ( # 4308 "../../../model_brush.c" filename # 4308 "../../../model_brush.c" 3 4 , # 4308 "../../../model_brush.c" loadmodel->data_textures[j].name # 4308 "../../../model_brush.c" 3 4 ) : (- (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ( # 4308 "../../../model_brush.c" filename # 4308 "../../../model_brush.c" 3 4 ); int __result = (((const unsigned char *) (const char *) ( # 4308 "../../../model_brush.c" loadmodel->data_textures[j].name # 4308 "../../../model_brush.c" 3 4 ))[0] - __s2[0]); if (__s2_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 4308 "../../../model_brush.c" loadmodel->data_textures[j].name # 4308 "../../../model_brush.c" 3 4 ))[1] - __s2[1]); if (__s2_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 4308 "../../../model_brush.c" loadmodel->data_textures[j].name # 4308 "../../../model_brush.c" 3 4 ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( # 4308 "../../../model_brush.c" loadmodel->data_textures[j].name # 4308 "../../../model_brush.c" 3 4 ))[3] - __s2[3]); } } __result; })))) : __builtin_strcmp ( # 4308 "../../../model_brush.c" filename # 4308 "../../../model_brush.c" 3 4 , # 4308 "../../../model_brush.c" loadmodel->data_textures[j].name # 4308 "../../../model_brush.c" 3 4 )))); }) # 4308 "../../../model_brush.c" && out->q2flags == loadmodel->data_textures[j].q2flags) break; if (j == loadmodel->num_texturesperskin) { if (loadmodel->num_texturesperskin < maxtextures) { texture_t *tx = loadmodel->data_textures + j; int q2flags = out->q2flags; unsigned char *walfile = # 4317 "../../../model_brush.c" 3 4 ((void *)0) # 4317 "../../../model_brush.c" ; fs_offset_t walfilesize = 0; Mod_LoadTextureFromQ3Shader(tx, filename, true, true, 0x00000002 | 0x00004000 | 0x00000100 | 0x00000200); walfile = FS_LoadFile(filename, tempmempool, true, &walfilesize); if (walfile) { int w, h; char q2animname32c[32]; LoadWAL_GetMetadata(walfile, (int)walfilesize, &w, &h, &q2flags, &tx->q2value, &tx->q2contents, q2animname32c); tx->width = w; tx->height = h; tx->q2flags = q2flags; _Mem_Free(walfile, "../../../model_brush.c", 4330); } if (q2flags & 0x1) { } if (q2flags & 0x2) { } if (q2flags & 0x4) { q2flags &= ~0x80; tx->basematerialflags = 128 | 16384; tx->supercontents = 0x00000010 | 0x00000080 | 0x00001000; tx->surfaceflags = 4 | 16 | 32 | 131072 | 1024; } if (q2flags & 0x8) { tx->basematerialflags |= 256 | 32; if (q2flags & (0x10 | 0x20)) tx->basematerialflags |= 262144; } if (q2flags & 0x10) { tx->basematerialflags |= 2 | 4096; tx->basealpha = 0.3333f; tx->supercontents &= ~0x00001000; if (tx->q2contents & 1) tx->q2contents = (tx->q2contents & ~1) | 2; } if (q2flags & 0x20) { tx->basematerialflags |= 2 | 4096; tx->basealpha = 0.6667f; tx->supercontents &= ~0x00001000; if (tx->q2contents & 1) tx->q2contents = (tx->q2contents & ~1) | 2; } if (q2flags & 0x40) { tx->tcmods[0].tcmod = Q3TCMOD_SCROLL; tx->tcmods[0].parms[0] = -1.6f; tx->tcmods[0].parms[1] = 0.0f; } if (q2flags & 0x80) { tx->basematerialflags = 512 | 16384; } if (tx->q2contents & (0x10000000 | 0x20000 | 0x10000)) tx->q2contents |= 0x8000000; if (!(tx->q2contents & (1 | 2 | 4 | 8 | 16 | 32 | 64 | 0x10000 | 0x20000 | 64))) tx->q2contents |= 1; if (tx->q2flags & (0x100 | 0x200)) tx->q2contents = 0; tx->supercontents = Mod_Q2BSP_SuperContentsFromNativeContents(loadmodel, tx->q2contents); tx->currentframe = tx; tx->currentskinframe = tx->skinframes[0]; tx->currentmaterialflags = tx->basematerialflags; loadmodel->num_texturesperskin++; loadmodel->num_textures = loadmodel->num_texturesperskin; } else { Con_Printf("Mod_Q2BSP_LoadTexinfo: max textures reached (%i)\n", maxtextures); j = 0; } } out->textureindex = j; } loadmodel->data_textures = (texture_t*)_Mem_Alloc(loadmodel->mempool, loadmodel->data_textures, loadmodel->num_texturesperskin * sizeof(texture_t), 16, "../../../model_brush.c", 4412); for (i = 0, out = loadmodel->brushq1.texinfo;i < count;i++, out++) { int j; texture_t *t = loadmodel->data_textures + out->textureindex; t->currentframe = t; if (out->q2nexttexinfo == 0 || t->animated) continue; t->animated = 2; t->anim_total[0] = 0; t->anim_total[1] = 0; for (j = i;j >= 0 && t->anim_total[0] < (int)(sizeof(t->anim_frames[0])/sizeof(t->anim_frames[0][0]));j = loadmodel->brushq1.texinfo[j].q2nexttexinfo) { if (t->anim_total[0] && loadmodel->brushq1.texinfo[j].textureindex == out->textureindex) break; t->anim_frames[0][t->anim_total[0]++] = &loadmodel->data_textures[loadmodel->brushq1.texinfo[j].textureindex]; } # 4449 "../../../model_brush.c" for (k = 0;k < t->anim_total[0];k++) { texture_t *txk = t->anim_frames[0][k]; txk->animated = t->animated; txk->anim_total[0] = t->anim_total[0]; for (l = 0;l < t->anim_total[0];l++) txk->anim_frames[0][l] = t->anim_frames[0][l]; } } } static void Mod_Q2BSP_LoadLighting(sizebuf_t *sb) { loadmodel->brushq1.lightdata = (unsigned char *)_Mem_Alloc(loadmodel->mempool, # 4463 "../../../model_brush.c" 3 4 ((void *)0) # 4463 "../../../model_brush.c" , sb->cursize, 16, "../../../model_brush.c", 4463); MSG_ReadBytes(sb, sb->cursize, loadmodel->brushq1.lightdata); } static void Mod_Q2BSP_LoadLeafs(sizebuf_t *sb) { mleaf_t *out; int i, j, count, firstmarksurface, nummarksurfaces, firstmarkbrush, nummarkbrushes; int structsize = 28; if (sb->cursize % structsize) Host_Error("Mod_Q2BSP_LoadLeafs: funny lump size in %s",loadmodel->name); count = sb->cursize / structsize; out = (mleaf_t *)_Mem_Alloc(loadmodel->mempool, # 4476 "../../../model_brush.c" 3 4 ((void *)0) # 4476 "../../../model_brush.c" , count*sizeof(*out), 16, "../../../model_brush.c", 4476); loadmodel->brush.data_leafs = out; loadmodel->brush.num_leafs = count; for ( i=0 ; icontents = MSG_ReadLittleLong(sb); out->clusterindex = MSG_ReadLittleShort(sb); out->areaindex = MSG_ReadLittleShort(sb); out->mins[0] = MSG_ReadLittleShort(sb); out->mins[1] = MSG_ReadLittleShort(sb); out->mins[2] = MSG_ReadLittleShort(sb); out->maxs[0] = MSG_ReadLittleShort(sb); out->maxs[1] = MSG_ReadLittleShort(sb); out->maxs[2] = MSG_ReadLittleShort(sb); firstmarksurface = (unsigned short)MSG_ReadLittleShort(sb); nummarksurfaces = (unsigned short)MSG_ReadLittleShort(sb); firstmarkbrush = (unsigned short)MSG_ReadLittleShort(sb); nummarkbrushes = (unsigned short)MSG_ReadLittleShort(sb); for (j = 0;j < 4;j++) out->ambient_sound_level[j] = 0; if (out->clusterindex >= loadmodel->brush.num_pvsclusters) { Con_Print("Mod_Q2BSP_LoadLeafs: invalid clusterindex\n"); out->clusterindex = -1; } if (firstmarksurface >= 0 && firstmarksurface + nummarksurfaces <= loadmodel->brush.num_leafsurfaces) { out->firstleafsurface = loadmodel->brush.data_leafsurfaces + firstmarksurface; out->numleafsurfaces = nummarksurfaces; } else { Con_Printf("Mod_Q2BSP_LoadLeafs: invalid leafsurface range %i:%i outside range %i:%i\n", firstmarksurface, firstmarksurface+nummarksurfaces, 0, loadmodel->brush.num_leafsurfaces); out->firstleafsurface = # 4516 "../../../model_brush.c" 3 4 ((void *)0) # 4516 "../../../model_brush.c" ; out->numleafsurfaces = 0; } if (firstmarkbrush >= 0 && firstmarkbrush + nummarkbrushes <= loadmodel->brush.num_leafbrushes) { out->firstleafbrush = loadmodel->brush.data_leafbrushes + firstmarkbrush; out->numleafbrushes = nummarkbrushes; } else { Con_Printf("Mod_Q2BSP_LoadLeafs: invalid leafbrush range %i:%i outside range %i:%i\n", firstmarkbrush, firstmarkbrush+nummarkbrushes, 0, loadmodel->brush.num_leafbrushes); out->firstleafbrush = # 4528 "../../../model_brush.c" 3 4 ((void *)0) # 4528 "../../../model_brush.c" ; out->numleafbrushes = 0; } } } static void Mod_Q2BSP_LoadLeafBrushes(sizebuf_t *sb) { int i, j; int structsize = 2; if (sb->cursize % structsize) Host_Error("Mod_Q2BSP_LoadLeafBrushes: funny lump size in %s",loadmodel->name); loadmodel->brush.num_leafbrushes = sb->cursize / structsize; loadmodel->brush.data_leafbrushes = (int *)_Mem_Alloc(loadmodel->mempool, # 4542 "../../../model_brush.c" 3 4 ((void *)0) # 4542 "../../../model_brush.c" , loadmodel->brush.num_leafbrushes * sizeof(int), 16, "../../../model_brush.c", 4542); for (i = 0;i < loadmodel->brush.num_leafbrushes;i++) { j = (unsigned short) MSG_ReadLittleShort(sb); if (j >= loadmodel->brush.num_brushes) Host_Error("Mod_Q1BSP_LoadLeafBrushes: bad brush number"); loadmodel->brush.data_leafbrushes[i] = j; } } static void Mod_Q2BSP_LoadBrushSides(sizebuf_t *sb) { q3mbrushside_t *out; int i, n, count; int structsize = 4; if (sb->cursize % structsize) Host_Error("Mod_Q2BSP_LoadBrushSides: funny lump size in %s",loadmodel->name); count = sb->cursize / structsize; out = (q3mbrushside_t *)_Mem_Alloc(loadmodel->mempool, # 4562 "../../../model_brush.c" 3 4 ((void *)0) # 4562 "../../../model_brush.c" , count * sizeof(*out), 16, "../../../model_brush.c", 4562); loadmodel->brush.data_brushsides = out; loadmodel->brush.num_brushsides = count; for (i = 0;i < count;i++, out++) { n = (unsigned short)MSG_ReadLittleShort(sb); if (n < 0 || n >= loadmodel->brush.num_planes) Host_Error("Mod_Q2BSP_LoadBrushSides: invalid planeindex %i (%i planes)", n, loadmodel->brush.num_planes); out->plane = loadmodel->brush.data_planes + n; n = MSG_ReadLittleShort(sb); if (n >= 0) { if (n >= loadmodel->brushq1.numtexinfo) Host_Error("Mod_Q2BSP_LoadBrushSides: invalid texinfo index %i (%i texinfos)", n, loadmodel->brushq1.numtexinfo); out->texture = loadmodel->data_textures + loadmodel->brushq1.texinfo[n].textureindex; } else { out->texture = &mod_q1bsp_texture_solid; } } } static void Mod_Q2BSP_LoadBrushes(sizebuf_t *sb) { q3mbrush_t *out; int i, j, firstside, numsides, contents, count, maxplanes, q3surfaceflags, supercontents; colplanef_t *planes; int structsize = 12; if (sb->cursize % structsize) Host_Error("Mod_Q2BSP_LoadBrushes: funny lump size in %s",loadmodel->name); count = sb->cursize / structsize; out = (q3mbrush_t *)_Mem_Alloc(loadmodel->mempool, # 4598 "../../../model_brush.c" 3 4 ((void *)0) # 4598 "../../../model_brush.c" , count * sizeof(*out), 16, "../../../model_brush.c", 4598); loadmodel->brush.data_brushes = out; loadmodel->brush.num_brushes = count; maxplanes = 0; planes = # 4604 "../../../model_brush.c" 3 4 ((void *)0) # 4604 "../../../model_brush.c" ; for (i = 0;i < count;i++, out++) { firstside = MSG_ReadLittleLong(sb); numsides = MSG_ReadLittleLong(sb); contents = MSG_ReadLittleLong(sb); if (firstside < 0 || firstside + numsides > loadmodel->brush.num_brushsides) Host_Error("Mod_Q3BSP_LoadBrushes: invalid brushside range %i : %i (%i brushsides)", firstside, firstside + numsides, loadmodel->brush.num_brushsides); out->firstbrushside = loadmodel->brush.data_brushsides + firstside; out->numbrushsides = numsides; out->texture = out->firstbrushside->texture; supercontents = Mod_Q2BSP_SuperContentsFromNativeContents(loadmodel, contents); if (maxplanes < out->numbrushsides) { maxplanes = out->numbrushsides; if (planes) _Mem_Free(planes, "../../../model_brush.c", 4626); planes = (colplanef_t *)_Mem_Alloc(tempmempool, # 4627 "../../../model_brush.c" 3 4 ((void *)0) # 4627 "../../../model_brush.c" , sizeof(colplanef_t) * maxplanes, 16, "../../../model_brush.c", 4627); } q3surfaceflags = 0; for (j = 0;j < out->numbrushsides;j++) { ((planes[j].normal)[0]=(out->firstbrushside[j].plane->normal)[0],(planes[j].normal)[1]=(out->firstbrushside[j].plane->normal)[1],(planes[j].normal)[2]=(out->firstbrushside[j].plane->normal)[2]); planes[j].dist = out->firstbrushside[j].plane->dist; planes[j].q3surfaceflags = out->firstbrushside[j].texture->surfaceflags; planes[j].texture = out->firstbrushside[j].texture; q3surfaceflags |= planes[j].q3surfaceflags; out->firstbrushside[j].texture->supercontents = supercontents; } out->colbrushf = Collision_NewBrushFromPlanes(loadmodel->mempool, out->numbrushsides, planes, out->texture->supercontents, q3surfaceflags, out->texture, true); CL_KeepaliveMessage(false); } if (planes) _Mem_Free(planes, "../../../model_brush.c", 4647); } static void Mod_Q2BSP_LoadPOP(sizebuf_t *sb) { sb->readcount = sb->cursize; } static void Mod_Q2BSP_LoadAreas(sizebuf_t *sb) { sb->readcount = sb->cursize; } static void Mod_Q2BSP_LoadAreaPortals(sizebuf_t *sb) { sb->readcount = sb->cursize; } static void Mod_Q2BSP_LoadSubmodels(sizebuf_t *sb) { mmodel_t *out; int i, count; int structsize = 48; if (sb->cursize % structsize) Host_Error ("Mod_Q2BSP_LoadSubmodels: funny lump size in %s", loadmodel->name); count = sb->cursize / structsize; out = (mmodel_t *)_Mem_Alloc(loadmodel->mempool, # 4678 "../../../model_brush.c" 3 4 ((void *)0) # 4678 "../../../model_brush.c" , count*sizeof(*out), 16, "../../../model_brush.c", 4678); loadmodel->brushq1.submodels = out; loadmodel->brush.numsubmodels = count; for (i = 0; i < count; i++, out++) { out->mins[0] = MSG_ReadLittleFloat(sb) - 1; out->mins[1] = MSG_ReadLittleFloat(sb) - 1; out->mins[2] = MSG_ReadLittleFloat(sb) - 1; out->maxs[0] = MSG_ReadLittleFloat(sb) + 1; out->maxs[1] = MSG_ReadLittleFloat(sb) + 1; out->maxs[2] = MSG_ReadLittleFloat(sb) + 1; out->origin[0] = MSG_ReadLittleFloat(sb); out->origin[1] = MSG_ReadLittleFloat(sb); out->origin[2] = MSG_ReadLittleFloat(sb); out->headnode[0] = MSG_ReadLittleLong(sb); out->firstface = MSG_ReadLittleLong(sb); out->numfaces = MSG_ReadLittleLong(sb); } } static void Mod_Q2BSP_FindSubmodelBrushRange_r(dp_model_t *mod, mnode_t *node, int *first, int *last) { int i; mleaf_t *leaf; while (node->plane) { Mod_Q2BSP_FindSubmodelBrushRange_r(mod, node->children[0], first, last); node = node->children[1]; } leaf = (mleaf_t*)node; for (i = 0;i < leaf->numleafbrushes;i++) { int brushnum = leaf->firstleafbrush[i]; if (*first > brushnum) *first = brushnum; if (*last < brushnum) *last = brushnum; } } static void Mod_Q2BSP_Load(dp_model_t *mod, void *buffer, void *bufferend) { int i, j, k; sizebuf_t lumpsb[19]; mmodel_t *bm; float dist, modelyawradius, modelradius; msurface_t *surface; int totalstylesurfaces, totalstyles, stylecounts[256], remapstyles[256]; model_brush_lightstyleinfo_t styleinfo[256]; unsigned char *datapointer; sizebuf_t sb; MSG_InitReadBuffer(&sb, (unsigned char *)buffer, (unsigned char *)bufferend - (unsigned char *)buffer); mod->type = mod_brushq2; mod->brush.ishlbsp = false; mod->brush.isbsp2rmqe = false; mod->brush.isbsp2 = false; mod->brush.isq2bsp = true; mod->brush.isq3bsp = false; mod->brush.skymasking = true; mod->modeldatatypestring = "Q2BSP"; i = MSG_ReadLittleLong(&sb); if (i != ('I' + 'B' * 256 + 'S' * 65536 + 'P' * 16777216)) Host_Error("Mod_Q2BSP_Load: %s has wrong version number (%i, should be %i)", mod->name, i, 38); i = MSG_ReadLittleLong(&sb); if (i != 38) Host_Error("Mod_Q2BSP_Load: %s has wrong version number (%i, should be %i)", mod->name, i, 38); for (i = 0; i < 19; i++) { int offset = MSG_ReadLittleLong(&sb); int size = MSG_ReadLittleLong(&sb); if (offset < 0 || offset + size > sb.cursize) Host_Error("Mod_Q2BSP_Load: %s has invalid lump %i (offset %i, size %i, file size %i)\n", mod->name, i, offset, size, (int)sb.cursize); MSG_InitReadBuffer(&lumpsb[i], sb.data + offset, size); } mod->soundfromcenter = true; mod->TracePoint = Mod_CollisionBIH_TracePoint; mod->TraceLine = Mod_CollisionBIH_TraceLine; mod->TraceBox = Mod_CollisionBIH_TraceBox; mod->TraceBrush = Mod_CollisionBIH_TraceBrush; mod->PointSuperContents = Mod_CollisionBIH_PointSuperContents; mod->TraceLineAgainstSurfaces = Mod_CollisionBIH_TraceLine; mod->brush.TraceLineOfSight = Mod_Q3BSP_TraceLineOfSight; mod->brush.SuperContentsFromNativeContents = Mod_Q2BSP_SuperContentsFromNativeContents; mod->brush.NativeContentsFromSuperContents = Mod_Q2BSP_NativeContentsFromSuperContents; mod->brush.GetPVS = Mod_Q1BSP_GetPVS; mod->brush.FatPVS = Mod_Q1BSP_FatPVS; mod->brush.BoxTouchingPVS = Mod_Q1BSP_BoxTouchingPVS; mod->brush.BoxTouchingLeafPVS = Mod_Q1BSP_BoxTouchingLeafPVS; mod->brush.BoxTouchingVisibleLeafs = Mod_Q1BSP_BoxTouchingVisibleLeafs; mod->brush.FindBoxClusters = Mod_Q1BSP_FindBoxClusters; mod->brush.LightPoint = Mod_Q1BSP_LightPoint; mod->brush.FindNonSolidLocation = Mod_Q1BSP_FindNonSolidLocation; mod->brush.AmbientSoundLevelsForPoint = # 4782 "../../../model_brush.c" 3 4 ((void *)0) # 4782 "../../../model_brush.c" ; mod->brush.RoundUpToHullSize = # 4783 "../../../model_brush.c" 3 4 ((void *)0) # 4783 "../../../model_brush.c" ; mod->brush.PointInLeaf = Mod_Q1BSP_PointInLeaf; mod->Draw = R_Q1BSP_Draw; mod->DrawDepth = R_Q1BSP_DrawDepth; mod->DrawDebug = R_Q1BSP_DrawDebug; mod->DrawPrepass = R_Q1BSP_DrawPrepass; mod->GetLightInfo = R_Q1BSP_GetLightInfo; mod->CompileShadowMap = R_Q1BSP_CompileShadowMap; mod->DrawShadowMap = R_Q1BSP_DrawShadowMap; mod->CompileShadowVolume = R_Q1BSP_CompileShadowVolume; mod->DrawShadowVolume = R_Q1BSP_DrawShadowVolume; mod->DrawLight = R_Q1BSP_DrawLight; mod->brush.qw_md4sum = 0; mod->brush.qw_md4sum2 = 0; for (i = 0;i < 19;i++) { int temp; if (i == 0) continue; temp = Com_BlockChecksum(lumpsb[i].data, lumpsb[i].cursize); mod->brush.qw_md4sum ^= BuffLittleLong((unsigned char *)&(temp)); if (i == 3 || i == 8 || i == 4) continue; mod->brush.qw_md4sum2 ^= BuffLittleLong((unsigned char *)&(temp)); } Mod_Q1BSP_LoadEntities(&lumpsb[0]); Mod_Q1BSP_LoadVertexes(&lumpsb[2]); Mod_Q1BSP_LoadEdges(&lumpsb[11]); Mod_Q1BSP_LoadSurfedges(&lumpsb[12]); Mod_Q2BSP_LoadLighting(&lumpsb[7]); Mod_Q1BSP_LoadPlanes(&lumpsb[1]); Mod_Q2BSP_LoadTexinfo(&lumpsb[5]); Mod_Q2BSP_LoadBrushSides(&lumpsb[15]); Mod_Q2BSP_LoadBrushes(&lumpsb[14]); Mod_Q1BSP_LoadFaces(&lumpsb[6]); Mod_Q1BSP_LoadLeaffaces(&lumpsb[9]); Mod_Q2BSP_LoadLeafBrushes(&lumpsb[10]); Mod_Q2BSP_LoadVisibility(&lumpsb[3]); Mod_Q2BSP_LoadPOP(&lumpsb[16]); Mod_Q2BSP_LoadAreas(&lumpsb[17]); Mod_Q2BSP_LoadAreaPortals(&lumpsb[18]); Mod_Q2BSP_LoadLeafs(&lumpsb[8]); Mod_Q2BSP_LoadNodes(&lumpsb[4]); Mod_Q2BSP_LoadSubmodels(&lumpsb[13]); for (i = 0; i < 19; i++) if (lumpsb[i].readcount != lumpsb[i].cursize) Host_Error("Lump %i incorrectly loaded (readcount %i, size %i)\n", i, lumpsb[i].readcount, lumpsb[i].cursize); loadmodel->brush.supportwateralpha = true; if (mod->brushq1.data_compressedpvs) _Mem_Free(mod->brushq1.data_compressedpvs, "../../../model_brush.c", 4843); mod->brushq1.data_compressedpvs = # 4844 "../../../model_brush.c" 3 4 ((void *)0) # 4844 "../../../model_brush.c" ; mod->brushq1.num_compressedpvs = 0; if (mod_bsp_portalize.integer) Mod_Q1BSP_MakePortals(); mod->numframes = 0; mod->numskins = 1; Mod_Q1BSP_CreateShadowMesh(loadmodel); if (loadmodel->brush.numsubmodels) loadmodel->brush.submodels = (dp_model_t **)_Mem_Alloc(loadmodel->mempool, # 4858 "../../../model_brush.c" 3 4 ((void *)0) # 4858 "../../../model_brush.c" , loadmodel->brush.numsubmodels * sizeof(dp_model_t *), 16, "../../../model_brush.c", 4858); totalstylesurfaces = 0; totalstyles = 0; for (i = 0;i < mod->brush.numsubmodels;i++) { memset(stylecounts, 0, sizeof(stylecounts)); for (k = 0;k < mod->brushq1.submodels[i].numfaces;k++) { surface = mod->data_surfaces + mod->brushq1.submodels[i].firstface + k; for (j = 0;j < 4;j++) stylecounts[surface->lightmapinfo->styles[j]]++; } for (k = 0;k < 255;k++) { totalstyles++; if (stylecounts[k]) totalstylesurfaces += stylecounts[k]; } } datapointer = (unsigned char *)_Mem_Alloc(mod->mempool, # 4878 "../../../model_brush.c" 3 4 ((void *)0) # 4878 "../../../model_brush.c" , mod->num_surfaces * sizeof(int) + totalstyles * sizeof(model_brush_lightstyleinfo_t) + totalstylesurfaces * sizeof(int *), 16, "../../../model_brush.c", 4878); mod = loadmodel; for (i = 0;i < loadmodel->brush.numsubmodels;i++) { mnode_t *rootnode = # 4884 "../../../model_brush.c" 3 4 ((void *)0) # 4884 "../../../model_brush.c" ; int firstbrush = loadmodel->brush.num_brushes, lastbrush = 0; if (i > 0) { char name[10]; dpsnprintf(name, sizeof(name), "*%i", i); mod = Mod_FindName(name, loadmodel->name); *mod = *loadmodel; strlcpy(mod->name, name, sizeof(mod->name)); mod->brush.parentmodel = loadmodel; mod->texturepool = # 4898 "../../../model_brush.c" 3 4 ((void *)0) # 4898 "../../../model_brush.c" ; mod->mempool = # 4899 "../../../model_brush.c" 3 4 ((void *)0) # 4899 "../../../model_brush.c" ; mod->brush.GetPVS = # 4900 "../../../model_brush.c" 3 4 ((void *)0) # 4900 "../../../model_brush.c" ; mod->brush.FatPVS = # 4901 "../../../model_brush.c" 3 4 ((void *)0) # 4901 "../../../model_brush.c" ; mod->brush.BoxTouchingPVS = # 4902 "../../../model_brush.c" 3 4 ((void *)0) # 4902 "../../../model_brush.c" ; mod->brush.BoxTouchingLeafPVS = # 4903 "../../../model_brush.c" 3 4 ((void *)0) # 4903 "../../../model_brush.c" ; mod->brush.BoxTouchingVisibleLeafs = # 4904 "../../../model_brush.c" 3 4 ((void *)0) # 4904 "../../../model_brush.c" ; mod->brush.FindBoxClusters = # 4905 "../../../model_brush.c" 3 4 ((void *)0) # 4905 "../../../model_brush.c" ; mod->brush.LightPoint = # 4906 "../../../model_brush.c" 3 4 ((void *)0) # 4906 "../../../model_brush.c" ; mod->brush.AmbientSoundLevelsForPoint = # 4907 "../../../model_brush.c" 3 4 ((void *)0) # 4907 "../../../model_brush.c" ; } mod->brush.submodel = i; if (loadmodel->brush.submodels) loadmodel->brush.submodels[i] = mod; bm = &mod->brushq1.submodels[i]; mod->brushq1.hulls[0].firstclipnode = bm->headnode[0]; mod->firstmodelsurface = bm->firstface; mod->nummodelsurfaces = bm->numfaces; if (bm->headnode[0] >= 0) rootnode = mod->brush.data_nodes + bm->headnode[0]; else rootnode = (mnode_t*)(mod->brush.data_leafs + -1 - bm->headnode[0]); Mod_Q1BSP_LoadNodes_RecursiveSetParent(rootnode, # 4928 "../../../model_brush.c" 3 4 ((void *)0) # 4928 "../../../model_brush.c" ); mod->sortedmodelsurfaces = (int *)datapointer;datapointer += mod->nummodelsurfaces * sizeof(int); Mod_Q2BSP_FindSubmodelBrushRange_r(mod, rootnode, &firstbrush, &lastbrush); if (firstbrush <= lastbrush) { mod->firstmodelbrush = firstbrush; mod->nummodelbrushes = lastbrush + 1 - firstbrush; } else { mod->firstmodelbrush = 0; mod->nummodelbrushes = 0; } Mod_MakeSortedSurfaces(mod); ((mod->normalmins)[0]=(bm->mins)[0],(mod->normalmins)[1]=(bm->mins)[1],(mod->normalmins)[2]=(bm->mins)[2]); ((mod->normalmaxs)[0]=(bm->maxs)[0],(mod->normalmaxs)[1]=(bm->maxs)[1],(mod->normalmaxs)[2]=(bm->maxs)[2]); dist = ((fabs(mod->normalmins[0])) > (fabs(mod->normalmaxs[0])) ? (fabs(mod->normalmins[0])) : (fabs(mod->normalmaxs[0]))); modelyawradius = ((fabs(mod->normalmins[1])) > (fabs(mod->normalmaxs[1])) ? (fabs(mod->normalmins[1])) : (fabs(mod->normalmaxs[1]))); modelyawradius = dist*dist+modelyawradius*modelyawradius; modelradius = ((fabs(mod->normalmins[2])) > (fabs(mod->normalmaxs[2])) ? (fabs(mod->normalmins[2])) : (fabs(mod->normalmaxs[2]))); modelradius = modelyawradius + modelradius * modelradius; modelyawradius = sqrt(modelyawradius); modelradius = sqrt(modelradius); mod->yawmins[0] = mod->yawmins[1] = -modelyawradius; mod->yawmins[2] = mod->normalmins[2]; mod->yawmaxs[0] = mod->yawmaxs[1] = modelyawradius; mod->yawmaxs[2] = mod->normalmaxs[2]; mod->rotatedmins[0] = mod->rotatedmins[1] = mod->rotatedmins[2] = -modelradius; mod->rotatedmaxs[0] = mod->rotatedmaxs[1] = mod->rotatedmaxs[2] = modelradius; mod->radius = modelradius; mod->radius2 = modelradius * modelradius; mod->DrawSky = # 4964 "../../../model_brush.c" 3 4 ((void *)0) # 4964 "../../../model_brush.c" ; mod->DrawAddWaterPlanes = # 4965 "../../../model_brush.c" 3 4 ((void *)0) # 4965 "../../../model_brush.c" ; if (mod->nummodelsurfaces) { for (j = 0, surface = &mod->data_surfaces[mod->firstmodelsurface];j < mod->nummodelsurfaces;j++, surface++) if (surface->texture->basematerialflags & 128) break; if (j < mod->nummodelsurfaces) mod->DrawSky = R_Q1BSP_DrawSky; for (j = 0, surface = &mod->data_surfaces[mod->firstmodelsurface];j < mod->nummodelsurfaces;j++, surface++) if (surface->texture->basematerialflags & (262144 | 524288 | 1048576 | 67108864)) break; if (j < mod->nummodelsurfaces) mod->DrawAddWaterPlanes = R_Q1BSP_DrawAddWaterPlanes; memset(stylecounts, 0, sizeof(stylecounts)); for (k = 0;k < mod->nummodelsurfaces;k++) { surface = mod->data_surfaces + mod->firstmodelsurface + k; for (j = 0;j < 4;j++) stylecounts[surface->lightmapinfo->styles[j]]++; } mod->brushq1.num_lightstyles = 0; for (k = 0;k < 255;k++) { if (stylecounts[k]) { styleinfo[mod->brushq1.num_lightstyles].style = k; styleinfo[mod->brushq1.num_lightstyles].value = 0; styleinfo[mod->brushq1.num_lightstyles].numsurfaces = 0; styleinfo[mod->brushq1.num_lightstyles].surfacelist = (int *)datapointer;datapointer += stylecounts[k] * sizeof(int); remapstyles[k] = mod->brushq1.num_lightstyles; mod->brushq1.num_lightstyles++; } } for (k = 0;k < mod->nummodelsurfaces;k++) { surface = mod->data_surfaces + mod->firstmodelsurface + k; for (j = 0;j < 4;j++) { if (surface->lightmapinfo->styles[j] != 255) { int r = remapstyles[surface->lightmapinfo->styles[j]]; styleinfo[r].surfacelist[styleinfo[r].numsurfaces++] = mod->firstmodelsurface + k; } } } mod->brushq1.data_lightstyleinfo = (model_brush_lightstyleinfo_t *)datapointer;datapointer += mod->brushq1.num_lightstyles * sizeof(model_brush_lightstyleinfo_t); memcpy(mod->brushq1.data_lightstyleinfo, styleinfo, mod->brushq1.num_lightstyles * sizeof(model_brush_lightstyleinfo_t)); } else { Con_Printf("warning: empty submodel *%i in %s\n", i+1, loadmodel->name); } Mod_MakeCollisionBIH(mod, false, &mod->collision_bih); Mod_MakeCollisionBIH(mod, true, &mod->render_bih); if (i == 0) Mod_BuildVBOs(); } mod = loadmodel; Con_DPrintf("Stats for q2bsp model \"%s\": %i faces, %i nodes, %i leafs, %i clusters, %i clusterportals, mesh: %i vertices, %i triangles, %i surfaces\n", loadmodel->name, loadmodel->num_surfaces, loadmodel->brush.num_nodes, loadmodel->brush.num_leafs, mod->brush.num_pvsclusters, loadmodel->brush.num_portals, loadmodel->surfmesh.num_vertices, loadmodel->surfmesh.num_triangles, loadmodel->num_surfaces); } static int Mod_Q3BSP_SuperContentsFromNativeContents(dp_model_t *model, int nativecontents); static int Mod_Q3BSP_NativeContentsFromSuperContents(dp_model_t *model, int supercontents); static void Mod_Q3BSP_LoadEntities(lump_t *l) { const char *data; char key[128], value[16384]; float v[3]; loadmodel->brushq3.num_lightgrid_cellsize[0] = 64; loadmodel->brushq3.num_lightgrid_cellsize[1] = 64; loadmodel->brushq3.num_lightgrid_cellsize[2] = 128; if (!l->filelen) return; loadmodel->brush.entities = (char *)_Mem_Alloc(loadmodel->mempool, # 5055 "../../../model_brush.c" 3 4 ((void *)0) # 5055 "../../../model_brush.c" , l->filelen + 1, 16, "../../../model_brush.c", 5055); memcpy(loadmodel->brush.entities, mod_base + l->fileofs, l->filelen); loadmodel->brush.entities[l->filelen] = 0; data = loadmodel->brush.entities; loadmodel->brushq3.deluxemapping = false; if (data && COM_ParseToken_Simple(&data, false, false, true) && com_token[0] == '{') { while (1) { if (!COM_ParseToken_Simple(&data, false, false, true)) break; if (com_token[0] == '}') break; if (com_token[0] == '_') strlcpy(key, com_token + 1, sizeof(key)); else strlcpy(key, com_token, sizeof(key)); while (key[strlen(key)-1] == ' ') key[strlen(key)-1] = 0; if (!COM_ParseToken_Simple(&data, false, false, true)) break; strlcpy(value, com_token, sizeof(value)); if (!strcasecmp("gridsize", key)) { ((v)[0]=(64),(v)[1]=(64),(v)[2]=(128)); if(sscanf(value, "%f %f %f", &v[0], &v[1], &v[2]) != 3) Con_Printf("Mod_Q3BSP_LoadEntities: funny gridsize \"%s\" in %s, interpreting as \"%f %f %f\" to match q3map2's parsing\n", value, loadmodel->name, v[0], v[1], v[2]); if (v[0] != 0 && v[1] != 0 && v[2] != 0) ((loadmodel->brushq3.num_lightgrid_cellsize)[0]=(v)[0],(loadmodel->brushq3.num_lightgrid_cellsize)[1]=(v)[1],(loadmodel->brushq3.num_lightgrid_cellsize)[2]=(v)[2]); } else if (! # 5095 "../../../model_brush.c" 3 4 __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( # 5095 "../../../model_brush.c" "deluxeMaps" # 5095 "../../../model_brush.c" 3 4 ) && __builtin_constant_p ( # 5095 "../../../model_brush.c" key # 5095 "../../../model_brush.c" 3 4 ) && (__s1_len = __builtin_strlen ( # 5095 "../../../model_brush.c" "deluxeMaps" # 5095 "../../../model_brush.c" 3 4 ), __s2_len = __builtin_strlen ( # 5095 "../../../model_brush.c" key # 5095 "../../../model_brush.c" 3 4 ), (!((size_t)(const void *)(( # 5095 "../../../model_brush.c" "deluxeMaps" # 5095 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 5095 "../../../model_brush.c" "deluxeMaps" # 5095 "../../../model_brush.c" 3 4 ) == 1) || __s1_len >= 4) && (!((size_t)(const void *)(( # 5095 "../../../model_brush.c" key # 5095 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 5095 "../../../model_brush.c" key # 5095 "../../../model_brush.c" 3 4 ) == 1) || __s2_len >= 4)) ? __builtin_strcmp ( # 5095 "../../../model_brush.c" "deluxeMaps" # 5095 "../../../model_brush.c" 3 4 , # 5095 "../../../model_brush.c" key # 5095 "../../../model_brush.c" 3 4 ) : (__builtin_constant_p ( # 5095 "../../../model_brush.c" "deluxeMaps" # 5095 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 5095 "../../../model_brush.c" "deluxeMaps" # 5095 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 5095 "../../../model_brush.c" "deluxeMaps" # 5095 "../../../model_brush.c" 3 4 ) == 1) && (__s1_len = __builtin_strlen ( # 5095 "../../../model_brush.c" "deluxeMaps" # 5095 "../../../model_brush.c" 3 4 ), __s1_len < 4) ? (__builtin_constant_p ( # 5095 "../../../model_brush.c" key # 5095 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 5095 "../../../model_brush.c" key # 5095 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 5095 "../../../model_brush.c" key # 5095 "../../../model_brush.c" 3 4 ) == 1) ? __builtin_strcmp ( # 5095 "../../../model_brush.c" "deluxeMaps" # 5095 "../../../model_brush.c" 3 4 , # 5095 "../../../model_brush.c" key # 5095 "../../../model_brush.c" 3 4 ) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ( # 5095 "../../../model_brush.c" key # 5095 "../../../model_brush.c" 3 4 ); int __result = (((const unsigned char *) (const char *) ( # 5095 "../../../model_brush.c" "deluxeMaps" # 5095 "../../../model_brush.c" 3 4 ))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 5095 "../../../model_brush.c" "deluxeMaps" # 5095 "../../../model_brush.c" 3 4 ))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 5095 "../../../model_brush.c" "deluxeMaps" # 5095 "../../../model_brush.c" 3 4 ))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( # 5095 "../../../model_brush.c" "deluxeMaps" # 5095 "../../../model_brush.c" 3 4 ))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ( # 5095 "../../../model_brush.c" key # 5095 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 5095 "../../../model_brush.c" key # 5095 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 5095 "../../../model_brush.c" key # 5095 "../../../model_brush.c" 3 4 ) == 1) && (__s2_len = __builtin_strlen ( # 5095 "../../../model_brush.c" key # 5095 "../../../model_brush.c" 3 4 ), __s2_len < 4) ? (__builtin_constant_p ( # 5095 "../../../model_brush.c" "deluxeMaps" # 5095 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 5095 "../../../model_brush.c" "deluxeMaps" # 5095 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 5095 "../../../model_brush.c" "deluxeMaps" # 5095 "../../../model_brush.c" 3 4 ) == 1) ? __builtin_strcmp ( # 5095 "../../../model_brush.c" "deluxeMaps" # 5095 "../../../model_brush.c" 3 4 , # 5095 "../../../model_brush.c" key # 5095 "../../../model_brush.c" 3 4 ) : (- (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ( # 5095 "../../../model_brush.c" "deluxeMaps" # 5095 "../../../model_brush.c" 3 4 ); int __result = (((const unsigned char *) (const char *) ( # 5095 "../../../model_brush.c" key # 5095 "../../../model_brush.c" 3 4 ))[0] - __s2[0]); if (__s2_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 5095 "../../../model_brush.c" key # 5095 "../../../model_brush.c" 3 4 ))[1] - __s2[1]); if (__s2_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 5095 "../../../model_brush.c" key # 5095 "../../../model_brush.c" 3 4 ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( # 5095 "../../../model_brush.c" key # 5095 "../../../model_brush.c" 3 4 ))[3] - __s2[3]); } } __result; })))) : __builtin_strcmp ( # 5095 "../../../model_brush.c" "deluxeMaps" # 5095 "../../../model_brush.c" 3 4 , # 5095 "../../../model_brush.c" key # 5095 "../../../model_brush.c" 3 4 )))); }) # 5095 "../../../model_brush.c" ) { if (! # 5097 "../../../model_brush.c" 3 4 __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( # 5097 "../../../model_brush.c" com_token # 5097 "../../../model_brush.c" 3 4 ) && __builtin_constant_p ( # 5097 "../../../model_brush.c" "1" # 5097 "../../../model_brush.c" 3 4 ) && (__s1_len = __builtin_strlen ( # 5097 "../../../model_brush.c" com_token # 5097 "../../../model_brush.c" 3 4 ), __s2_len = __builtin_strlen ( # 5097 "../../../model_brush.c" "1" # 5097 "../../../model_brush.c" 3 4 ), (!((size_t)(const void *)(( # 5097 "../../../model_brush.c" com_token # 5097 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 5097 "../../../model_brush.c" com_token # 5097 "../../../model_brush.c" 3 4 ) == 1) || __s1_len >= 4) && (!((size_t)(const void *)(( # 5097 "../../../model_brush.c" "1" # 5097 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 5097 "../../../model_brush.c" "1" # 5097 "../../../model_brush.c" 3 4 ) == 1) || __s2_len >= 4)) ? __builtin_strcmp ( # 5097 "../../../model_brush.c" com_token # 5097 "../../../model_brush.c" 3 4 , # 5097 "../../../model_brush.c" "1" # 5097 "../../../model_brush.c" 3 4 ) : (__builtin_constant_p ( # 5097 "../../../model_brush.c" com_token # 5097 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 5097 "../../../model_brush.c" com_token # 5097 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 5097 "../../../model_brush.c" com_token # 5097 "../../../model_brush.c" 3 4 ) == 1) && (__s1_len = __builtin_strlen ( # 5097 "../../../model_brush.c" com_token # 5097 "../../../model_brush.c" 3 4 ), __s1_len < 4) ? (__builtin_constant_p ( # 5097 "../../../model_brush.c" "1" # 5097 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 5097 "../../../model_brush.c" "1" # 5097 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 5097 "../../../model_brush.c" "1" # 5097 "../../../model_brush.c" 3 4 ) == 1) ? __builtin_strcmp ( # 5097 "../../../model_brush.c" com_token # 5097 "../../../model_brush.c" 3 4 , # 5097 "../../../model_brush.c" "1" # 5097 "../../../model_brush.c" 3 4 ) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ( # 5097 "../../../model_brush.c" "1" # 5097 "../../../model_brush.c" 3 4 ); int __result = (((const unsigned char *) (const char *) ( # 5097 "../../../model_brush.c" com_token # 5097 "../../../model_brush.c" 3 4 ))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 5097 "../../../model_brush.c" com_token # 5097 "../../../model_brush.c" 3 4 ))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 5097 "../../../model_brush.c" com_token # 5097 "../../../model_brush.c" 3 4 ))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( # 5097 "../../../model_brush.c" com_token # 5097 "../../../model_brush.c" 3 4 ))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ( # 5097 "../../../model_brush.c" "1" # 5097 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 5097 "../../../model_brush.c" "1" # 5097 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 5097 "../../../model_brush.c" "1" # 5097 "../../../model_brush.c" 3 4 ) == 1) && (__s2_len = __builtin_strlen ( # 5097 "../../../model_brush.c" "1" # 5097 "../../../model_brush.c" 3 4 ), __s2_len < 4) ? (__builtin_constant_p ( # 5097 "../../../model_brush.c" com_token # 5097 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 5097 "../../../model_brush.c" com_token # 5097 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 5097 "../../../model_brush.c" com_token # 5097 "../../../model_brush.c" 3 4 ) == 1) ? __builtin_strcmp ( # 5097 "../../../model_brush.c" com_token # 5097 "../../../model_brush.c" 3 4 , # 5097 "../../../model_brush.c" "1" # 5097 "../../../model_brush.c" 3 4 ) : (- (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ( # 5097 "../../../model_brush.c" com_token # 5097 "../../../model_brush.c" 3 4 ); int __result = (((const unsigned char *) (const char *) ( # 5097 "../../../model_brush.c" "1" # 5097 "../../../model_brush.c" 3 4 ))[0] - __s2[0]); if (__s2_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 5097 "../../../model_brush.c" "1" # 5097 "../../../model_brush.c" 3 4 ))[1] - __s2[1]); if (__s2_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 5097 "../../../model_brush.c" "1" # 5097 "../../../model_brush.c" 3 4 ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( # 5097 "../../../model_brush.c" "1" # 5097 "../../../model_brush.c" 3 4 ))[3] - __s2[3]); } } __result; })))) : __builtin_strcmp ( # 5097 "../../../model_brush.c" com_token # 5097 "../../../model_brush.c" 3 4 , # 5097 "../../../model_brush.c" "1" # 5097 "../../../model_brush.c" 3 4 )))); }) # 5097 "../../../model_brush.c" ) { loadmodel->brushq3.deluxemapping = true; loadmodel->brushq3.deluxemapping_modelspace = true; } else if (! # 5102 "../../../model_brush.c" 3 4 __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( # 5102 "../../../model_brush.c" com_token # 5102 "../../../model_brush.c" 3 4 ) && __builtin_constant_p ( # 5102 "../../../model_brush.c" "2" # 5102 "../../../model_brush.c" 3 4 ) && (__s1_len = __builtin_strlen ( # 5102 "../../../model_brush.c" com_token # 5102 "../../../model_brush.c" 3 4 ), __s2_len = __builtin_strlen ( # 5102 "../../../model_brush.c" "2" # 5102 "../../../model_brush.c" 3 4 ), (!((size_t)(const void *)(( # 5102 "../../../model_brush.c" com_token # 5102 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 5102 "../../../model_brush.c" com_token # 5102 "../../../model_brush.c" 3 4 ) == 1) || __s1_len >= 4) && (!((size_t)(const void *)(( # 5102 "../../../model_brush.c" "2" # 5102 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 5102 "../../../model_brush.c" "2" # 5102 "../../../model_brush.c" 3 4 ) == 1) || __s2_len >= 4)) ? __builtin_strcmp ( # 5102 "../../../model_brush.c" com_token # 5102 "../../../model_brush.c" 3 4 , # 5102 "../../../model_brush.c" "2" # 5102 "../../../model_brush.c" 3 4 ) : (__builtin_constant_p ( # 5102 "../../../model_brush.c" com_token # 5102 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 5102 "../../../model_brush.c" com_token # 5102 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 5102 "../../../model_brush.c" com_token # 5102 "../../../model_brush.c" 3 4 ) == 1) && (__s1_len = __builtin_strlen ( # 5102 "../../../model_brush.c" com_token # 5102 "../../../model_brush.c" 3 4 ), __s1_len < 4) ? (__builtin_constant_p ( # 5102 "../../../model_brush.c" "2" # 5102 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 5102 "../../../model_brush.c" "2" # 5102 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 5102 "../../../model_brush.c" "2" # 5102 "../../../model_brush.c" 3 4 ) == 1) ? __builtin_strcmp ( # 5102 "../../../model_brush.c" com_token # 5102 "../../../model_brush.c" 3 4 , # 5102 "../../../model_brush.c" "2" # 5102 "../../../model_brush.c" 3 4 ) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ( # 5102 "../../../model_brush.c" "2" # 5102 "../../../model_brush.c" 3 4 ); int __result = (((const unsigned char *) (const char *) ( # 5102 "../../../model_brush.c" com_token # 5102 "../../../model_brush.c" 3 4 ))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 5102 "../../../model_brush.c" com_token # 5102 "../../../model_brush.c" 3 4 ))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 5102 "../../../model_brush.c" com_token # 5102 "../../../model_brush.c" 3 4 ))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( # 5102 "../../../model_brush.c" com_token # 5102 "../../../model_brush.c" 3 4 ))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ( # 5102 "../../../model_brush.c" "2" # 5102 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 5102 "../../../model_brush.c" "2" # 5102 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 5102 "../../../model_brush.c" "2" # 5102 "../../../model_brush.c" 3 4 ) == 1) && (__s2_len = __builtin_strlen ( # 5102 "../../../model_brush.c" "2" # 5102 "../../../model_brush.c" 3 4 ), __s2_len < 4) ? (__builtin_constant_p ( # 5102 "../../../model_brush.c" com_token # 5102 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 5102 "../../../model_brush.c" com_token # 5102 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 5102 "../../../model_brush.c" com_token # 5102 "../../../model_brush.c" 3 4 ) == 1) ? __builtin_strcmp ( # 5102 "../../../model_brush.c" com_token # 5102 "../../../model_brush.c" 3 4 , # 5102 "../../../model_brush.c" "2" # 5102 "../../../model_brush.c" 3 4 ) : (- (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ( # 5102 "../../../model_brush.c" com_token # 5102 "../../../model_brush.c" 3 4 ); int __result = (((const unsigned char *) (const char *) ( # 5102 "../../../model_brush.c" "2" # 5102 "../../../model_brush.c" 3 4 ))[0] - __s2[0]); if (__s2_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 5102 "../../../model_brush.c" "2" # 5102 "../../../model_brush.c" 3 4 ))[1] - __s2[1]); if (__s2_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 5102 "../../../model_brush.c" "2" # 5102 "../../../model_brush.c" 3 4 ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( # 5102 "../../../model_brush.c" "2" # 5102 "../../../model_brush.c" 3 4 ))[3] - __s2[3]); } } __result; })))) : __builtin_strcmp ( # 5102 "../../../model_brush.c" com_token # 5102 "../../../model_brush.c" 3 4 , # 5102 "../../../model_brush.c" "2" # 5102 "../../../model_brush.c" 3 4 )))); }) # 5102 "../../../model_brush.c" ) { loadmodel->brushq3.deluxemapping = true; loadmodel->brushq3.deluxemapping_modelspace = false; } } } } } static void Mod_Q3BSP_LoadTextures(lump_t *l) { q3dtexture_t *in; texture_t *out; int i, count; in = (q3dtexture_t *)(mod_base + l->fileofs); if (l->filelen % sizeof(*in)) Host_Error("Mod_Q3BSP_LoadTextures: funny lump size in %s",loadmodel->name); count = l->filelen / sizeof(*in); out = (texture_t *)_Mem_Alloc(loadmodel->mempool, # 5122 "../../../model_brush.c" 3 4 ((void *)0) # 5122 "../../../model_brush.c" , count * sizeof(*out), 16, "../../../model_brush.c", 5122); loadmodel->data_textures = out; loadmodel->num_textures = count; loadmodel->num_texturesperskin = loadmodel->num_textures; for (i = 0;i < count;i++) { out[i].surfaceflags = BuffLittleLong((unsigned char *)&(in[i].surfaceflags)); out[i].supercontents = Mod_Q3BSP_SuperContentsFromNativeContents(loadmodel, BuffLittleLong((unsigned char *)&(in[i].contents))); Mod_LoadTextureFromQ3Shader(out + i, in[i].name, true, true, 0x00000002 | 0x00004000 | 0x00000100 | 0x00000200); out[i].surfaceflags = BuffLittleLong((unsigned char *)&(in[i].surfaceflags)); out[i].supercontents = Mod_Q3BSP_SuperContentsFromNativeContents(loadmodel, BuffLittleLong((unsigned char *)&(in[i].contents))); } } static void Mod_Q3BSP_LoadPlanes(lump_t *l) { q3dplane_t *in; mplane_t *out; int i, count; in = (q3dplane_t *)(mod_base + l->fileofs); if (l->filelen % sizeof(*in)) Host_Error("Mod_Q3BSP_LoadPlanes: funny lump size in %s",loadmodel->name); count = l->filelen / sizeof(*in); out = (mplane_t *)_Mem_Alloc(loadmodel->mempool, # 5149 "../../../model_brush.c" 3 4 ((void *)0) # 5149 "../../../model_brush.c" , count * sizeof(*out), 16, "../../../model_brush.c", 5149); loadmodel->brush.data_planes = out; loadmodel->brush.num_planes = count; for (i = 0;i < count;i++, in++, out++) { out->normal[0] = BuffLittleFloat((unsigned char *)&(in->normal[0])); out->normal[1] = BuffLittleFloat((unsigned char *)&(in->normal[1])); out->normal[2] = BuffLittleFloat((unsigned char *)&(in->normal[2])); out->dist = BuffLittleFloat((unsigned char *)&(in->dist)); PlaneClassify(out); } } static void Mod_Q3BSP_LoadBrushSides(lump_t *l) { q3dbrushside_t *in; q3mbrushside_t *out; int i, n, count; in = (q3dbrushside_t *)(mod_base + l->fileofs); if (l->filelen % sizeof(*in)) Host_Error("Mod_Q3BSP_LoadBrushSides: funny lump size in %s",loadmodel->name); count = l->filelen / sizeof(*in); out = (q3mbrushside_t *)_Mem_Alloc(loadmodel->mempool, # 5174 "../../../model_brush.c" 3 4 ((void *)0) # 5174 "../../../model_brush.c" , count * sizeof(*out), 16, "../../../model_brush.c", 5174); loadmodel->brush.data_brushsides = out; loadmodel->brush.num_brushsides = count; for (i = 0;i < count;i++, in++, out++) { n = BuffLittleLong((unsigned char *)&(in->planeindex)); if (n < 0 || n >= loadmodel->brush.num_planes) Host_Error("Mod_Q3BSP_LoadBrushSides: invalid planeindex %i (%i planes)", n, loadmodel->brush.num_planes); out->plane = loadmodel->brush.data_planes + n; n = BuffLittleLong((unsigned char *)&(in->textureindex)); if (n < 0 || n >= loadmodel->num_textures) Host_Error("Mod_Q3BSP_LoadBrushSides: invalid textureindex %i (%i textures)", n, loadmodel->num_textures); out->texture = loadmodel->data_textures + n; } } static void Mod_Q3BSP_LoadBrushSides_IG(lump_t *l) { q3dbrushside_ig_t *in; q3mbrushside_t *out; int i, n, count; in = (q3dbrushside_ig_t *)(mod_base + l->fileofs); if (l->filelen % sizeof(*in)) Host_Error("Mod_Q3BSP_LoadBrushSides: funny lump size in %s",loadmodel->name); count = l->filelen / sizeof(*in); out = (q3mbrushside_t *)_Mem_Alloc(loadmodel->mempool, # 5202 "../../../model_brush.c" 3 4 ((void *)0) # 5202 "../../../model_brush.c" , count * sizeof(*out), 16, "../../../model_brush.c", 5202); loadmodel->brush.data_brushsides = out; loadmodel->brush.num_brushsides = count; for (i = 0;i < count;i++, in++, out++) { n = BuffLittleLong((unsigned char *)&(in->planeindex)); if (n < 0 || n >= loadmodel->brush.num_planes) Host_Error("Mod_Q3BSP_LoadBrushSides: invalid planeindex %i (%i planes)", n, loadmodel->brush.num_planes); out->plane = loadmodel->brush.data_planes + n; n = BuffLittleLong((unsigned char *)&(in->textureindex)); if (n < 0 || n >= loadmodel->num_textures) Host_Error("Mod_Q3BSP_LoadBrushSides: invalid textureindex %i (%i textures)", n, loadmodel->num_textures); out->texture = loadmodel->data_textures + n; } } static void Mod_Q3BSP_LoadBrushes(lump_t *l) { q3dbrush_t *in; q3mbrush_t *out; int i, j, n, c, count, maxplanes, q3surfaceflags; colplanef_t *planes; in = (q3dbrush_t *)(mod_base + l->fileofs); if (l->filelen % sizeof(*in)) Host_Error("Mod_Q3BSP_LoadBrushes: funny lump size in %s",loadmodel->name); count = l->filelen / sizeof(*in); out = (q3mbrush_t *)_Mem_Alloc(loadmodel->mempool, # 5231 "../../../model_brush.c" 3 4 ((void *)0) # 5231 "../../../model_brush.c" , count * sizeof(*out), 16, "../../../model_brush.c", 5231); loadmodel->brush.data_brushes = out; loadmodel->brush.num_brushes = count; maxplanes = 0; planes = # 5237 "../../../model_brush.c" 3 4 ((void *)0) # 5237 "../../../model_brush.c" ; for (i = 0;i < count;i++, in++, out++) { n = BuffLittleLong((unsigned char *)&(in->firstbrushside)); c = BuffLittleLong((unsigned char *)&(in->numbrushsides)); if (n < 0 || n + c > loadmodel->brush.num_brushsides) Host_Error("Mod_Q3BSP_LoadBrushes: invalid brushside range %i : %i (%i brushsides)", n, n + c, loadmodel->brush.num_brushsides); out->firstbrushside = loadmodel->brush.data_brushsides + n; out->numbrushsides = c; n = BuffLittleLong((unsigned char *)&(in->textureindex)); if (n < 0 || n >= loadmodel->num_textures) Host_Error("Mod_Q3BSP_LoadBrushes: invalid textureindex %i (%i textures)", n, loadmodel->num_textures); out->texture = loadmodel->data_textures + n; if (maxplanes < out->numbrushsides) { maxplanes = out->numbrushsides; if (planes) _Mem_Free(planes, "../../../model_brush.c", 5257); planes = (colplanef_t *)_Mem_Alloc(tempmempool, # 5258 "../../../model_brush.c" 3 4 ((void *)0) # 5258 "../../../model_brush.c" , sizeof(colplanef_t) * maxplanes, 16, "../../../model_brush.c", 5258); } q3surfaceflags = 0; for (j = 0;j < out->numbrushsides;j++) { ((planes[j].normal)[0]=(out->firstbrushside[j].plane->normal)[0],(planes[j].normal)[1]=(out->firstbrushside[j].plane->normal)[1],(planes[j].normal)[2]=(out->firstbrushside[j].plane->normal)[2]); planes[j].dist = out->firstbrushside[j].plane->dist; planes[j].q3surfaceflags = out->firstbrushside[j].texture->surfaceflags; planes[j].texture = out->firstbrushside[j].texture; q3surfaceflags |= planes[j].q3surfaceflags; } out->colbrushf = Collision_NewBrushFromPlanes(loadmodel->mempool, out->numbrushsides, planes, out->texture->supercontents, q3surfaceflags, out->texture, true); CL_KeepaliveMessage(false); } if (planes) _Mem_Free(planes, "../../../model_brush.c", 5276); } static void Mod_Q3BSP_LoadEffects(lump_t *l) { q3deffect_t *in; q3deffect_t *out; int i, n, count; in = (q3deffect_t *)(mod_base + l->fileofs); if (l->filelen % sizeof(*in)) Host_Error("Mod_Q3BSP_LoadEffects: funny lump size in %s",loadmodel->name); count = l->filelen / sizeof(*in); out = (q3deffect_t *)_Mem_Alloc(loadmodel->mempool, # 5289 "../../../model_brush.c" 3 4 ((void *)0) # 5289 "../../../model_brush.c" , count * sizeof(*out), 16, "../../../model_brush.c", 5289); loadmodel->brushq3.data_effects = out; loadmodel->brushq3.num_effects = count; for (i = 0;i < count;i++, in++, out++) { strlcpy (out->shadername, in->shadername, sizeof (out->shadername)); n = BuffLittleLong((unsigned char *)&(in->brushindex)); if (n >= loadmodel->brush.num_brushes) { Con_Printf("Mod_Q3BSP_LoadEffects: invalid brushindex %i (%i brushes), setting to -1\n", n, loadmodel->brush.num_brushes); n = -1; } out->brushindex = n; out->unknown = BuffLittleLong((unsigned char *)&(in->unknown)); } } static void Mod_Q3BSP_LoadVertices(lump_t *l) { q3dvertex_t *in; int i, count; in = (q3dvertex_t *)(mod_base + l->fileofs); if (l->filelen % sizeof(*in)) Host_Error("Mod_Q3BSP_LoadVertices: funny lump size in %s",loadmodel->name); loadmodel->brushq3.num_vertices = count = l->filelen / sizeof(*in); loadmodel->brushq3.data_vertex3f = (float *)_Mem_Alloc(loadmodel->mempool, # 5317 "../../../model_brush.c" 3 4 ((void *)0) # 5317 "../../../model_brush.c" , count * (sizeof(float) * (3 + 3 + 2 + 2 + 4)), 16, "../../../model_brush.c", 5317); loadmodel->brushq3.data_normal3f = loadmodel->brushq3.data_vertex3f + count * 3; loadmodel->brushq3.data_texcoordtexture2f = loadmodel->brushq3.data_normal3f + count * 3; loadmodel->brushq3.data_texcoordlightmap2f = loadmodel->brushq3.data_texcoordtexture2f + count * 2; loadmodel->brushq3.data_color4f = loadmodel->brushq3.data_texcoordlightmap2f + count * 2; for (i = 0;i < count;i++, in++) { loadmodel->brushq3.data_vertex3f[i * 3 + 0] = BuffLittleFloat((unsigned char *)&(in->origin3f[0])); loadmodel->brushq3.data_vertex3f[i * 3 + 1] = BuffLittleFloat((unsigned char *)&(in->origin3f[1])); loadmodel->brushq3.data_vertex3f[i * 3 + 2] = BuffLittleFloat((unsigned char *)&(in->origin3f[2])); loadmodel->brushq3.data_normal3f[i * 3 + 0] = BuffLittleFloat((unsigned char *)&(in->normal3f[0])); loadmodel->brushq3.data_normal3f[i * 3 + 1] = BuffLittleFloat((unsigned char *)&(in->normal3f[1])); loadmodel->brushq3.data_normal3f[i * 3 + 2] = BuffLittleFloat((unsigned char *)&(in->normal3f[2])); loadmodel->brushq3.data_texcoordtexture2f[i * 2 + 0] = BuffLittleFloat((unsigned char *)&(in->texcoord2f[0])); loadmodel->brushq3.data_texcoordtexture2f[i * 2 + 1] = BuffLittleFloat((unsigned char *)&(in->texcoord2f[1])); loadmodel->brushq3.data_texcoordlightmap2f[i * 2 + 0] = BuffLittleFloat((unsigned char *)&(in->lightmap2f[0])); loadmodel->brushq3.data_texcoordlightmap2f[i * 2 + 1] = BuffLittleFloat((unsigned char *)&(in->lightmap2f[1])); if(mod_q3bsp_sRGBlightmaps.integer) { if(vid_sRGB.integer && vid_sRGB_fallback.integer && !vid.sRGB3D) { loadmodel->brushq3.data_color4f[i * 4 + 0] = in->color4ub[0] * (1.0f / 255.0f); loadmodel->brushq3.data_color4f[i * 4 + 1] = in->color4ub[1] * (1.0f / 255.0f); loadmodel->brushq3.data_color4f[i * 4 + 2] = in->color4ub[2] * (1.0f / 255.0f); } else { loadmodel->brushq3.data_color4f[i * 4 + 0] = ((((in->color4ub[0]) * (1.0f / 255.0f)) <= 0.04045f) ? ((in->color4ub[0]) * (1.0f / 255.0f)) * (1.0f / 12.92f) : (float)pow((((in->color4ub[0]) * (1.0f / 255.0f)) + 0.055f)*(1.0f/1.055f), 2.4f)); loadmodel->brushq3.data_color4f[i * 4 + 1] = ((((in->color4ub[1]) * (1.0f / 255.0f)) <= 0.04045f) ? ((in->color4ub[1]) * (1.0f / 255.0f)) * (1.0f / 12.92f) : (float)pow((((in->color4ub[1]) * (1.0f / 255.0f)) + 0.055f)*(1.0f/1.055f), 2.4f)); loadmodel->brushq3.data_color4f[i * 4 + 2] = ((((in->color4ub[2]) * (1.0f / 255.0f)) <= 0.04045f) ? ((in->color4ub[2]) * (1.0f / 255.0f)) * (1.0f / 12.92f) : (float)pow((((in->color4ub[2]) * (1.0f / 255.0f)) + 0.055f)*(1.0f/1.055f), 2.4f)); } } else { if(vid_sRGB.integer && vid_sRGB_fallback.integer && !vid.sRGB3D) { loadmodel->brushq3.data_color4f[i * 4 + 0] = ((((in->color4ub[0]) * (2.0f / 255.0f)) < 0.0031308f) ? ((in->color4ub[0]) * (2.0f / 255.0f)) * 12.92f : 1.055f * (float)pow(((in->color4ub[0]) * (2.0f / 255.0f)), 1.0f/2.4f) - 0.055f) * 0.5f; loadmodel->brushq3.data_color4f[i * 4 + 1] = ((((in->color4ub[1]) * (2.0f / 255.0f)) < 0.0031308f) ? ((in->color4ub[1]) * (2.0f / 255.0f)) * 12.92f : 1.055f * (float)pow(((in->color4ub[1]) * (2.0f / 255.0f)), 1.0f/2.4f) - 0.055f) * 0.5f; loadmodel->brushq3.data_color4f[i * 4 + 2] = ((((in->color4ub[2]) * (2.0f / 255.0f)) < 0.0031308f) ? ((in->color4ub[2]) * (2.0f / 255.0f)) * 12.92f : 1.055f * (float)pow(((in->color4ub[2]) * (2.0f / 255.0f)), 1.0f/2.4f) - 0.055f) * 0.5f; } else { loadmodel->brushq3.data_color4f[i * 4 + 0] = in->color4ub[0] * (1.0f / 255.0f); loadmodel->brushq3.data_color4f[i * 4 + 1] = in->color4ub[1] * (1.0f / 255.0f); loadmodel->brushq3.data_color4f[i * 4 + 2] = in->color4ub[2] * (1.0f / 255.0f); } } loadmodel->brushq3.data_color4f[i * 4 + 3] = in->color4ub[3] * (1.0f / 255.0f); if(in->color4ub[0] != 255 || in->color4ub[1] != 255 || in->color4ub[2] != 255) loadmodel->lit = true; } } static void Mod_Q3BSP_LoadTriangles(lump_t *l) { int *in; int *out; int i, count; in = (int *)(mod_base + l->fileofs); if (l->filelen % sizeof(int[3])) Host_Error("Mod_Q3BSP_LoadTriangles: funny lump size in %s",loadmodel->name); count = l->filelen / sizeof(*in); if(!loadmodel->brushq3.num_vertices) { if (count) Con_Printf("Mod_Q3BSP_LoadTriangles: %s has triangles but no vertexes, broken compiler, ignoring problem\n", loadmodel->name); loadmodel->brushq3.num_triangles = 0; return; } out = (int *)_Mem_Alloc(loadmodel->mempool, # 5395 "../../../model_brush.c" 3 4 ((void *)0) # 5395 "../../../model_brush.c" , count * sizeof(*out), 16, "../../../model_brush.c", 5395); loadmodel->brushq3.num_triangles = count / 3; loadmodel->brushq3.data_element3i = out; for (i = 0;i < count;i++, in++, out++) { *out = BuffLittleLong((unsigned char *)&(*in)); if (*out < 0 || *out >= loadmodel->brushq3.num_vertices) { Con_Printf("Mod_Q3BSP_LoadTriangles: invalid vertexindex %i (%i vertices), setting to 0\n", *out, loadmodel->brushq3.num_vertices); *out = 0; } } } static void Mod_Q3BSP_LoadLightmaps(lump_t *l, lump_t *faceslump) { q3dlightmap_t *input_pointer; int i; int j; int k; int count; int powerx; int powery; int powerxy; int powerdxy; int endlightmap; int mergegoal; int lightmapindex; int realcount; int realindex; int mergedwidth; int mergedheight; int mergedcolumns; int mergedrows; int mergedrowsxcolumns; int size; int bytesperpixel; int rgbmap[3]; unsigned char *c; unsigned char *mergedpixels; unsigned char *mergeddeluxepixels; unsigned char *mergebuf; char mapname[128]; qboolean external; unsigned char *inpixels[10000]; char vabuf[1024]; size = 128; bytesperpixel = 3; rgbmap[0] = 2; rgbmap[1] = 1; rgbmap[2] = 0; external = false; loadmodel->brushq3.lightmapsize = 128; if (cls.state == ca_dedicated) return; if(mod_q3bsp_nolightmaps.integer) { return; } else if(l->filelen) { if (developer_loading.integer) Con_Printf("Using internal lightmaps\n"); input_pointer = (q3dlightmap_t *)(mod_base + l->fileofs); if (l->filelen % sizeof(*input_pointer)) Host_Error("Mod_Q3BSP_LoadLightmaps: funny lump size in %s",loadmodel->name); count = l->filelen / sizeof(*input_pointer); for(i = 0; i < count; ++i) inpixels[i] = input_pointer[i].rgb; } else { if (developer_loading.integer) Con_Printf("Using external lightmaps\n"); FS_StripExtension(loadmodel->name, mapname, sizeof(mapname)); inpixels[0] = loadimagepixelsbgra(va(vabuf, sizeof(vabuf), "%s/lm_%04d", mapname, 0), false, false, false, # 5478 "../../../model_brush.c" 3 4 ((void *)0) # 5478 "../../../model_brush.c" ); if(!inpixels[0]) return; if(image_width != (int) CeilPowerOf2(image_width) || image_width != image_height) { _Mem_Free(inpixels[0], "../../../model_brush.c", 5485); Host_Error("Mod_Q3BSP_LoadLightmaps: invalid external lightmap size in %s",loadmodel->name); } size = image_width; bytesperpixel = 4; rgbmap[0] = 0; rgbmap[1] = 1; rgbmap[2] = 2; external = true; for(count = 1; ; ++count) { inpixels[count] = loadimagepixelsbgra(va(vabuf, sizeof(vabuf), "%s/lm_%04d", mapname, count), false, false, false, # 5498 "../../../model_brush.c" 3 4 ((void *)0) # 5498 "../../../model_brush.c" ); if(!inpixels[count]) break; if(image_width != size || image_height != size) { _Mem_Free(inpixels[count], "../../../model_brush.c", 5503); inpixels[count] = # 5504 "../../../model_brush.c" 3 4 ((void *)0) # 5504 "../../../model_brush.c" ; Con_Printf("Mod_Q3BSP_LoadLightmaps: mismatched lightmap size in %s - external lightmap %s/lm_%04d does not match earlier ones\n", loadmodel->name, mapname, count); break; } } } loadmodel->brushq3.lightmapsize = size; loadmodel->brushq3.num_originallightmaps = count; # 5525 "../../../model_brush.c" if (!loadmodel->brushq3.deluxemapping) { loadmodel->brushq3.deluxemapping = !(count & 1); loadmodel->brushq3.deluxemapping_modelspace = true; endlightmap = 0; if (loadmodel->brushq3.deluxemapping) { int facecount = faceslump->filelen / sizeof(q3dface_t); q3dface_t *faces = (q3dface_t *)(mod_base + faceslump->fileofs); for (i = 0;i < facecount;i++) { j = BuffLittleLong((unsigned char *)&(faces[i].lightmapindex)); if (j >= 0) { endlightmap = ((endlightmap) > (j + 1) ? (endlightmap) : (j + 1)); if ((j & 1) || j + 1 >= count) { loadmodel->brushq3.deluxemapping = false; break; } } } } # 5556 "../../../model_brush.c" if (endlightmap == 1 && count > 1) { c = inpixels[1]; for (i = 0;i < size*size;i++) { if (c[bytesperpixel*i + rgbmap[0]]) break; if (c[bytesperpixel*i + rgbmap[1]]) break; if (c[bytesperpixel*i + rgbmap[2]]) break; } if (i == size*size) { loadmodel->brushq3.deluxemapping = false; } } } Con_DPrintf("%s is %sdeluxemapped\n", loadmodel->name, loadmodel->brushq3.deluxemapping ? "" : "not "); realcount = count >> (int)loadmodel->brushq3.deluxemapping; mergegoal = 128<<((mod_q3bsp_lightmapmergepower.integer) >= (0) ? ((mod_q3bsp_lightmapmergepower.integer) < (6) ? (mod_q3bsp_lightmapmergepower.integer) : (6)) : (0)); mergegoal = ((mergegoal) >= (size) ? ((mergegoal) < ((int)vid.maxtexturesize_2d) ? (mergegoal) : ((int)vid.maxtexturesize_2d)) : (size)); while (mergegoal > size && mergegoal * mergegoal / 4 >= size * size * realcount) mergegoal /= 2; mergedwidth = mergegoal; mergedheight = mergegoal; if (mergedwidth * mergedheight / 2 >= size*size*realcount) mergedheight /= 2; loadmodel->brushq3.num_lightmapmergedwidthpower = 0; loadmodel->brushq3.num_lightmapmergedheightpower = 0; while (mergedwidth > size<brushq3.num_lightmapmergedwidthpower) loadmodel->brushq3.num_lightmapmergedwidthpower++; while (mergedheight > size<brushq3.num_lightmapmergedheightpower) loadmodel->brushq3.num_lightmapmergedheightpower++; loadmodel->brushq3.num_lightmapmergedwidthheightdeluxepower = loadmodel->brushq3.num_lightmapmergedwidthpower + loadmodel->brushq3.num_lightmapmergedheightpower + (loadmodel->brushq3.deluxemapping ? 1 : 0); powerx = loadmodel->brushq3.num_lightmapmergedwidthpower; powery = loadmodel->brushq3.num_lightmapmergedheightpower; powerxy = powerx+powery; powerdxy = loadmodel->brushq3.deluxemapping + powerxy; mergedcolumns = 1 << powerx; mergedrows = 1 << powery; mergedrowsxcolumns = 1 << powerxy; loadmodel->brushq3.num_mergedlightmaps = (realcount + (1 << powerxy) - 1) >> powerxy; loadmodel->brushq3.data_lightmaps = (rtexture_t **)_Mem_Alloc(loadmodel->mempool, # 5616 "../../../model_brush.c" 3 4 ((void *)0) # 5616 "../../../model_brush.c" , loadmodel->brushq3.num_mergedlightmaps * sizeof(rtexture_t *), 16, "../../../model_brush.c", 5616); if (loadmodel->brushq3.deluxemapping) loadmodel->brushq3.data_deluxemaps = (rtexture_t **)_Mem_Alloc(loadmodel->mempool, # 5618 "../../../model_brush.c" 3 4 ((void *)0) # 5618 "../../../model_brush.c" , loadmodel->brushq3.num_mergedlightmaps * sizeof(rtexture_t *), 16, "../../../model_brush.c", 5618); if (loadmodel->texturepool == # 5621 "../../../model_brush.c" 3 4 ((void *)0) # 5621 "../../../model_brush.c" && cls.state != ca_dedicated) loadmodel->texturepool = R_AllocTexturePool(); mergedpixels = (unsigned char *) _Mem_Alloc(tempmempool, # 5624 "../../../model_brush.c" 3 4 ((void *)0) # 5624 "../../../model_brush.c" , mergedwidth * mergedheight * 4, 16, "../../../model_brush.c", 5624); mergeddeluxepixels = loadmodel->brushq3.deluxemapping ? (unsigned char *) _Mem_Alloc(tempmempool, # 5625 "../../../model_brush.c" 3 4 ((void *)0) # 5625 "../../../model_brush.c" , mergedwidth * mergedheight * 4, 16, "../../../model_brush.c", 5625) : # 5625 "../../../model_brush.c" 3 4 ((void *)0) # 5625 "../../../model_brush.c" ; for (i = 0;i < count;i++) { realindex = i >> (int)loadmodel->brushq3.deluxemapping; lightmapindex = i >> powerdxy; mergebuf = (loadmodel->brushq3.deluxemapping && (i & 1)) ? mergeddeluxepixels : mergedpixels; mergebuf += 4 * (realindex & (mergedcolumns-1))*size + 4 * ((realindex >> powerx) & (mergedrows-1))*mergedwidth*size; if ((i & 1) == 0 || !loadmodel->brushq3.deluxemapping) Con_DPrintf("copying original lightmap %i (%ix%i) to %i (at %i,%i)\n", i, size, size, lightmapindex, (realindex & (mergedcolumns-1))*size, ((realindex >> powerx) & (mergedrows-1))*size); for (j = 0;j < size;j++) for (k = 0;k < size;k++) { mergebuf[(j*mergedwidth+k)*4+0] = inpixels[i][(j*size+k)*bytesperpixel+rgbmap[0]]; mergebuf[(j*mergedwidth+k)*4+1] = inpixels[i][(j*size+k)*bytesperpixel+rgbmap[1]]; mergebuf[(j*mergedwidth+k)*4+2] = inpixels[i][(j*size+k)*bytesperpixel+rgbmap[2]]; mergebuf[(j*mergedwidth+k)*4+3] = 255; } if (((realindex + 1) & (mergedrowsxcolumns - 1)) == 0 || (realindex + 1) == realcount) { if (loadmodel->brushq3.deluxemapping && (i & 1)) loadmodel->brushq3.data_deluxemaps[lightmapindex] = R_LoadTexture2D(loadmodel->texturepool, va(vabuf, sizeof(vabuf), "deluxemap%04i", lightmapindex), mergedwidth, mergedheight, mergeddeluxepixels, TEXTYPE_BGRA, 0x00000080 | (gl_texturecompression_q3bspdeluxemaps.integer ? 0x00000200 : 0), -1, # 5652 "../../../model_brush.c" 3 4 ((void *)0) # 5652 "../../../model_brush.c" ); else { if(mod_q3bsp_sRGBlightmaps.integer) { textype_t t; if(vid_sRGB.integer && vid_sRGB_fallback.integer && !vid.sRGB3D) { t = TEXTYPE_BGRA; } else t = TEXTYPE_SRGB_BGRA; loadmodel->brushq3.data_lightmaps [lightmapindex] = R_LoadTexture2D(loadmodel->texturepool, va(vabuf, sizeof(vabuf), "lightmap%04i", lightmapindex), mergedwidth, mergedheight, mergedpixels, t, 0x00000080 | (gl_texturecompression_q3bsplightmaps.integer ? 0x00000200 : 0), -1, # 5665 "../../../model_brush.c" 3 4 ((void *)0) # 5665 "../../../model_brush.c" ); } else { if(vid_sRGB.integer && vid_sRGB_fallback.integer && !vid.sRGB3D) Image_MakesRGBColorsFromLinear_Lightmap(mergedpixels, mergedpixels, mergedwidth * mergedheight); loadmodel->brushq3.data_lightmaps [lightmapindex] = R_LoadTexture2D(loadmodel->texturepool, va(vabuf, sizeof(vabuf), "lightmap%04i", lightmapindex), mergedwidth, mergedheight, mergedpixels, TEXTYPE_BGRA, 0x00000080 | (gl_texturecompression_q3bsplightmaps.integer ? 0x00000200 : 0), -1, # 5671 "../../../model_brush.c" 3 4 ((void *)0) # 5671 "../../../model_brush.c" ); } } } } if (mergeddeluxepixels) _Mem_Free(mergeddeluxepixels, "../../../model_brush.c", 5678); _Mem_Free(mergedpixels, "../../../model_brush.c", 5679); if(external) { for(i = 0; i < count; ++i) _Mem_Free(inpixels[i], "../../../model_brush.c", 5683); } } static void Mod_Q3BSP_BuildBBoxes(const int *element3i, int num_triangles, const float *vertex3f, float **collisionbbox6f, int *collisionstride, int stride) { int j, k, cnt, tri; float *mins, *maxs; const float *vert; *collisionstride = stride; if(stride > 0) { cnt = (num_triangles + stride - 1) / stride; *collisionbbox6f = (float *) _Mem_Alloc(loadmodel->mempool, # 5696 "../../../model_brush.c" 3 4 ((void *)0) # 5696 "../../../model_brush.c" , sizeof(float[6]) * cnt, 16, "../../../model_brush.c", 5696); for(j = 0; j < cnt; ++j) { mins = &((*collisionbbox6f)[6 * j + 0]); maxs = &((*collisionbbox6f)[6 * j + 3]); for(k = 0; k < stride; ++k) { tri = j * stride + k; if(tri >= num_triangles) break; vert = &(vertex3f[element3i[3 * tri + 0] * 3]); if(!k || vert[0] < mins[0]) mins[0] = vert[0]; if(!k || vert[1] < mins[1]) mins[1] = vert[1]; if(!k || vert[2] < mins[2]) mins[2] = vert[2]; if(!k || vert[0] > maxs[0]) maxs[0] = vert[0]; if(!k || vert[1] > maxs[1]) maxs[1] = vert[1]; if(!k || vert[2] > maxs[2]) maxs[2] = vert[2]; vert = &(vertex3f[element3i[3 * tri + 1] * 3]); if(vert[0] < mins[0]) mins[0] = vert[0]; if(vert[1] < mins[1]) mins[1] = vert[1]; if(vert[2] < mins[2]) mins[2] = vert[2]; if(vert[0] > maxs[0]) maxs[0] = vert[0]; if(vert[1] > maxs[1]) maxs[1] = vert[1]; if(vert[2] > maxs[2]) maxs[2] = vert[2]; vert = &(vertex3f[element3i[3 * tri + 2] * 3]); if(vert[0] < mins[0]) mins[0] = vert[0]; if(vert[1] < mins[1]) mins[1] = vert[1]; if(vert[2] < mins[2]) mins[2] = vert[2]; if(vert[0] > maxs[0]) maxs[0] = vert[0]; if(vert[1] > maxs[1]) maxs[1] = vert[1]; if(vert[2] > maxs[2]) maxs[2] = vert[2]; } } } else *collisionbbox6f = # 5731 "../../../model_brush.c" 3 4 ((void *)0) # 5731 "../../../model_brush.c" ; } typedef struct patchtess_s { patchinfo_t info; int surface_id; float lodgroup[6]; float *originalvertex3f; } patchtess_t; # 5754 "../../../model_brush.c" static void Mod_Q3BSP_LoadFaces(lump_t *l) { q3dface_t *in, *oldin; msurface_t *out, *oldout; int i, oldi, j, n, count, invalidelements, patchsize[2], finalwidth, finalheight, xtess, ytess, finalvertices, finaltriangles, firstvertex, firstelement, type, oldnumtriangles, oldnumtriangles2, meshvertices, meshtriangles, collisionvertices, collisiontriangles, numvertices, numtriangles, cxtess, cytess; float lightmaptcbase[2], lightmaptcscale[2]; float *originalvertex3f; float *originalnormal3f; float *originalcolor4f; float *originaltexcoordtexture2f; float *originaltexcoordlightmap2f; float *surfacecollisionvertex3f; int *surfacecollisionelement3i; float *v; patchtess_t *patchtess = # 5772 "../../../model_brush.c" 3 4 ((void *)0) # 5772 "../../../model_brush.c" ; int patchtesscount = 0; qboolean again; in = (q3dface_t *)(mod_base + l->fileofs); if (l->filelen % sizeof(*in)) Host_Error("Mod_Q3BSP_LoadFaces: funny lump size in %s",loadmodel->name); count = l->filelen / sizeof(*in); out = (msurface_t *)_Mem_Alloc(loadmodel->mempool, # 5780 "../../../model_brush.c" 3 4 ((void *)0) # 5780 "../../../model_brush.c" , count * sizeof(*out), 16, "../../../model_brush.c", 5780); loadmodel->data_surfaces = out; loadmodel->num_surfaces = count; if(count > 0) patchtess = (patchtess_t*) _Mem_Alloc(tempmempool, # 5786 "../../../model_brush.c" 3 4 ((void *)0) # 5786 "../../../model_brush.c" , count * sizeof(*patchtess), 16, "../../../model_brush.c", 5786); i = 0; oldi = i; oldin = in; oldout = out; meshvertices = 0; meshtriangles = 0; for (;i < count;i++, in++, out++) { type = BuffLittleLong((unsigned char *)&(in->type)); if (type != 1 && type != 2 && type != 3 && type != 4) { Con_DPrintf("Mod_Q3BSP_LoadFaces: face #%i: unknown face type %i\n", i, type); continue; } n = BuffLittleLong((unsigned char *)&(in->textureindex)); if (n < 0 || n >= loadmodel->num_textures) { Con_DPrintf("Mod_Q3BSP_LoadFaces: face #%i: invalid textureindex %i (%i textures)\n", i, n, loadmodel->num_textures); continue; } out->texture = loadmodel->data_textures + n; n = BuffLittleLong((unsigned char *)&(in->effectindex)); if (n < -1 || n >= loadmodel->brushq3.num_effects) { if (developer_extra.integer) Con_DPrintf("Mod_Q3BSP_LoadFaces: face #%i (texture \"%s\"): invalid effectindex %i (%i effects)\n", i, out->texture->name, n, loadmodel->brushq3.num_effects); n = -1; } if (n == -1) out->effect = # 5822 "../../../model_brush.c" 3 4 ((void *)0) # 5822 "../../../model_brush.c" ; else out->effect = loadmodel->brushq3.data_effects + n; if (cls.state != ca_dedicated) { out->lightmaptexture = # 5828 "../../../model_brush.c" 3 4 ((void *)0) # 5828 "../../../model_brush.c" ; out->deluxemaptexture = r_texture_blanknormalmap; n = BuffLittleLong((unsigned char *)&(in->lightmapindex)); if (n < 0) n = -1; else if (n >= loadmodel->brushq3.num_originallightmaps) { if(loadmodel->brushq3.num_originallightmaps != 0) Con_Printf("Mod_Q3BSP_LoadFaces: face #%i (texture \"%s\"): invalid lightmapindex %i (%i lightmaps)\n", i, out->texture->name, n, loadmodel->brushq3.num_originallightmaps); n = -1; } else { out->lightmaptexture = loadmodel->brushq3.data_lightmaps[n >> loadmodel->brushq3.num_lightmapmergedwidthheightdeluxepower]; if (loadmodel->brushq3.deluxemapping) out->deluxemaptexture = loadmodel->brushq3.data_deluxemaps[n >> loadmodel->brushq3.num_lightmapmergedwidthheightdeluxepower]; loadmodel->lit = true; } } firstvertex = BuffLittleLong((unsigned char *)&(in->firstvertex)); numvertices = BuffLittleLong((unsigned char *)&(in->numvertices)); firstelement = BuffLittleLong((unsigned char *)&(in->firstelement)); numtriangles = BuffLittleLong((unsigned char *)&(in->numelements)) / 3; if (numtriangles * 3 != BuffLittleLong((unsigned char *)&(in->numelements))) { Con_Printf("Mod_Q3BSP_LoadFaces: face #%i (texture \"%s\"): numelements %i is not a multiple of 3\n", i, out->texture->name, BuffLittleLong((unsigned char *)&(in->numelements))); continue; } if (firstvertex < 0 || firstvertex + numvertices > loadmodel->brushq3.num_vertices) { Con_Printf("Mod_Q3BSP_LoadFaces: face #%i (texture \"%s\"): invalid vertex range %i : %i (%i vertices)\n", i, out->texture->name, firstvertex, firstvertex + numvertices, loadmodel->brushq3.num_vertices); continue; } if (firstelement < 0 || firstelement + numtriangles * 3 > loadmodel->brushq3.num_triangles * 3) { Con_Printf("Mod_Q3BSP_LoadFaces: face #%i (texture \"%s\"): invalid element range %i : %i (%i elements)\n", i, out->texture->name, firstelement, firstelement + numtriangles * 3, loadmodel->brushq3.num_triangles * 3); continue; } switch(type) { case 1: case 3: break; case 2: patchsize[0] = BuffLittleLong((unsigned char *)&(in->specific.patch.patchsize[0])); patchsize[1] = BuffLittleLong((unsigned char *)&(in->specific.patch.patchsize[1])); if (numvertices != (patchsize[0] * patchsize[1]) || patchsize[0] < 3 || patchsize[1] < 3 || !(patchsize[0] & 1) || !(patchsize[1] & 1) || patchsize[0] * patchsize[1] >= ((r_subdivisions_maxvertices.integer) < (r_subdivisions_collision_maxvertices.integer) ? (r_subdivisions_maxvertices.integer) : (r_subdivisions_collision_maxvertices.integer))) { Con_Printf("Mod_Q3BSP_LoadFaces: face #%i (texture \"%s\"): invalid patchsize %ix%i\n", i, out->texture->name, patchsize[0], patchsize[1]); continue; } originalvertex3f = loadmodel->brushq3.data_vertex3f + firstvertex * 3; xtess = Q3PatchTesselationOnX(patchsize[0], patchsize[1], 3, originalvertex3f, r_subdivisions_tolerance.value); ytess = Q3PatchTesselationOnY(patchsize[0], patchsize[1], 3, originalvertex3f, r_subdivisions_tolerance.value); xtess = ((xtess) >= (r_subdivisions_mintess.integer) ? ((xtess) < (r_subdivisions_maxtess.integer) ? (xtess) : (r_subdivisions_maxtess.integer)) : (r_subdivisions_mintess.integer)); ytess = ((ytess) >= (r_subdivisions_mintess.integer) ? ((ytess) < (r_subdivisions_maxtess.integer) ? (ytess) : (r_subdivisions_maxtess.integer)) : (r_subdivisions_mintess.integer)); xtess = ((xtess) >= (0) ? ((xtess) < (1024) ? (xtess) : (1024)) : (0)); ytess = ((ytess) >= (0) ? ((ytess) < (1024) ? (ytess) : (1024)) : (0)); cxtess = Q3PatchTesselationOnX(patchsize[0], patchsize[1], 3, originalvertex3f, r_subdivisions_collision_tolerance.value); cytess = Q3PatchTesselationOnY(patchsize[0], patchsize[1], 3, originalvertex3f, r_subdivisions_collision_tolerance.value); cxtess = ((cxtess) >= (r_subdivisions_collision_mintess.integer) ? ((cxtess) < (r_subdivisions_collision_maxtess.integer) ? (cxtess) : (r_subdivisions_collision_maxtess.integer)) : (r_subdivisions_collision_mintess.integer)); cytess = ((cytess) >= (r_subdivisions_collision_mintess.integer) ? ((cytess) < (r_subdivisions_collision_maxtess.integer) ? (cytess) : (r_subdivisions_collision_maxtess.integer)) : (r_subdivisions_collision_mintess.integer)); cxtess = ((cxtess) >= (0) ? ((cxtess) < (1024) ? (cxtess) : (1024)) : (0)); cytess = ((cytess) >= (0) ? ((cytess) < (1024) ? (cytess) : (1024)) : (0)); patchtess[patchtesscount].info.xsize = patchsize[0]; patchtess[patchtesscount].info.ysize = patchsize[1]; patchtess[patchtesscount].info.lods[1].xtess = xtess; patchtess[patchtesscount].info.lods[1].ytess = ytess; patchtess[patchtesscount].info.lods[0].xtess = cxtess; patchtess[patchtesscount].info.lods[0].ytess = cytess; patchtess[patchtesscount].surface_id = i; patchtess[patchtesscount].lodgroup[0] = BuffLittleFloat((unsigned char *)&(in->specific.patch.mins[0])); patchtess[patchtesscount].lodgroup[1] = BuffLittleFloat((unsigned char *)&(in->specific.patch.mins[1])); patchtess[patchtesscount].lodgroup[2] = BuffLittleFloat((unsigned char *)&(in->specific.patch.mins[2])); patchtess[patchtesscount].lodgroup[3] = BuffLittleFloat((unsigned char *)&(in->specific.patch.maxs[0])); patchtess[patchtesscount].lodgroup[4] = BuffLittleFloat((unsigned char *)&(in->specific.patch.maxs[1])); patchtess[patchtesscount].lodgroup[5] = BuffLittleFloat((unsigned char *)&(in->specific.patch.maxs[2])); patchtess[patchtesscount].originalvertex3f = originalvertex3f; ++patchtesscount; break; case 4: if (developer_extra.integer) Con_DPrintf("Mod_Q3BSP_LoadFaces: face #%i (texture \"%s\"): Q3FACETYPE_FLARE not supported (yet)\n", i, out->texture->name); continue; } out->num_vertices = numvertices; out->num_triangles = numtriangles; meshvertices += out->num_vertices; meshtriangles += out->num_triangles; } do { again = false; for(i = 0; i < patchtesscount; ++i) { for(j = i+1; j < patchtesscount; ++j) { if (!( (patchtess[i]).lodgroup[0] == (patchtess[j]).lodgroup[0] && (patchtess[i]).lodgroup[1] == (patchtess[j]).lodgroup[1] && (patchtess[i]).lodgroup[2] == (patchtess[j]).lodgroup[2] && (patchtess[i]).lodgroup[3] == (patchtess[j]).lodgroup[3] && (patchtess[i]).lodgroup[4] == (patchtess[j]).lodgroup[4] && (patchtess[i]).lodgroup[5] == (patchtess[j]).lodgroup[5] )) continue; if (Q3PatchAdjustTesselation(3, &patchtess[i].info, patchtess[i].originalvertex3f, &patchtess[j].info, patchtess[j].originalvertex3f) ) again = true; } } } while (again); collisionvertices = 0; collisiontriangles = 0; for(i = 0; i < patchtesscount; ++i) { finalwidth = Q3PatchDimForTess(patchtess[i].info.xsize, patchtess[i].info.lods[1].xtess); finalheight = Q3PatchDimForTess(patchtess[i].info.ysize,patchtess[i].info.lods[1].ytess); numvertices = finalwidth * finalheight; numtriangles = (finalwidth - 1) * (finalheight - 1) * 2; oldout[patchtess[i].surface_id].num_vertices = numvertices; oldout[patchtess[i].surface_id].num_triangles = numtriangles; meshvertices += oldout[patchtess[i].surface_id].num_vertices; meshtriangles += oldout[patchtess[i].surface_id].num_triangles; finalwidth = Q3PatchDimForTess(patchtess[i].info.xsize, patchtess[i].info.lods[0].xtess); finalheight = Q3PatchDimForTess(patchtess[i].info.ysize,patchtess[i].info.lods[0].ytess); numvertices = finalwidth * finalheight; numtriangles = (finalwidth - 1) * (finalheight - 1) * 2; oldout[patchtess[i].surface_id].num_collisionvertices = numvertices; oldout[patchtess[i].surface_id].num_collisiontriangles = numtriangles; collisionvertices += oldout[patchtess[i].surface_id].num_collisionvertices; collisiontriangles += oldout[patchtess[i].surface_id].num_collisiontriangles; } i = oldi; in = oldin; out = oldout; Mod_AllocSurfMesh(loadmodel->mempool, meshvertices, meshtriangles, false, true, false); if (collisiontriangles) { loadmodel->brush.data_collisionvertex3f = (float *)_Mem_Alloc(loadmodel->mempool, # 5984 "../../../model_brush.c" 3 4 ((void *)0) # 5984 "../../../model_brush.c" , collisionvertices * sizeof(float[3]), 16, "../../../model_brush.c", 5984); loadmodel->brush.data_collisionelement3i = (int *)_Mem_Alloc(loadmodel->mempool, # 5985 "../../../model_brush.c" 3 4 ((void *)0) # 5985 "../../../model_brush.c" , collisiontriangles * sizeof(int[3]), 16, "../../../model_brush.c", 5985); } meshvertices = 0; meshtriangles = 0; collisionvertices = 0; collisiontriangles = 0; for (;i < count && meshvertices + out->num_vertices <= loadmodel->surfmesh.num_vertices;i++, in++, out++) { if (out->num_vertices < 3 || out->num_triangles < 1) continue; type = BuffLittleLong((unsigned char *)&(in->type)); firstvertex = BuffLittleLong((unsigned char *)&(in->firstvertex)); firstelement = BuffLittleLong((unsigned char *)&(in->firstelement)); out->num_firstvertex = meshvertices; out->num_firsttriangle = meshtriangles; out->num_firstcollisiontriangle = collisiontriangles; switch(type) { case 1: case 3: for (j = 0;j < out->num_vertices;j++) { (loadmodel->surfmesh.data_vertex3f + 3 * out->num_firstvertex)[j * 3 + 0] = loadmodel->brushq3.data_vertex3f[(firstvertex + j) * 3 + 0]; (loadmodel->surfmesh.data_vertex3f + 3 * out->num_firstvertex)[j * 3 + 1] = loadmodel->brushq3.data_vertex3f[(firstvertex + j) * 3 + 1]; (loadmodel->surfmesh.data_vertex3f + 3 * out->num_firstvertex)[j * 3 + 2] = loadmodel->brushq3.data_vertex3f[(firstvertex + j) * 3 + 2]; (loadmodel->surfmesh.data_normal3f + 3 * out->num_firstvertex)[j * 3 + 0] = loadmodel->brushq3.data_normal3f[(firstvertex + j) * 3 + 0]; (loadmodel->surfmesh.data_normal3f + 3 * out->num_firstvertex)[j * 3 + 1] = loadmodel->brushq3.data_normal3f[(firstvertex + j) * 3 + 1]; (loadmodel->surfmesh.data_normal3f + 3 * out->num_firstvertex)[j * 3 + 2] = loadmodel->brushq3.data_normal3f[(firstvertex + j) * 3 + 2]; (loadmodel->surfmesh.data_texcoordtexture2f + 2 * out->num_firstvertex)[j * 2 + 0] = loadmodel->brushq3.data_texcoordtexture2f[(firstvertex + j) * 2 + 0]; (loadmodel->surfmesh.data_texcoordtexture2f + 2 * out->num_firstvertex)[j * 2 + 1] = loadmodel->brushq3.data_texcoordtexture2f[(firstvertex + j) * 2 + 1]; (loadmodel->surfmesh.data_texcoordlightmap2f + 2 * out->num_firstvertex)[j * 2 + 0] = loadmodel->brushq3.data_texcoordlightmap2f[(firstvertex + j) * 2 + 0]; (loadmodel->surfmesh.data_texcoordlightmap2f + 2 * out->num_firstvertex)[j * 2 + 1] = loadmodel->brushq3.data_texcoordlightmap2f[(firstvertex + j) * 2 + 1]; (loadmodel->surfmesh.data_lightmapcolor4f + 4 * out->num_firstvertex)[j * 4 + 0] = loadmodel->brushq3.data_color4f[(firstvertex + j) * 4 + 0]; (loadmodel->surfmesh.data_lightmapcolor4f + 4 * out->num_firstvertex)[j * 4 + 1] = loadmodel->brushq3.data_color4f[(firstvertex + j) * 4 + 1]; (loadmodel->surfmesh.data_lightmapcolor4f + 4 * out->num_firstvertex)[j * 4 + 2] = loadmodel->brushq3.data_color4f[(firstvertex + j) * 4 + 2]; (loadmodel->surfmesh.data_lightmapcolor4f + 4 * out->num_firstvertex)[j * 4 + 3] = loadmodel->brushq3.data_color4f[(firstvertex + j) * 4 + 3]; } for (j = 0;j < out->num_triangles*3;j++) (loadmodel->surfmesh.data_element3i + 3 * out->num_firsttriangle)[j] = loadmodel->brushq3.data_element3i[firstelement + j] + out->num_firstvertex; break; case 2: patchsize[0] = BuffLittleLong((unsigned char *)&(in->specific.patch.patchsize[0])); patchsize[1] = BuffLittleLong((unsigned char *)&(in->specific.patch.patchsize[1])); originalvertex3f = loadmodel->brushq3.data_vertex3f + firstvertex * 3; originalnormal3f = loadmodel->brushq3.data_normal3f + firstvertex * 3; originaltexcoordtexture2f = loadmodel->brushq3.data_texcoordtexture2f + firstvertex * 2; originaltexcoordlightmap2f = loadmodel->brushq3.data_texcoordlightmap2f + firstvertex * 2; originalcolor4f = loadmodel->brushq3.data_color4f + firstvertex * 4; xtess = ytess = cxtess = cytess = -1; for(j = 0; j < patchtesscount; ++j) if(patchtess[j].surface_id == i) { xtess = patchtess[j].info.lods[1].xtess; ytess = patchtess[j].info.lods[1].ytess; cxtess = patchtess[j].info.lods[0].xtess; cytess = patchtess[j].info.lods[0].ytess; break; } if(xtess == -1) { Con_Printf("ERROR: patch %d isn't preprocessed?!?\n", i); xtess = ytess = cxtess = cytess = 0; } finalwidth = Q3PatchDimForTess(patchsize[0],xtess); finalheight = Q3PatchDimForTess(patchsize[1],ytess); finalvertices = finalwidth * finalheight; oldnumtriangles = finaltriangles = (finalwidth - 1) * (finalheight - 1) * 2; type = 3; Q3PatchTesselateFloat(3, sizeof(float[3]), (loadmodel->surfmesh.data_vertex3f + 3 * out->num_firstvertex), patchsize[0], patchsize[1], sizeof(float[3]), originalvertex3f, xtess, ytess); Q3PatchTesselateFloat(3, sizeof(float[3]), (loadmodel->surfmesh.data_normal3f + 3 * out->num_firstvertex), patchsize[0], patchsize[1], sizeof(float[3]), originalnormal3f, xtess, ytess); Q3PatchTesselateFloat(2, sizeof(float[2]), (loadmodel->surfmesh.data_texcoordtexture2f + 2 * out->num_firstvertex), patchsize[0], patchsize[1], sizeof(float[2]), originaltexcoordtexture2f, xtess, ytess); Q3PatchTesselateFloat(2, sizeof(float[2]), (loadmodel->surfmesh.data_texcoordlightmap2f + 2 * out->num_firstvertex), patchsize[0], patchsize[1], sizeof(float[2]), originaltexcoordlightmap2f, xtess, ytess); Q3PatchTesselateFloat(4, sizeof(float[4]), (loadmodel->surfmesh.data_lightmapcolor4f + 4 * out->num_firstvertex), patchsize[0], patchsize[1], sizeof(float[4]), originalcolor4f, xtess, ytess); Q3PatchTriangleElements((loadmodel->surfmesh.data_element3i + 3 * out->num_firsttriangle), finalwidth, finalheight, out->num_firstvertex); out->num_triangles = Mod_RemoveDegenerateTriangles(out->num_triangles, (loadmodel->surfmesh.data_element3i + 3 * out->num_firsttriangle), (loadmodel->surfmesh.data_element3i + 3 * out->num_firsttriangle), loadmodel->surfmesh.data_vertex3f); if (developer_extra.integer) { if (out->num_triangles < finaltriangles) Con_DPrintf("Mod_Q3BSP_LoadFaces: %ix%i curve subdivided to %i vertices / %i triangles, %i degenerate triangles removed (leaving %i)\n", patchsize[0], patchsize[1], out->num_vertices, finaltriangles, finaltriangles - out->num_triangles, out->num_triangles); else Con_DPrintf("Mod_Q3BSP_LoadFaces: %ix%i curve subdivided to %i vertices / %i triangles\n", patchsize[0], patchsize[1], out->num_vertices, out->num_triangles); } finalwidth = Q3PatchDimForTess(patchsize[0],cxtess); finalheight = Q3PatchDimForTess(patchsize[1],cytess); finalvertices = finalwidth * finalheight; oldnumtriangles2 = finaltriangles = (finalwidth - 1) * (finalheight - 1) * 2; out->deprecatedq3data_collisionvertex3f = (float *)_Mem_Alloc(loadmodel->mempool, # 6083 "../../../model_brush.c" 3 4 ((void *)0) # 6083 "../../../model_brush.c" , sizeof(float[3]) * finalvertices, 16, "../../../model_brush.c", 6083); out->deprecatedq3data_collisionelement3i = (int *)_Mem_Alloc(loadmodel->mempool, # 6084 "../../../model_brush.c" 3 4 ((void *)0) # 6084 "../../../model_brush.c" , sizeof(int[3]) * finaltriangles, 16, "../../../model_brush.c", 6084); out->num_collisionvertices = finalvertices; out->num_collisiontriangles = finaltriangles; Q3PatchTesselateFloat(3, sizeof(float[3]), out->deprecatedq3data_collisionvertex3f, patchsize[0], patchsize[1], sizeof(float[3]), originalvertex3f, cxtess, cytess); Q3PatchTriangleElements(out->deprecatedq3data_collisionelement3i, finalwidth, finalheight, 0); Mod_SnapVertices(3, finalvertices, out->deprecatedq3data_collisionvertex3f, 1); out->num_collisiontriangles = Mod_RemoveDegenerateTriangles(finaltriangles, out->deprecatedq3data_collisionelement3i, out->deprecatedq3data_collisionelement3i, out->deprecatedq3data_collisionvertex3f); Mod_Q3BSP_BuildBBoxes(out->deprecatedq3data_collisionelement3i, out->num_collisiontriangles, out->deprecatedq3data_collisionvertex3f, &out->deprecatedq3data_collisionbbox6f, &out->deprecatedq3num_collisionbboxstride, mod_q3bsp_curves_collisions_stride.integer); Mod_Q3BSP_BuildBBoxes(loadmodel->surfmesh.data_element3i + 3 * out->num_firsttriangle, out->num_triangles, loadmodel->surfmesh.data_vertex3f, &out->deprecatedq3data_bbox6f, &out->deprecatedq3num_bboxstride, mod_q3bsp_curves_stride.integer); surfacecollisionvertex3f = loadmodel->brush.data_collisionvertex3f + collisionvertices * 3; surfacecollisionelement3i = loadmodel->brush.data_collisionelement3i + collisiontriangles * 3; Q3PatchTesselateFloat(3, sizeof(float[3]), surfacecollisionvertex3f, patchsize[0], patchsize[1], sizeof(float[3]), originalvertex3f, cxtess, cytess); Q3PatchTriangleElements(surfacecollisionelement3i, finalwidth, finalheight, collisionvertices); Mod_SnapVertices(3, finalvertices, surfacecollisionvertex3f, 1); { int nc = out->num_collisiontriangles; out->num_collisiontriangles = Mod_RemoveDegenerateTriangles(finaltriangles, surfacecollisionelement3i, surfacecollisionelement3i, loadmodel->brush.data_collisionvertex3f); if(nc != out->num_collisiontriangles) { Con_Printf("number of collision triangles differs between BIH and BSP. FAIL.\n"); } } if (developer_extra.integer) Con_DPrintf("Mod_Q3BSP_LoadFaces: %ix%i curve became %i:%i vertices / %i:%i triangles (%i:%i degenerate)\n", patchsize[0], patchsize[1], out->num_vertices, out->num_collisionvertices, oldnumtriangles, oldnumtriangles2, oldnumtriangles - out->num_triangles, oldnumtriangles2 - out->num_collisiontriangles); collisionvertices += finalvertices; collisiontriangles += out->num_collisiontriangles; break; default: break; } meshvertices += out->num_vertices; meshtriangles += out->num_triangles; for (j = 0, invalidelements = 0;j < out->num_triangles * 3;j++) if ((loadmodel->surfmesh.data_element3i + 3 * out->num_firsttriangle)[j] < out->num_firstvertex || (loadmodel->surfmesh.data_element3i + 3 * out->num_firsttriangle)[j] >= out->num_firstvertex + out->num_vertices) invalidelements++; if (invalidelements) { Con_Printf("Mod_Q3BSP_LoadFaces: Warning: face #%i has %i invalid elements, type = %i, texture->name = \"%s\", texture->surfaceflags = %i, firstvertex = %i, numvertices = %i, firstelement = %i, numelements = %i, elements list:\n", i, invalidelements, type, out->texture->name, out->texture->surfaceflags, firstvertex, out->num_vertices, firstelement, out->num_triangles * 3); for (j = 0;j < out->num_triangles * 3;j++) { Con_Printf(" %i", (loadmodel->surfmesh.data_element3i + 3 * out->num_firsttriangle)[j] - out->num_firstvertex); if ((loadmodel->surfmesh.data_element3i + 3 * out->num_firsttriangle)[j] < out->num_firstvertex || (loadmodel->surfmesh.data_element3i + 3 * out->num_firsttriangle)[j] >= out->num_firstvertex + out->num_vertices) (loadmodel->surfmesh.data_element3i + 3 * out->num_firsttriangle)[j] = out->num_firstvertex; } Con_Print("\n"); } ((out->mins)[0]=(out->mins)[1]=(out->mins)[2]=0); ((out->maxs)[0]=(out->maxs)[1]=(out->maxs)[2]=0); if (out->num_vertices) { if (cls.state != ca_dedicated && out->lightmaptexture) { int lightmapindex = BuffLittleLong((unsigned char *)&(in->lightmapindex)) >> (loadmodel->brushq3.deluxemapping ? 1 : 0); int mergewidth = R_TextureWidth(out->lightmaptexture) / loadmodel->brushq3.lightmapsize; int mergeheight = R_TextureHeight(out->lightmaptexture) / loadmodel->brushq3.lightmapsize; lightmapindex &= mergewidth * mergeheight - 1; lightmaptcscale[0] = 1.0f / mergewidth; lightmaptcscale[1] = 1.0f / mergeheight; lightmaptcbase[0] = (lightmapindex % mergewidth) * lightmaptcscale[0]; lightmaptcbase[1] = (lightmapindex / mergewidth) * lightmaptcscale[1]; for (j = 0, v = loadmodel->surfmesh.data_texcoordlightmap2f + 2 * out->num_firstvertex;j < out->num_vertices;j++, v += 2) { v[0] = v[0] * lightmaptcscale[0] + lightmaptcbase[0]; v[1] = v[1] * lightmaptcscale[1] + lightmaptcbase[1]; } } ((out->mins)[0]=((loadmodel->surfmesh.data_vertex3f + 3 * out->num_firstvertex))[0],(out->mins)[1]=((loadmodel->surfmesh.data_vertex3f + 3 * out->num_firstvertex))[1],(out->mins)[2]=((loadmodel->surfmesh.data_vertex3f + 3 * out->num_firstvertex))[2]); ((out->maxs)[0]=((loadmodel->surfmesh.data_vertex3f + 3 * out->num_firstvertex))[0],(out->maxs)[1]=((loadmodel->surfmesh.data_vertex3f + 3 * out->num_firstvertex))[1],(out->maxs)[2]=((loadmodel->surfmesh.data_vertex3f + 3 * out->num_firstvertex))[2]); for (j = 1, v = (loadmodel->surfmesh.data_vertex3f + 3 * out->num_firstvertex) + 3;j < out->num_vertices;j++, v += 3) { out->mins[0] = ((out->mins[0]) < (v[0]) ? (out->mins[0]) : (v[0])); out->maxs[0] = ((out->maxs[0]) > (v[0]) ? (out->maxs[0]) : (v[0])); out->mins[1] = ((out->mins[1]) < (v[1]) ? (out->mins[1]) : (v[1])); out->maxs[1] = ((out->maxs[1]) > (v[1]) ? (out->maxs[1]) : (v[1])); out->mins[2] = ((out->mins[2]) < (v[2]) ? (out->mins[2]) : (v[2])); out->maxs[2] = ((out->maxs[2]) > (v[2]) ? (out->maxs[2]) : (v[2])); } out->mins[0] -= 1.0f; out->mins[1] -= 1.0f; out->mins[2] -= 1.0f; out->maxs[0] += 1.0f; out->maxs[1] += 1.0f; out->maxs[2] += 1.0f; } } i = oldi; out = oldout; for (;i < count;i++, out++) { if(out->num_vertices && out->num_triangles) continue; if(out->num_vertices == 0) { Con_Printf("Mod_Q3BSP_LoadFaces: surface %d (texture %s) has no vertices, ignoring\n", i, out->texture ? out->texture->name : "(none)"); if(out->num_triangles == 0) Con_Printf("Mod_Q3BSP_LoadFaces: surface %d (texture %s) has no triangles, ignoring\n", i, out->texture ? out->texture->name : "(none)"); } else if(out->num_triangles == 0) Con_Printf("Mod_Q3BSP_LoadFaces: surface %d (texture %s, near %f %f %f) has no triangles, ignoring\n", i, out->texture ? out->texture->name : "(none)", (loadmodel->surfmesh.data_vertex3f + 3 * out->num_firstvertex)[0 * 3 + 0], (loadmodel->surfmesh.data_vertex3f + 3 * out->num_firstvertex)[1 * 3 + 0], (loadmodel->surfmesh.data_vertex3f + 3 * out->num_firstvertex)[2 * 3 + 0]); } Mod_BuildTextureVectorsFromNormals(0, loadmodel->surfmesh.num_vertices, loadmodel->surfmesh.num_triangles, loadmodel->surfmesh.data_vertex3f, loadmodel->surfmesh.data_texcoordtexture2f, loadmodel->surfmesh.data_normal3f, loadmodel->surfmesh.data_element3i, loadmodel->surfmesh.data_svector3f, loadmodel->surfmesh.data_tvector3f, r_smoothnormals_areaweighting.integer != 0); if (loadmodel->surfmesh.data_element3s) for (i = 0;i < loadmodel->surfmesh.num_triangles*3;i++) loadmodel->surfmesh.data_element3s[i] = loadmodel->surfmesh.data_element3i[i]; loadmodel->brushq3.num_vertices = 0; if (loadmodel->brushq3.data_vertex3f) _Mem_Free(loadmodel->brushq3.data_vertex3f, "../../../model_brush.c", 6222); loadmodel->brushq3.data_vertex3f = # 6223 "../../../model_brush.c" 3 4 ((void *)0) # 6223 "../../../model_brush.c" ; loadmodel->brushq3.data_normal3f = # 6224 "../../../model_brush.c" 3 4 ((void *)0) # 6224 "../../../model_brush.c" ; loadmodel->brushq3.data_texcoordtexture2f = # 6225 "../../../model_brush.c" 3 4 ((void *)0) # 6225 "../../../model_brush.c" ; loadmodel->brushq3.data_texcoordlightmap2f = # 6226 "../../../model_brush.c" 3 4 ((void *)0) # 6226 "../../../model_brush.c" ; loadmodel->brushq3.data_color4f = # 6227 "../../../model_brush.c" 3 4 ((void *)0) # 6227 "../../../model_brush.c" ; loadmodel->brushq3.num_triangles = 0; if (loadmodel->brushq3.data_element3i) _Mem_Free(loadmodel->brushq3.data_element3i, "../../../model_brush.c", 6231); loadmodel->brushq3.data_element3i = # 6232 "../../../model_brush.c" 3 4 ((void *)0) # 6232 "../../../model_brush.c" ; if(patchtess) _Mem_Free(patchtess, "../../../model_brush.c", 6235); } static void Mod_Q3BSP_LoadModels(lump_t *l) { q3dmodel_t *in; q3dmodel_t *out; int i, j, n, c, count; in = (q3dmodel_t *)(mod_base + l->fileofs); if (l->filelen % sizeof(*in)) Host_Error("Mod_Q3BSP_LoadModels: funny lump size in %s",loadmodel->name); count = l->filelen / sizeof(*in); out = (q3dmodel_t *)_Mem_Alloc(loadmodel->mempool, # 6248 "../../../model_brush.c" 3 4 ((void *)0) # 6248 "../../../model_brush.c" , count * sizeof(*out), 16, "../../../model_brush.c", 6248); loadmodel->brushq3.data_models = out; loadmodel->brushq3.num_models = count; for (i = 0;i < count;i++, in++, out++) { for (j = 0;j < 3;j++) { out->mins[j] = BuffLittleFloat((unsigned char *)&(in->mins[j])); out->maxs[j] = BuffLittleFloat((unsigned char *)&(in->maxs[j])); } n = BuffLittleLong((unsigned char *)&(in->firstface)); c = BuffLittleLong((unsigned char *)&(in->numfaces)); if (n < 0 || n + c > loadmodel->num_surfaces) Host_Error("Mod_Q3BSP_LoadModels: invalid face range %i : %i (%i faces)", n, n + c, loadmodel->num_surfaces); out->firstface = n; out->numfaces = c; n = BuffLittleLong((unsigned char *)&(in->firstbrush)); c = BuffLittleLong((unsigned char *)&(in->numbrushes)); if (n < 0 || n + c > loadmodel->brush.num_brushes) Host_Error("Mod_Q3BSP_LoadModels: invalid brush range %i : %i (%i brushes)", n, n + c, loadmodel->brush.num_brushes); out->firstbrush = n; out->numbrushes = c; } } static void Mod_Q3BSP_LoadLeafBrushes(lump_t *l) { int *in; int *out; int i, n, count; in = (int *)(mod_base + l->fileofs); if (l->filelen % sizeof(*in)) Host_Error("Mod_Q3BSP_LoadLeafBrushes: funny lump size in %s",loadmodel->name); count = l->filelen / sizeof(*in); out = (int *)_Mem_Alloc(loadmodel->mempool, # 6285 "../../../model_brush.c" 3 4 ((void *)0) # 6285 "../../../model_brush.c" , count * sizeof(*out), 16, "../../../model_brush.c", 6285); loadmodel->brush.data_leafbrushes = out; loadmodel->brush.num_leafbrushes = count; for (i = 0;i < count;i++, in++, out++) { n = BuffLittleLong((unsigned char *)&(*in)); if (n < 0 || n >= loadmodel->brush.num_brushes) Host_Error("Mod_Q3BSP_LoadLeafBrushes: invalid brush index %i (%i brushes)", n, loadmodel->brush.num_brushes); *out = n; } } static void Mod_Q3BSP_LoadLeafFaces(lump_t *l) { int *in; int *out; int i, n, count; in = (int *)(mod_base + l->fileofs); if (l->filelen % sizeof(*in)) Host_Error("Mod_Q3BSP_LoadLeafFaces: funny lump size in %s",loadmodel->name); count = l->filelen / sizeof(*in); out = (int *)_Mem_Alloc(loadmodel->mempool, # 6309 "../../../model_brush.c" 3 4 ((void *)0) # 6309 "../../../model_brush.c" , count * sizeof(*out), 16, "../../../model_brush.c", 6309); loadmodel->brush.data_leafsurfaces = out; loadmodel->brush.num_leafsurfaces = count; for (i = 0;i < count;i++, in++, out++) { n = BuffLittleLong((unsigned char *)&(*in)); if (n < 0 || n >= loadmodel->num_surfaces) Host_Error("Mod_Q3BSP_LoadLeafFaces: invalid face index %i (%i faces)", n, loadmodel->num_surfaces); *out = n; } } static void Mod_Q3BSP_LoadLeafs(lump_t *l) { q3dleaf_t *in; mleaf_t *out; int i, j, n, c, count; in = (q3dleaf_t *)(mod_base + l->fileofs); if (l->filelen % sizeof(*in)) Host_Error("Mod_Q3BSP_LoadLeafs: funny lump size in %s",loadmodel->name); count = l->filelen / sizeof(*in); out = (mleaf_t *)_Mem_Alloc(loadmodel->mempool, # 6333 "../../../model_brush.c" 3 4 ((void *)0) # 6333 "../../../model_brush.c" , count * sizeof(*out), 16, "../../../model_brush.c", 6333); loadmodel->brush.data_leafs = out; loadmodel->brush.num_leafs = count; for (i = 0;i < count;i++, in++, out++) { out->parent = # 6340 "../../../model_brush.c" 3 4 ((void *)0) # 6340 "../../../model_brush.c" ; out->plane = # 6341 "../../../model_brush.c" 3 4 ((void *)0) # 6341 "../../../model_brush.c" ; out->clusterindex = BuffLittleLong((unsigned char *)&(in->clusterindex)); out->areaindex = BuffLittleLong((unsigned char *)&(in->areaindex)); for (j = 0;j < 3;j++) { out->mins[j] = BuffLittleLong((unsigned char *)&(in->mins[j])) - 1; out->maxs[j] = BuffLittleLong((unsigned char *)&(in->maxs[j])) + 1; } n = BuffLittleLong((unsigned char *)&(in->firstleafface)); c = BuffLittleLong((unsigned char *)&(in->numleaffaces)); if (n < 0 || n + c > loadmodel->brush.num_leafsurfaces) Host_Error("Mod_Q3BSP_LoadLeafs: invalid leafsurface range %i : %i (%i leafsurfaces)", n, n + c, loadmodel->brush.num_leafsurfaces); out->firstleafsurface = loadmodel->brush.data_leafsurfaces + n; out->numleafsurfaces = c; n = BuffLittleLong((unsigned char *)&(in->firstleafbrush)); c = BuffLittleLong((unsigned char *)&(in->numleafbrushes)); if (n < 0 || n + c > loadmodel->brush.num_leafbrushes) Host_Error("Mod_Q3BSP_LoadLeafs: invalid leafbrush range %i : %i (%i leafbrushes)", n, n + c, loadmodel->brush.num_leafbrushes); out->firstleafbrush = loadmodel->brush.data_leafbrushes + n; out->numleafbrushes = c; } } static void Mod_Q3BSP_LoadNodes(lump_t *l) { q3dnode_t *in; mnode_t *out; int i, j, n, count; in = (q3dnode_t *)(mod_base + l->fileofs); if (l->filelen % sizeof(*in)) Host_Error("Mod_Q3BSP_LoadNodes: funny lump size in %s",loadmodel->name); count = l->filelen / sizeof(*in); if (count == 0) Host_Error("Mod_Q3BSP_LoadNodes: missing BSP tree in %s",loadmodel->name); out = (mnode_t *)_Mem_Alloc(loadmodel->mempool, # 6377 "../../../model_brush.c" 3 4 ((void *)0) # 6377 "../../../model_brush.c" , count * sizeof(*out), 16, "../../../model_brush.c", 6377); loadmodel->brush.data_nodes = out; loadmodel->brush.num_nodes = count; for (i = 0;i < count;i++, in++, out++) { out->parent = # 6384 "../../../model_brush.c" 3 4 ((void *)0) # 6384 "../../../model_brush.c" ; n = BuffLittleLong((unsigned char *)&(in->planeindex)); if (n < 0 || n >= loadmodel->brush.num_planes) Host_Error("Mod_Q3BSP_LoadNodes: invalid planeindex %i (%i planes)", n, loadmodel->brush.num_planes); out->plane = loadmodel->brush.data_planes + n; for (j = 0;j < 2;j++) { n = BuffLittleLong((unsigned char *)&(in->childrenindex[j])); if (n >= 0) { if (n >= loadmodel->brush.num_nodes) Host_Error("Mod_Q3BSP_LoadNodes: invalid child node index %i (%i nodes)", n, loadmodel->brush.num_nodes); out->children[j] = loadmodel->brush.data_nodes + n; } else { n = -1 - n; if (n >= loadmodel->brush.num_leafs) Host_Error("Mod_Q3BSP_LoadNodes: invalid child leaf index %i (%i leafs)", n, loadmodel->brush.num_leafs); out->children[j] = (mnode_t *)(loadmodel->brush.data_leafs + n); } } for (j = 0;j < 3;j++) { out->mins[j] = BuffLittleLong((unsigned char *)&(in->mins[j])) - 1; out->maxs[j] = BuffLittleLong((unsigned char *)&(in->maxs[j])) + 1; } } Mod_Q1BSP_LoadNodes_RecursiveSetParent(loadmodel->brush.data_nodes, # 6415 "../../../model_brush.c" 3 4 ((void *)0) # 6415 "../../../model_brush.c" ); } static void Mod_Q3BSP_LoadLightGrid(lump_t *l) { q3dlightgrid_t *in; q3dlightgrid_t *out; int count; int i; in = (q3dlightgrid_t *)(mod_base + l->fileofs); if (l->filelen % sizeof(*in)) Host_Error("Mod_Q3BSP_LoadLightGrid: funny lump size in %s",loadmodel->name); loadmodel->brushq3.num_lightgrid_scale[0] = 1.0f / loadmodel->brushq3.num_lightgrid_cellsize[0]; loadmodel->brushq3.num_lightgrid_scale[1] = 1.0f / loadmodel->brushq3.num_lightgrid_cellsize[1]; loadmodel->brushq3.num_lightgrid_scale[2] = 1.0f / loadmodel->brushq3.num_lightgrid_cellsize[2]; loadmodel->brushq3.num_lightgrid_imins[0] = (int)ceil(loadmodel->brushq3.data_models->mins[0] * loadmodel->brushq3.num_lightgrid_scale[0]); loadmodel->brushq3.num_lightgrid_imins[1] = (int)ceil(loadmodel->brushq3.data_models->mins[1] * loadmodel->brushq3.num_lightgrid_scale[1]); loadmodel->brushq3.num_lightgrid_imins[2] = (int)ceil(loadmodel->brushq3.data_models->mins[2] * loadmodel->brushq3.num_lightgrid_scale[2]); loadmodel->brushq3.num_lightgrid_imaxs[0] = (int)floor(loadmodel->brushq3.data_models->maxs[0] * loadmodel->brushq3.num_lightgrid_scale[0]); loadmodel->brushq3.num_lightgrid_imaxs[1] = (int)floor(loadmodel->brushq3.data_models->maxs[1] * loadmodel->brushq3.num_lightgrid_scale[1]); loadmodel->brushq3.num_lightgrid_imaxs[2] = (int)floor(loadmodel->brushq3.data_models->maxs[2] * loadmodel->brushq3.num_lightgrid_scale[2]); loadmodel->brushq3.num_lightgrid_isize[0] = loadmodel->brushq3.num_lightgrid_imaxs[0] - loadmodel->brushq3.num_lightgrid_imins[0] + 1; loadmodel->brushq3.num_lightgrid_isize[1] = loadmodel->brushq3.num_lightgrid_imaxs[1] - loadmodel->brushq3.num_lightgrid_imins[1] + 1; loadmodel->brushq3.num_lightgrid_isize[2] = loadmodel->brushq3.num_lightgrid_imaxs[2] - loadmodel->brushq3.num_lightgrid_imins[2] + 1; count = loadmodel->brushq3.num_lightgrid_isize[0] * loadmodel->brushq3.num_lightgrid_isize[1] * loadmodel->brushq3.num_lightgrid_isize[2]; Matrix4x4_CreateScale3(&loadmodel->brushq3.num_lightgrid_indexfromworld, loadmodel->brushq3.num_lightgrid_scale[0], loadmodel->brushq3.num_lightgrid_scale[1], loadmodel->brushq3.num_lightgrid_scale[2]); Matrix4x4_ConcatTranslate(&loadmodel->brushq3.num_lightgrid_indexfromworld, -loadmodel->brushq3.num_lightgrid_imins[0] * loadmodel->brushq3.num_lightgrid_cellsize[0], -loadmodel->brushq3.num_lightgrid_imins[1] * loadmodel->brushq3.num_lightgrid_cellsize[1], -loadmodel->brushq3.num_lightgrid_imins[2] * loadmodel->brushq3.num_lightgrid_cellsize[2]); if (l->filelen) { if (l->filelen < count * (int)sizeof(*in)) { Con_Printf("Mod_Q3BSP_LoadLightGrid: invalid lightgrid lump size %i bytes, should be %i bytes (%ix%ix%i)", l->filelen, (int)(count * sizeof(*in)), loadmodel->brushq3.num_lightgrid_isize[0], loadmodel->brushq3.num_lightgrid_isize[1], loadmodel->brushq3.num_lightgrid_isize[2]); return; } if (l->filelen != count * (int)sizeof(*in)) Con_Printf("Mod_Q3BSP_LoadLightGrid: Warning: calculated lightgrid size %i bytes does not match lump size %i\n", (int)(count * sizeof(*in)), l->filelen); out = (q3dlightgrid_t *)_Mem_Alloc(loadmodel->mempool, # 6454 "../../../model_brush.c" 3 4 ((void *)0) # 6454 "../../../model_brush.c" , count * sizeof(*out), 16, "../../../model_brush.c", 6454); loadmodel->brushq3.data_lightgrid = out; loadmodel->brushq3.num_lightgrid = count; memcpy(out, in, count * (int)sizeof(*out)); if(mod_q3bsp_sRGBlightmaps.integer) { if(vid_sRGB.integer && vid_sRGB_fallback.integer && !vid.sRGB3D) { } else { for(i = 0; i < count; ++i) { out[i].ambientrgb[0] = floor(((((out[i].ambientrgb[0]) * (1.0f / 255.0f)) <= 0.04045f) ? ((out[i].ambientrgb[0]) * (1.0f / 255.0f)) * (1.0f / 12.92f) : (float)pow((((out[i].ambientrgb[0]) * (1.0f / 255.0f)) + 0.055f)*(1.0f/1.055f), 2.4f)) * 255.0f + 0.5f); out[i].ambientrgb[1] = floor(((((out[i].ambientrgb[1]) * (1.0f / 255.0f)) <= 0.04045f) ? ((out[i].ambientrgb[1]) * (1.0f / 255.0f)) * (1.0f / 12.92f) : (float)pow((((out[i].ambientrgb[1]) * (1.0f / 255.0f)) + 0.055f)*(1.0f/1.055f), 2.4f)) * 255.0f + 0.5f); out[i].ambientrgb[2] = floor(((((out[i].ambientrgb[2]) * (1.0f / 255.0f)) <= 0.04045f) ? ((out[i].ambientrgb[2]) * (1.0f / 255.0f)) * (1.0f / 12.92f) : (float)pow((((out[i].ambientrgb[2]) * (1.0f / 255.0f)) + 0.055f)*(1.0f/1.055f), 2.4f)) * 255.0f + 0.5f); out[i].diffusergb[0] = floor(((((out[i].diffusergb[0]) * (1.0f / 255.0f)) <= 0.04045f) ? ((out[i].diffusergb[0]) * (1.0f / 255.0f)) * (1.0f / 12.92f) : (float)pow((((out[i].diffusergb[0]) * (1.0f / 255.0f)) + 0.055f)*(1.0f/1.055f), 2.4f)) * 255.0f + 0.5f); out[i].diffusergb[1] = floor(((((out[i].diffusergb[1]) * (1.0f / 255.0f)) <= 0.04045f) ? ((out[i].diffusergb[1]) * (1.0f / 255.0f)) * (1.0f / 12.92f) : (float)pow((((out[i].diffusergb[1]) * (1.0f / 255.0f)) + 0.055f)*(1.0f/1.055f), 2.4f)) * 255.0f + 0.5f); out[i].diffusergb[2] = floor(((((out[i].diffusergb[2]) * (1.0f / 255.0f)) <= 0.04045f) ? ((out[i].diffusergb[2]) * (1.0f / 255.0f)) * (1.0f / 12.92f) : (float)pow((((out[i].diffusergb[2]) * (1.0f / 255.0f)) + 0.055f)*(1.0f/1.055f), 2.4f)) * 255.0f + 0.5f); } } } else { if(vid_sRGB.integer && vid_sRGB_fallback.integer && !vid.sRGB3D) { for(i = 0; i < count; ++i) { out[i].ambientrgb[0] = floor(((((out[i].ambientrgb[0]) * (2.0f / 255.0f)) < 0.0031308f) ? ((out[i].ambientrgb[0]) * (2.0f / 255.0f)) * 12.92f : 1.055f * (float)pow(((out[i].ambientrgb[0]) * (2.0f / 255.0f)), 1.0f/2.4f) - 0.055f) * 0.5f * 255.0f + 0.5f); out[i].ambientrgb[1] = floor(((((out[i].ambientrgb[1]) * (2.0f / 255.0f)) < 0.0031308f) ? ((out[i].ambientrgb[1]) * (2.0f / 255.0f)) * 12.92f : 1.055f * (float)pow(((out[i].ambientrgb[1]) * (2.0f / 255.0f)), 1.0f/2.4f) - 0.055f) * 0.5f * 255.0f + 0.5f); out[i].ambientrgb[2] = floor(((((out[i].ambientrgb[2]) * (2.0f / 255.0f)) < 0.0031308f) ? ((out[i].ambientrgb[2]) * (2.0f / 255.0f)) * 12.92f : 1.055f * (float)pow(((out[i].ambientrgb[2]) * (2.0f / 255.0f)), 1.0f/2.4f) - 0.055f) * 0.5f * 255.0f + 0.5f); out[i].diffusergb[0] = floor(((((out[i].diffusergb[0]) * (2.0f / 255.0f)) < 0.0031308f) ? ((out[i].diffusergb[0]) * (2.0f / 255.0f)) * 12.92f : 1.055f * (float)pow(((out[i].diffusergb[0]) * (2.0f / 255.0f)), 1.0f/2.4f) - 0.055f) * 0.5f * 255.0f + 0.5f); out[i].diffusergb[1] = floor(((((out[i].diffusergb[1]) * (2.0f / 255.0f)) < 0.0031308f) ? ((out[i].diffusergb[1]) * (2.0f / 255.0f)) * 12.92f : 1.055f * (float)pow(((out[i].diffusergb[1]) * (2.0f / 255.0f)), 1.0f/2.4f) - 0.055f) * 0.5f * 255.0f + 0.5f); out[i].diffusergb[2] = floor(((((out[i].diffusergb[2]) * (2.0f / 255.0f)) < 0.0031308f) ? ((out[i].diffusergb[2]) * (2.0f / 255.0f)) * 12.92f : 1.055f * (float)pow(((out[i].diffusergb[2]) * (2.0f / 255.0f)), 1.0f/2.4f) - 0.055f) * 0.5f * 255.0f + 0.5f); } } else { } } } } static void Mod_Q3BSP_LoadPVS(lump_t *l) { q3dpvs_t *in; int totalchains; if (l->filelen == 0) { int i; loadmodel->brush.num_pvsclusters = 1; for (i = 0;i < loadmodel->brush.num_leafs;i++) loadmodel->brush.num_pvsclusters = ((loadmodel->brush.num_pvsclusters) > (loadmodel->brush.data_leafs[i].clusterindex + 1) ? (loadmodel->brush.num_pvsclusters) : (loadmodel->brush.data_leafs[i].clusterindex + 1)); loadmodel->brush.num_pvsclusterbytes = (loadmodel->brush.num_pvsclusters + 7) / 8; totalchains = loadmodel->brush.num_pvsclusterbytes * loadmodel->brush.num_pvsclusters; loadmodel->brush.data_pvsclusters = (unsigned char *)_Mem_Alloc(loadmodel->mempool, # 6518 "../../../model_brush.c" 3 4 ((void *)0) # 6518 "../../../model_brush.c" , totalchains, 16, "../../../model_brush.c", 6518); memset(loadmodel->brush.data_pvsclusters, 0xFF, totalchains); return; } in = (q3dpvs_t *)(mod_base + l->fileofs); if (l->filelen < 9) Host_Error("Mod_Q3BSP_LoadPVS: funny lump size in %s",loadmodel->name); loadmodel->brush.num_pvsclusters = BuffLittleLong((unsigned char *)&(in->numclusters)); loadmodel->brush.num_pvsclusterbytes = BuffLittleLong((unsigned char *)&(in->chainlength)); if (loadmodel->brush.num_pvsclusterbytes < ((loadmodel->brush.num_pvsclusters + 7) / 8)) Host_Error("Mod_Q3BSP_LoadPVS: (chainlength = %i) < ((numclusters = %i) + 7) / 8", loadmodel->brush.num_pvsclusterbytes, loadmodel->brush.num_pvsclusters); totalchains = loadmodel->brush.num_pvsclusterbytes * loadmodel->brush.num_pvsclusters; if (l->filelen < totalchains + (int)sizeof(*in)) Host_Error("Mod_Q3BSP_LoadPVS: lump too small ((numclusters = %i) * (chainlength = %i) + sizeof(q3dpvs_t) == %i bytes, lump is %i bytes)", loadmodel->brush.num_pvsclusters, loadmodel->brush.num_pvsclusterbytes, (int)(totalchains + sizeof(*in)), l->filelen); loadmodel->brush.data_pvsclusters = (unsigned char *)_Mem_Alloc(loadmodel->mempool, # 6535 "../../../model_brush.c" 3 4 ((void *)0) # 6535 "../../../model_brush.c" , totalchains, 16, "../../../model_brush.c", 6535); memcpy(loadmodel->brush.data_pvsclusters, (unsigned char *)(in + 1), totalchains); } static void Mod_Q3BSP_LightPoint(dp_model_t *model, const vec3_t p, vec3_t ambientcolor, vec3_t diffusecolor, vec3_t diffusenormal) { int i, j, k, index[3]; float transformed[3], blend1, blend2, blend, stylescale = 1; q3dlightgrid_t *a, *s; switch(vid.renderpath) { case RENDERPATH_GL20: case RENDERPATH_D3D9: case RENDERPATH_D3D10: case RENDERPATH_D3D11: case RENDERPATH_SOFT: case RENDERPATH_GLES2: stylescale = 1; break; case RENDERPATH_GL11: case RENDERPATH_GL13: case RENDERPATH_GLES1: stylescale = r_refdef.scene.rtlightstylevalue[0]; break; } if (!model->brushq3.num_lightgrid) { ambientcolor[0] = stylescale; ambientcolor[1] = stylescale; ambientcolor[2] = stylescale; return; } Matrix4x4_Transform(&model->brushq3.num_lightgrid_indexfromworld, p, transformed); transformed[0] = ((transformed[0]) >= (0) ? ((transformed[0]) < (model->brushq3.num_lightgrid_isize[0] - 1) ? (transformed[0]) : (model->brushq3.num_lightgrid_isize[0] - 1)) : (0)); transformed[1] = ((transformed[1]) >= (0) ? ((transformed[1]) < (model->brushq3.num_lightgrid_isize[1] - 1) ? (transformed[1]) : (model->brushq3.num_lightgrid_isize[1] - 1)) : (0)); transformed[2] = ((transformed[2]) >= (0) ? ((transformed[2]) < (model->brushq3.num_lightgrid_isize[2] - 1) ? (transformed[2]) : (model->brushq3.num_lightgrid_isize[2] - 1)) : (0)); index[0] = (int)floor(transformed[0]); index[1] = (int)floor(transformed[1]); index[2] = (int)floor(transformed[2]); ((diffusenormal)[0]=(diffusenormal)[1]=(diffusenormal)[2]=0); a = &model->brushq3.data_lightgrid[(index[2] * model->brushq3.num_lightgrid_isize[1] + index[1]) * model->brushq3.num_lightgrid_isize[0] + index[0]]; for (k = 0;k < 2;k++) { blend1 = (k ? (transformed[2] - index[2]) : (1 - (transformed[2] - index[2]))); if (blend1 < 0.001f || index[2] + k >= model->brushq3.num_lightgrid_isize[2]) continue; for (j = 0;j < 2;j++) { blend2 = blend1 * (j ? (transformed[1] - index[1]) : (1 - (transformed[1] - index[1]))); if (blend2 < 0.001f || index[1] + j >= model->brushq3.num_lightgrid_isize[1]) continue; for (i = 0;i < 2;i++) { blend = blend2 * (i ? (transformed[0] - index[0]) : (1 - (transformed[0] - index[0]))) * stylescale; if (blend < 0.001f || index[0] + i >= model->brushq3.num_lightgrid_isize[0]) continue; s = a + (k * model->brushq3.num_lightgrid_isize[1] + j) * model->brushq3.num_lightgrid_isize[0] + i; ((ambientcolor)[0] = (ambientcolor)[0] + (blend * (1.0f / 128.0f)) * (s->ambientrgb)[0],(ambientcolor)[1] = (ambientcolor)[1] + (blend * (1.0f / 128.0f)) * (s->ambientrgb)[1],(ambientcolor)[2] = (ambientcolor)[2] + (blend * (1.0f / 128.0f)) * (s->ambientrgb)[2]); ((diffusecolor)[0] = (diffusecolor)[0] + (blend * (1.0f / 128.0f)) * (s->diffusergb)[0],(diffusecolor)[1] = (diffusecolor)[1] + (blend * (1.0f / 128.0f)) * (s->diffusergb)[1],(diffusecolor)[2] = (diffusecolor)[2] + (blend * (1.0f / 128.0f)) * (s->diffusergb)[2]); diffusenormal[0] += blend * (mod_md3_sin[64 + s->diffuseyaw] * mod_md3_sin[s->diffusepitch]); diffusenormal[1] += blend * (mod_md3_sin[ s->diffuseyaw] * mod_md3_sin[s->diffusepitch]); diffusenormal[2] += blend * (mod_md3_sin[64 + s->diffusepitch]); } } } {float ilength = (float) sqrt((((diffusenormal))[0]*((diffusenormal))[0]+((diffusenormal))[1]*((diffusenormal))[1]+((diffusenormal))[2]*((diffusenormal))[2]));if (ilength) ilength = 1.0f / ilength;(diffusenormal)[0] *= ilength;(diffusenormal)[1] *= ilength;(diffusenormal)[2] *= ilength;}; } static int Mod_Q3BSP_TraceLineOfSight_RecursiveNodeCheck(mnode_t *node, double p1[3], double p2[3]) { double t1, t2; double midf, mid[3]; int ret, side; while (node->plane) { mplane_t *plane = node->plane; if (plane->type < 3) { t1 = p1[plane->type] - plane->dist; t2 = p2[plane->type] - plane->dist; } else { t1 = ((plane->normal)[0]*(p1)[0]+(plane->normal)[1]*(p1)[1]+(plane->normal)[2]*(p1)[2]) - plane->dist; t2 = ((plane->normal)[0]*(p2)[0]+(plane->normal)[1]*(p2)[1]+(plane->normal)[2]*(p2)[2]) - plane->dist; } if (t1 < 0) { if (t2 < 0) { node = node->children[1]; continue; } side = 1; } else { if (t2 >= 0) { node = node->children[0]; continue; } side = 0; } midf = t1 / (t1 - t2); ((mid)[0] = (p1)[0] + (midf) * ((p2)[0] - (p1)[0]), (mid)[1] = (p1)[1] + (midf) * ((p2)[1] - (p1)[1]), (mid)[2] = (p1)[2] + (midf) * ((p2)[2] - (p1)[2])); ret = Mod_Q3BSP_TraceLineOfSight_RecursiveNodeCheck(node->children[side ], p1, mid); if (ret != 0) return ret; ret = Mod_Q3BSP_TraceLineOfSight_RecursiveNodeCheck(node->children[side ^ 1], mid, p2); if (ret != 1) return ret; return 2; } return ((mleaf_t *)node)->clusterindex < 0; } static qboolean Mod_Q3BSP_TraceLineOfSight(struct model_s *model, const vec3_t start, const vec3_t end) { if (model->brush.submodel || mod_q3bsp_tracelineofsight_brushes.integer) { trace_t trace; model->TraceLine(model, # 6686 "../../../model_brush.c" 3 4 ((void *)0) # 6686 "../../../model_brush.c" , # 6686 "../../../model_brush.c" 3 4 ((void *)0) # 6686 "../../../model_brush.c" , &trace, start, end, 0x00001000); return trace.fraction == 1; } else { double tracestart[3], traceend[3]; ((tracestart)[0]=(start)[0],(tracestart)[1]=(start)[1],(tracestart)[2]=(start)[2]); ((traceend)[0]=(end)[0],(traceend)[1]=(end)[1],(traceend)[2]=(end)[2]); return !Mod_Q3BSP_TraceLineOfSight_RecursiveNodeCheck(model->brush.data_nodes, tracestart, traceend); } } void Mod_CollisionBIH_TracePoint(dp_model_t *model, const frameblend_t *frameblend, const skeleton_t *skeleton, trace_t *trace, const vec3_t start, int hitsupercontentsmask) { const bih_t *bih; const bih_leaf_t *leaf; const bih_node_t *node; const colbrushf_t *brush; int axis; int nodenum; int nodestackpos = 0; int nodestack[1024]; memset(trace, 0, sizeof(*trace)); trace->fraction = 1; trace->hitsupercontentsmask = hitsupercontentsmask; bih = &model->collision_bih; if(!bih->nodes) return; nodenum = bih->rootnode; nodestack[nodestackpos++] = nodenum; while (nodestackpos) { nodenum = nodestack[--nodestackpos]; node = bih->nodes + nodenum; if (!((start)[0] <= (node->maxs)[0] && (start)[0] >= (node->mins)[0] && (start)[1] <= (node->maxs)[1] && (start)[1] >= (node->mins)[1] && (start)[2] <= (node->maxs)[2] && (start)[2] >= (node->mins)[2])) continue; if (node->type <= BIH_SPLITZ && nodestackpos+2 <= 1024) { axis = node->type - BIH_SPLITX; if (start[axis] >= node->frontmin) nodestack[nodestackpos++] = node->front; if (start[axis] <= node->backmax) nodestack[nodestackpos++] = node->back; } else if (node->type == BIH_UNORDERED) { for (axis = 0;axis < 8 && node->children[axis] >= 0;axis++) { leaf = bih->leafs + node->children[axis]; if (!((start)[0] <= (leaf->maxs)[0] && (start)[0] >= (leaf->mins)[0] && (start)[1] <= (leaf->maxs)[1] && (start)[1] >= (leaf->mins)[1] && (start)[2] <= (leaf->maxs)[2] && (start)[2] >= (leaf->mins)[2])) continue; switch(leaf->type) { case BIH_BRUSH: brush = model->brush.data_brushes[leaf->itemindex].colbrushf; Collision_TracePointBrushFloat(trace, start, brush); break; case BIH_COLLISIONTRIANGLE: break; case BIH_RENDERTRIANGLE: break; } } } } } static void Mod_CollisionBIH_TraceLineShared(dp_model_t *model, const frameblend_t *frameblend, const skeleton_t *skeleton, trace_t *trace, const vec3_t start, const vec3_t end, int hitsupercontentsmask, const bih_t *bih) { const bih_leaf_t *leaf; const bih_node_t *node; const colbrushf_t *brush; const int *e; const texture_t *texture; vec3_t nodebigmins, nodebigmaxs, nodestart, nodeend, sweepnodemins, sweepnodemaxs; vec_t d1, d2, d3, d4, f, nodestackline[1024][6]; int axis, nodenum, nodestackpos = 0, nodestack[1024]; if(!bih->nodes) return; if ((((start)[0]==(end)[0])&&((start)[1]==(end)[1])&&((start)[2]==(end)[2]))) { Mod_CollisionBIH_TracePoint(model, frameblend, skeleton, trace, start, hitsupercontentsmask); return; } nodenum = bih->rootnode; memset(trace, 0, sizeof(*trace)); trace->fraction = 1; trace->hitsupercontentsmask = hitsupercontentsmask; nodestackline[nodestackpos][0] = start[0]; nodestackline[nodestackpos][1] = start[1]; nodestackline[nodestackpos][2] = start[2]; nodestackline[nodestackpos][3] = end[0]; nodestackline[nodestackpos][4] = end[1]; nodestackline[nodestackpos][5] = end[2]; nodestack[nodestackpos++] = nodenum; while (nodestackpos) { nodenum = nodestack[--nodestackpos]; node = bih->nodes + nodenum; ((nodestart)[0]=(nodestackline[nodestackpos])[0],(nodestart)[1]=(nodestackline[nodestackpos])[1],(nodestart)[2]=(nodestackline[nodestackpos])[2]); ((nodeend)[0]=(nodestackline[nodestackpos] + 3)[0],(nodeend)[1]=(nodestackline[nodestackpos] + 3)[1],(nodeend)[2]=(nodestackline[nodestackpos] + 3)[2]); sweepnodemins[0] = ((nodestart[0]) < (nodeend[0]) ? (nodestart[0]) : (nodeend[0])) - 1; sweepnodemins[1] = ((nodestart[1]) < (nodeend[1]) ? (nodestart[1]) : (nodeend[1])) - 1; sweepnodemins[2] = ((nodestart[2]) < (nodeend[2]) ? (nodestart[2]) : (nodeend[2])) - 1; sweepnodemaxs[0] = ((nodestart[0]) > (nodeend[0]) ? (nodestart[0]) : (nodeend[0])) + 1; sweepnodemaxs[1] = ((nodestart[1]) > (nodeend[1]) ? (nodestart[1]) : (nodeend[1])) + 1; sweepnodemaxs[2] = ((nodestart[2]) > (nodeend[2]) ? (nodestart[2]) : (nodeend[2])) + 1; if (!((sweepnodemins)[0] <= (node->maxs)[0] && (sweepnodemaxs)[0] >= (node->mins)[0] && (sweepnodemins)[1] <= (node->maxs)[1] && (sweepnodemaxs)[1] >= (node->mins)[1] && (sweepnodemins)[2] <= (node->maxs)[2] && (sweepnodemaxs)[2] >= (node->mins)[2])) continue; if (node->type <= BIH_SPLITZ && nodestackpos+2 <= 1024) { axis = node->type - BIH_SPLITX; d1 = node->backmax - nodestart[axis]; d2 = node->backmax - nodeend[axis]; d3 = nodestart[axis] - node->frontmin; d4 = nodeend[axis] - node->frontmin; switch((d1 < 0) | ((d2 < 0) << 1) | ((d3 < 0) << 2) | ((d4 < 0) << 3)) { case 0: ((nodestackline[nodestackpos])[0]=(nodestart)[0],(nodestackline[nodestackpos])[1]=(nodestart)[1],(nodestackline[nodestackpos])[2]=(nodestart)[2]); ((nodestackline[nodestackpos] + 3)[0]=(nodeend)[0],(nodestackline[nodestackpos] + 3)[1]=(nodeend)[1],(nodestackline[nodestackpos] + 3)[2]=(nodeend)[2]); nodestack[nodestackpos++] = node->back; ((nodestackline[nodestackpos])[0]=(nodestart)[0],(nodestackline[nodestackpos])[1]=(nodestart)[1],(nodestackline[nodestackpos])[2]=(nodestart)[2]); ((nodestackline[nodestackpos] + 3)[0]=(nodeend)[0],(nodestackline[nodestackpos] + 3)[1]=(nodeend)[1],(nodestackline[nodestackpos] + 3)[2]=(nodeend)[2]); nodestack[nodestackpos++] = node->front; break; case 1: f = d1 / (d1 - d2); ((nodestackline[nodestackpos])[0] = (nodestart)[0] + (f) * ((nodeend)[0] - (nodestart)[0]), (nodestackline[nodestackpos])[1] = (nodestart)[1] + (f) * ((nodeend)[1] - (nodestart)[1]), (nodestackline[nodestackpos])[2] = (nodestart)[2] + (f) * ((nodeend)[2] - (nodestart)[2])); ((nodestackline[nodestackpos] + 3)[0]=(nodeend)[0],(nodestackline[nodestackpos] + 3)[1]=(nodeend)[1],(nodestackline[nodestackpos] + 3)[2]=(nodeend)[2]); nodestack[nodestackpos++] = node->back; ((nodestackline[nodestackpos])[0]=(nodestart)[0],(nodestackline[nodestackpos])[1]=(nodestart)[1],(nodestackline[nodestackpos])[2]=(nodestart)[2]); ((nodestackline[nodestackpos] + 3)[0]=(nodeend)[0],(nodestackline[nodestackpos] + 3)[1]=(nodeend)[1],(nodestackline[nodestackpos] + 3)[2]=(nodeend)[2]); nodestack[nodestackpos++] = node->front; break; case 2: f = d1 / (d1 - d2); ((nodestackline[nodestackpos])[0]=(nodestart)[0],(nodestackline[nodestackpos])[1]=(nodestart)[1],(nodestackline[nodestackpos])[2]=(nodestart)[2]); ((nodestackline[nodestackpos] + 3)[0] = (nodestart)[0] + (f) * ((nodeend)[0] - (nodestart)[0]), (nodestackline[nodestackpos] + 3)[1] = (nodestart)[1] + (f) * ((nodeend)[1] - (nodestart)[1]), (nodestackline[nodestackpos] + 3)[2] = (nodestart)[2] + (f) * ((nodeend)[2] - (nodestart)[2])); nodestack[nodestackpos++] = node->back; ((nodestackline[nodestackpos])[0]=(nodestart)[0],(nodestackline[nodestackpos])[1]=(nodestart)[1],(nodestackline[nodestackpos])[2]=(nodestart)[2]); ((nodestackline[nodestackpos] + 3)[0]=(nodeend)[0],(nodestackline[nodestackpos] + 3)[1]=(nodeend)[1],(nodestackline[nodestackpos] + 3)[2]=(nodeend)[2]); nodestack[nodestackpos++] = node->front; break; case 3: ((nodestackline[nodestackpos])[0]=(nodestart)[0],(nodestackline[nodestackpos])[1]=(nodestart)[1],(nodestackline[nodestackpos])[2]=(nodestart)[2]); ((nodestackline[nodestackpos] + 3)[0]=(nodeend)[0],(nodestackline[nodestackpos] + 3)[1]=(nodeend)[1],(nodestackline[nodestackpos] + 3)[2]=(nodeend)[2]); nodestack[nodestackpos++] = node->front; break; case 4: ((nodestackline[nodestackpos])[0]=(nodestart)[0],(nodestackline[nodestackpos])[1]=(nodestart)[1],(nodestackline[nodestackpos])[2]=(nodestart)[2]); ((nodestackline[nodestackpos] + 3)[0]=(nodeend)[0],(nodestackline[nodestackpos] + 3)[1]=(nodeend)[1],(nodestackline[nodestackpos] + 3)[2]=(nodeend)[2]); nodestack[nodestackpos++] = node->back; f = d3 / (d3 - d4); ((nodestackline[nodestackpos])[0] = (nodestart)[0] + (f) * ((nodeend)[0] - (nodestart)[0]), (nodestackline[nodestackpos])[1] = (nodestart)[1] + (f) * ((nodeend)[1] - (nodestart)[1]), (nodestackline[nodestackpos])[2] = (nodestart)[2] + (f) * ((nodeend)[2] - (nodestart)[2])); ((nodestackline[nodestackpos] + 3)[0]=(nodeend)[0],(nodestackline[nodestackpos] + 3)[1]=(nodeend)[1],(nodestackline[nodestackpos] + 3)[2]=(nodeend)[2]); nodestack[nodestackpos++] = node->front; break; case 5: f = d1 / (d1 - d2); ((nodestackline[nodestackpos])[0] = (nodestart)[0] + (f) * ((nodeend)[0] - (nodestart)[0]), (nodestackline[nodestackpos])[1] = (nodestart)[1] + (f) * ((nodeend)[1] - (nodestart)[1]), (nodestackline[nodestackpos])[2] = (nodestart)[2] + (f) * ((nodeend)[2] - (nodestart)[2])); ((nodestackline[nodestackpos] + 3)[0]=(nodeend)[0],(nodestackline[nodestackpos] + 3)[1]=(nodeend)[1],(nodestackline[nodestackpos] + 3)[2]=(nodeend)[2]); nodestack[nodestackpos++] = node->back; f = d3 / (d3 - d4); ((nodestackline[nodestackpos])[0] = (nodestart)[0] + (f) * ((nodeend)[0] - (nodestart)[0]), (nodestackline[nodestackpos])[1] = (nodestart)[1] + (f) * ((nodeend)[1] - (nodestart)[1]), (nodestackline[nodestackpos])[2] = (nodestart)[2] + (f) * ((nodeend)[2] - (nodestart)[2])); ((nodestackline[nodestackpos] + 3)[0]=(nodeend)[0],(nodestackline[nodestackpos] + 3)[1]=(nodeend)[1],(nodestackline[nodestackpos] + 3)[2]=(nodeend)[2]); nodestack[nodestackpos++] = node->front; break; case 6: f = d1 / (d1 - d2); ((nodestackline[nodestackpos])[0]=(nodestart)[0],(nodestackline[nodestackpos])[1]=(nodestart)[1],(nodestackline[nodestackpos])[2]=(nodestart)[2]); ((nodestackline[nodestackpos] + 3)[0] = (nodestart)[0] + (f) * ((nodeend)[0] - (nodestart)[0]), (nodestackline[nodestackpos] + 3)[1] = (nodestart)[1] + (f) * ((nodeend)[1] - (nodestart)[1]), (nodestackline[nodestackpos] + 3)[2] = (nodestart)[2] + (f) * ((nodeend)[2] - (nodestart)[2])); nodestack[nodestackpos++] = node->back; f = d3 / (d3 - d4); ((nodestackline[nodestackpos])[0] = (nodestart)[0] + (f) * ((nodeend)[0] - (nodestart)[0]), (nodestackline[nodestackpos])[1] = (nodestart)[1] + (f) * ((nodeend)[1] - (nodestart)[1]), (nodestackline[nodestackpos])[2] = (nodestart)[2] + (f) * ((nodeend)[2] - (nodestart)[2])); ((nodestackline[nodestackpos] + 3)[0]=(nodeend)[0],(nodestackline[nodestackpos] + 3)[1]=(nodeend)[1],(nodestackline[nodestackpos] + 3)[2]=(nodeend)[2]); nodestack[nodestackpos++] = node->front; break; case 7: f = d3 / (d3 - d4); ((nodestackline[nodestackpos])[0] = (nodestart)[0] + (f) * ((nodeend)[0] - (nodestart)[0]), (nodestackline[nodestackpos])[1] = (nodestart)[1] + (f) * ((nodeend)[1] - (nodestart)[1]), (nodestackline[nodestackpos])[2] = (nodestart)[2] + (f) * ((nodeend)[2] - (nodestart)[2])); ((nodestackline[nodestackpos] + 3)[0]=(nodeend)[0],(nodestackline[nodestackpos] + 3)[1]=(nodeend)[1],(nodestackline[nodestackpos] + 3)[2]=(nodeend)[2]); nodestack[nodestackpos++] = node->front; break; case 8: ((nodestackline[nodestackpos])[0]=(nodestart)[0],(nodestackline[nodestackpos])[1]=(nodestart)[1],(nodestackline[nodestackpos])[2]=(nodestart)[2]); ((nodestackline[nodestackpos] + 3)[0]=(nodeend)[0],(nodestackline[nodestackpos] + 3)[1]=(nodeend)[1],(nodestackline[nodestackpos] + 3)[2]=(nodeend)[2]); nodestack[nodestackpos++] = node->back; f = d3 / (d3 - d4); ((nodestackline[nodestackpos])[0]=(nodestart)[0],(nodestackline[nodestackpos])[1]=(nodestart)[1],(nodestackline[nodestackpos])[2]=(nodestart)[2]); ((nodestackline[nodestackpos] + 3)[0] = (nodestart)[0] + (f) * ((nodeend)[0] - (nodestart)[0]), (nodestackline[nodestackpos] + 3)[1] = (nodestart)[1] + (f) * ((nodeend)[1] - (nodestart)[1]), (nodestackline[nodestackpos] + 3)[2] = (nodestart)[2] + (f) * ((nodeend)[2] - (nodestart)[2])); nodestack[nodestackpos++] = node->front; break; case 9: f = d1 / (d1 - d2); ((nodestackline[nodestackpos])[0] = (nodestart)[0] + (f) * ((nodeend)[0] - (nodestart)[0]), (nodestackline[nodestackpos])[1] = (nodestart)[1] + (f) * ((nodeend)[1] - (nodestart)[1]), (nodestackline[nodestackpos])[2] = (nodestart)[2] + (f) * ((nodeend)[2] - (nodestart)[2])); ((nodestackline[nodestackpos] + 3)[0]=(nodeend)[0],(nodestackline[nodestackpos] + 3)[1]=(nodeend)[1],(nodestackline[nodestackpos] + 3)[2]=(nodeend)[2]); nodestack[nodestackpos++] = node->back; f = d3 / (d3 - d4); ((nodestackline[nodestackpos])[0]=(nodestart)[0],(nodestackline[nodestackpos])[1]=(nodestart)[1],(nodestackline[nodestackpos])[2]=(nodestart)[2]); ((nodestackline[nodestackpos] + 3)[0] = (nodestart)[0] + (f) * ((nodeend)[0] - (nodestart)[0]), (nodestackline[nodestackpos] + 3)[1] = (nodestart)[1] + (f) * ((nodeend)[1] - (nodestart)[1]), (nodestackline[nodestackpos] + 3)[2] = (nodestart)[2] + (f) * ((nodeend)[2] - (nodestart)[2])); nodestack[nodestackpos++] = node->front; break; case 10: f = d1 / (d1 - d2); ((nodestackline[nodestackpos])[0]=(nodestart)[0],(nodestackline[nodestackpos])[1]=(nodestart)[1],(nodestackline[nodestackpos])[2]=(nodestart)[2]); ((nodestackline[nodestackpos] + 3)[0] = (nodestart)[0] + (f) * ((nodeend)[0] - (nodestart)[0]), (nodestackline[nodestackpos] + 3)[1] = (nodestart)[1] + (f) * ((nodeend)[1] - (nodestart)[1]), (nodestackline[nodestackpos] + 3)[2] = (nodestart)[2] + (f) * ((nodeend)[2] - (nodestart)[2])); nodestack[nodestackpos++] = node->back; f = d3 / (d3 - d4); ((nodestackline[nodestackpos])[0]=(nodestart)[0],(nodestackline[nodestackpos])[1]=(nodestart)[1],(nodestackline[nodestackpos])[2]=(nodestart)[2]); ((nodestackline[nodestackpos] + 3)[0] = (nodestart)[0] + (f) * ((nodeend)[0] - (nodestart)[0]), (nodestackline[nodestackpos] + 3)[1] = (nodestart)[1] + (f) * ((nodeend)[1] - (nodestart)[1]), (nodestackline[nodestackpos] + 3)[2] = (nodestart)[2] + (f) * ((nodeend)[2] - (nodestart)[2])); nodestack[nodestackpos++] = node->front; break; case 11: f = d3 / (d3 - d4); ((nodestackline[nodestackpos])[0]=(nodestart)[0],(nodestackline[nodestackpos])[1]=(nodestart)[1],(nodestackline[nodestackpos])[2]=(nodestart)[2]); ((nodestackline[nodestackpos] + 3)[0] = (nodestart)[0] + (f) * ((nodeend)[0] - (nodestart)[0]), (nodestackline[nodestackpos] + 3)[1] = (nodestart)[1] + (f) * ((nodeend)[1] - (nodestart)[1]), (nodestackline[nodestackpos] + 3)[2] = (nodestart)[2] + (f) * ((nodeend)[2] - (nodestart)[2])); nodestack[nodestackpos++] = node->front; break; case 12: ((nodestackline[nodestackpos])[0]=(nodestart)[0],(nodestackline[nodestackpos])[1]=(nodestart)[1],(nodestackline[nodestackpos])[2]=(nodestart)[2]); ((nodestackline[nodestackpos] + 3)[0]=(nodeend)[0],(nodestackline[nodestackpos] + 3)[1]=(nodeend)[1],(nodestackline[nodestackpos] + 3)[2]=(nodeend)[2]); nodestack[nodestackpos++] = node->back; break; case 13: f = d1 / (d1 - d2); ((nodestackline[nodestackpos])[0] = (nodestart)[0] + (f) * ((nodeend)[0] - (nodestart)[0]), (nodestackline[nodestackpos])[1] = (nodestart)[1] + (f) * ((nodeend)[1] - (nodestart)[1]), (nodestackline[nodestackpos])[2] = (nodestart)[2] + (f) * ((nodeend)[2] - (nodestart)[2])); ((nodestackline[nodestackpos] + 3)[0]=(nodeend)[0],(nodestackline[nodestackpos] + 3)[1]=(nodeend)[1],(nodestackline[nodestackpos] + 3)[2]=(nodeend)[2]); nodestack[nodestackpos++] = node->back; break; case 14: f = d1 / (d1 - d2); ((nodestackline[nodestackpos])[0]=(nodestart)[0],(nodestackline[nodestackpos])[1]=(nodestart)[1],(nodestackline[nodestackpos])[2]=(nodestart)[2]); ((nodestackline[nodestackpos] + 3)[0] = (nodestart)[0] + (f) * ((nodeend)[0] - (nodestart)[0]), (nodestackline[nodestackpos] + 3)[1] = (nodestart)[1] + (f) * ((nodeend)[1] - (nodestart)[1]), (nodestackline[nodestackpos] + 3)[2] = (nodestart)[2] + (f) * ((nodeend)[2] - (nodestart)[2])); nodestack[nodestackpos++] = node->back; break; case 15: break; } } else if (node->type == BIH_UNORDERED) { ((nodebigmins)[0]=(node->mins)[0],(nodebigmins)[1]=(node->mins)[1],(nodebigmins)[2]=(node->mins)[2]); ((nodebigmaxs)[0]=(node->maxs)[0],(nodebigmaxs)[1]=(node->maxs)[1],(nodebigmaxs)[2]=(node->maxs)[2]); axis = 0; d1 = nodestart[axis] - nodebigmins[axis]; d2 = nodeend[axis] - nodebigmins[axis]; if (d1 < 0) { if (d2 < 0) continue; f = d1 / (d1 - d2); ((nodestart)[0] = (nodestart)[0] + (f) * ((nodeend)[0] - (nodestart)[0]), (nodestart)[1] = (nodestart)[1] + (f) * ((nodeend)[1] - (nodestart)[1]), (nodestart)[2] = (nodestart)[2] + (f) * ((nodeend)[2] - (nodestart)[2])); } else if (d2 < 0) { f = d1 / (d1 - d2); ((nodeend)[0] = (nodestart)[0] + (f) * ((nodeend)[0] - (nodestart)[0]), (nodeend)[1] = (nodestart)[1] + (f) * ((nodeend)[1] - (nodestart)[1]), (nodeend)[2] = (nodestart)[2] + (f) * ((nodeend)[2] - (nodestart)[2])); } d1 = nodebigmaxs[axis] - nodestart[axis]; d2 = nodebigmaxs[axis] - nodeend[axis]; if (d1 < 0) { if (d2 < 0) continue; f = d1 / (d1 - d2); ((nodestart)[0] = (nodestart)[0] + (f) * ((nodeend)[0] - (nodestart)[0]), (nodestart)[1] = (nodestart)[1] + (f) * ((nodeend)[1] - (nodestart)[1]), (nodestart)[2] = (nodestart)[2] + (f) * ((nodeend)[2] - (nodestart)[2])); } else if (d2 < 0) { f = d1 / (d1 - d2); ((nodeend)[0] = (nodestart)[0] + (f) * ((nodeend)[0] - (nodestart)[0]), (nodeend)[1] = (nodestart)[1] + (f) * ((nodeend)[1] - (nodestart)[1]), (nodeend)[2] = (nodestart)[2] + (f) * ((nodeend)[2] - (nodestart)[2])); } axis = 1; d1 = nodestart[axis] - nodebigmins[axis]; d2 = nodeend[axis] - nodebigmins[axis]; if (d1 < 0) { if (d2 < 0) continue; f = d1 / (d1 - d2); ((nodestart)[0] = (nodestart)[0] + (f) * ((nodeend)[0] - (nodestart)[0]), (nodestart)[1] = (nodestart)[1] + (f) * ((nodeend)[1] - (nodestart)[1]), (nodestart)[2] = (nodestart)[2] + (f) * ((nodeend)[2] - (nodestart)[2])); } else if (d2 < 0) { f = d1 / (d1 - d2); ((nodeend)[0] = (nodestart)[0] + (f) * ((nodeend)[0] - (nodestart)[0]), (nodeend)[1] = (nodestart)[1] + (f) * ((nodeend)[1] - (nodestart)[1]), (nodeend)[2] = (nodestart)[2] + (f) * ((nodeend)[2] - (nodestart)[2])); } d1 = nodebigmaxs[axis] - nodestart[axis]; d2 = nodebigmaxs[axis] - nodeend[axis]; if (d1 < 0) { if (d2 < 0) continue; f = d1 / (d1 - d2); ((nodestart)[0] = (nodestart)[0] + (f) * ((nodeend)[0] - (nodestart)[0]), (nodestart)[1] = (nodestart)[1] + (f) * ((nodeend)[1] - (nodestart)[1]), (nodestart)[2] = (nodestart)[2] + (f) * ((nodeend)[2] - (nodestart)[2])); } else if (d2 < 0) { f = d1 / (d1 - d2); ((nodeend)[0] = (nodestart)[0] + (f) * ((nodeend)[0] - (nodestart)[0]), (nodeend)[1] = (nodestart)[1] + (f) * ((nodeend)[1] - (nodestart)[1]), (nodeend)[2] = (nodestart)[2] + (f) * ((nodeend)[2] - (nodestart)[2])); } axis = 2; d1 = nodestart[axis] - nodebigmins[axis]; d2 = nodeend[axis] - nodebigmins[axis]; if (d1 < 0) { if (d2 < 0) continue; f = d1 / (d1 - d2); ((nodestart)[0] = (nodestart)[0] + (f) * ((nodeend)[0] - (nodestart)[0]), (nodestart)[1] = (nodestart)[1] + (f) * ((nodeend)[1] - (nodestart)[1]), (nodestart)[2] = (nodestart)[2] + (f) * ((nodeend)[2] - (nodestart)[2])); } else if (d2 < 0) { f = d1 / (d1 - d2); ((nodeend)[0] = (nodestart)[0] + (f) * ((nodeend)[0] - (nodestart)[0]), (nodeend)[1] = (nodestart)[1] + (f) * ((nodeend)[1] - (nodestart)[1]), (nodeend)[2] = (nodestart)[2] + (f) * ((nodeend)[2] - (nodestart)[2])); } d1 = nodebigmaxs[axis] - nodestart[axis]; d2 = nodebigmaxs[axis] - nodeend[axis]; if (d1 < 0) { if (d2 < 0) continue; f = d1 / (d1 - d2); ((nodestart)[0] = (nodestart)[0] + (f) * ((nodeend)[0] - (nodestart)[0]), (nodestart)[1] = (nodestart)[1] + (f) * ((nodeend)[1] - (nodestart)[1]), (nodestart)[2] = (nodestart)[2] + (f) * ((nodeend)[2] - (nodestart)[2])); } else if (d2 < 0) { f = d1 / (d1 - d2); ((nodeend)[0] = (nodestart)[0] + (f) * ((nodeend)[0] - (nodestart)[0]), (nodeend)[1] = (nodestart)[1] + (f) * ((nodeend)[1] - (nodestart)[1]), (nodeend)[2] = (nodestart)[2] + (f) * ((nodeend)[2] - (nodestart)[2])); } sweepnodemins[0] = ((nodestart[0]) < (nodeend[0]) ? (nodestart[0]) : (nodeend[0])) - 1; sweepnodemins[1] = ((nodestart[1]) < (nodeend[1]) ? (nodestart[1]) : (nodeend[1])) - 1; sweepnodemins[2] = ((nodestart[2]) < (nodeend[2]) ? (nodestart[2]) : (nodeend[2])) - 1; sweepnodemaxs[0] = ((nodestart[0]) > (nodeend[0]) ? (nodestart[0]) : (nodeend[0])) + 1; sweepnodemaxs[1] = ((nodestart[1]) > (nodeend[1]) ? (nodestart[1]) : (nodeend[1])) + 1; sweepnodemaxs[2] = ((nodestart[2]) > (nodeend[2]) ? (nodestart[2]) : (nodeend[2])) + 1; for (axis = 0;axis < 8 && node->children[axis] >= 0;axis++) { leaf = bih->leafs + node->children[axis]; if (!((sweepnodemins)[0] <= (leaf->maxs)[0] && (sweepnodemaxs)[0] >= (leaf->mins)[0] && (sweepnodemins)[1] <= (leaf->maxs)[1] && (sweepnodemaxs)[1] >= (leaf->mins)[1] && (sweepnodemins)[2] <= (leaf->maxs)[2] && (sweepnodemaxs)[2] >= (leaf->mins)[2])) continue; switch(leaf->type) { case BIH_BRUSH: brush = model->brush.data_brushes[leaf->itemindex].colbrushf; Collision_TraceLineBrushFloat(trace, start, end, brush, brush); break; case BIH_COLLISIONTRIANGLE: if (!mod_q3bsp_curves_collisions.integer) continue; e = model->brush.data_collisionelement3i + 3*leaf->itemindex; texture = model->data_textures + leaf->textureindex; Collision_TraceLineTriangleFloat(trace, start, end, model->brush.data_collisionvertex3f + e[0] * 3, model->brush.data_collisionvertex3f + e[1] * 3, model->brush.data_collisionvertex3f + e[2] * 3, texture->supercontents, texture->surfaceflags, texture); break; case BIH_RENDERTRIANGLE: e = model->surfmesh.data_element3i + 3*leaf->itemindex; texture = model->data_textures + leaf->textureindex; Collision_TraceLineTriangleFloat(trace, start, end, model->surfmesh.data_vertex3f + e[0] * 3, model->surfmesh.data_vertex3f + e[1] * 3, model->surfmesh.data_vertex3f + e[2] * 3, texture->supercontents, texture->surfaceflags, texture); break; } } } } } void Mod_CollisionBIH_TraceLine(dp_model_t *model, const frameblend_t *frameblend, const skeleton_t *skeleton, trace_t *trace, const vec3_t start, const vec3_t end, int hitsupercontentsmask) { if ((((start)[0]==(end)[0])&&((start)[1]==(end)[1])&&((start)[2]==(end)[2]))) { Mod_CollisionBIH_TracePoint(model, frameblend, skeleton, trace, start, hitsupercontentsmask); return; } Mod_CollisionBIH_TraceLineShared(model, frameblend, skeleton, trace, start, end, hitsupercontentsmask, &model->collision_bih); } void Mod_CollisionBIH_TraceBrush(dp_model_t *model, const frameblend_t *frameblend, const skeleton_t *skeleton, trace_t *trace, colbrushf_t *thisbrush_start, colbrushf_t *thisbrush_end, int hitsupercontentsmask) { const bih_t *bih; const bih_leaf_t *leaf; const bih_node_t *node; const colbrushf_t *brush; const int *e; const texture_t *texture; vec3_t start, end, startmins, startmaxs, endmins, endmaxs, mins, maxs; vec3_t nodebigmins, nodebigmaxs, nodestart, nodeend, sweepnodemins, sweepnodemaxs; vec_t d1, d2, d3, d4, f, nodestackline[1024][6]; int axis, nodenum, nodestackpos = 0, nodestack[1024]; if (mod_q3bsp_optimizedtraceline.integer && (((thisbrush_start->mins)[0]==(thisbrush_start->maxs)[0])&&((thisbrush_start->mins)[1]==(thisbrush_start->maxs)[1])&&((thisbrush_start->mins)[2]==(thisbrush_start->maxs)[2])) && (((thisbrush_end->mins)[0]==(thisbrush_end->maxs)[0])&&((thisbrush_end->mins)[1]==(thisbrush_end->maxs)[1])&&((thisbrush_end->mins)[2]==(thisbrush_end->maxs)[2]))) { if ((((thisbrush_start->mins)[0]==(thisbrush_end->mins)[0])&&((thisbrush_start->mins)[1]==(thisbrush_end->mins)[1])&&((thisbrush_start->mins)[2]==(thisbrush_end->mins)[2]))) Mod_CollisionBIH_TracePoint(model, frameblend, skeleton, trace, thisbrush_start->mins, hitsupercontentsmask); else Mod_CollisionBIH_TraceLine(model, frameblend, skeleton, trace, thisbrush_start->mins, thisbrush_end->mins, hitsupercontentsmask); return; } bih = &model->collision_bih; if(!bih->nodes) return; nodenum = bih->rootnode; memset(trace, 0, sizeof(*trace)); trace->fraction = 1; trace->hitsupercontentsmask = hitsupercontentsmask; ((start)[0] = (0.5f) * (thisbrush_start->mins)[0] + (0.5f) * (thisbrush_start->maxs)[0],(start)[1] = (0.5f) * (thisbrush_start->mins)[1] + (0.5f) * (thisbrush_start->maxs)[1],(start)[2] = (0.5f) * (thisbrush_start->mins)[2] + (0.5f) * (thisbrush_start->maxs)[2]); ((end)[0] = (0.5f) * (thisbrush_end->mins)[0] + (0.5f) * (thisbrush_end->maxs)[0],(end)[1] = (0.5f) * (thisbrush_end->mins)[1] + (0.5f) * (thisbrush_end->maxs)[1],(end)[2] = (0.5f) * (thisbrush_end->mins)[2] + (0.5f) * (thisbrush_end->maxs)[2]); ((startmins)[0]=(thisbrush_start->mins)[0]-(start)[0],(startmins)[1]=(thisbrush_start->mins)[1]-(start)[1],(startmins)[2]=(thisbrush_start->mins)[2]-(start)[2]); ((startmaxs)[0]=(thisbrush_start->maxs)[0]-(start)[0],(startmaxs)[1]=(thisbrush_start->maxs)[1]-(start)[1],(startmaxs)[2]=(thisbrush_start->maxs)[2]-(start)[2]); ((endmins)[0]=(thisbrush_end->mins)[0]-(end)[0],(endmins)[1]=(thisbrush_end->mins)[1]-(end)[1],(endmins)[2]=(thisbrush_end->mins)[2]-(end)[2]); ((endmaxs)[0]=(thisbrush_end->maxs)[0]-(end)[0],(endmaxs)[1]=(thisbrush_end->maxs)[1]-(end)[1],(endmaxs)[2]=(thisbrush_end->maxs)[2]-(end)[2]); mins[0] = ((startmins[0]) < (endmins[0]) ? (startmins[0]) : (endmins[0])); mins[1] = ((startmins[1]) < (endmins[1]) ? (startmins[1]) : (endmins[1])); mins[2] = ((startmins[2]) < (endmins[2]) ? (startmins[2]) : (endmins[2])); maxs[0] = ((startmaxs[0]) > (endmaxs[0]) ? (startmaxs[0]) : (endmaxs[0])); maxs[1] = ((startmaxs[1]) > (endmaxs[1]) ? (startmaxs[1]) : (endmaxs[1])); maxs[2] = ((startmaxs[2]) > (endmaxs[2]) ? (startmaxs[2]) : (endmaxs[2])); nodestackline[nodestackpos][0] = start[0]; nodestackline[nodestackpos][1] = start[1]; nodestackline[nodestackpos][2] = start[2]; nodestackline[nodestackpos][3] = end[0]; nodestackline[nodestackpos][4] = end[1]; nodestackline[nodestackpos][5] = end[2]; nodestack[nodestackpos++] = nodenum; while (nodestackpos) { nodenum = nodestack[--nodestackpos]; node = bih->nodes + nodenum; ((nodestart)[0]=(nodestackline[nodestackpos])[0],(nodestart)[1]=(nodestackline[nodestackpos])[1],(nodestart)[2]=(nodestackline[nodestackpos])[2]); ((nodeend)[0]=(nodestackline[nodestackpos] + 3)[0],(nodeend)[1]=(nodestackline[nodestackpos] + 3)[1],(nodeend)[2]=(nodestackline[nodestackpos] + 3)[2]); sweepnodemins[0] = ((nodestart[0]) < (nodeend[0]) ? (nodestart[0]) : (nodeend[0])) + mins[0] - 1; sweepnodemins[1] = ((nodestart[1]) < (nodeend[1]) ? (nodestart[1]) : (nodeend[1])) + mins[1] - 1; sweepnodemins[2] = ((nodestart[2]) < (nodeend[2]) ? (nodestart[2]) : (nodeend[2])) + mins[2] - 1; sweepnodemaxs[0] = ((nodestart[0]) > (nodeend[0]) ? (nodestart[0]) : (nodeend[0])) + maxs[0] + 1; sweepnodemaxs[1] = ((nodestart[1]) > (nodeend[1]) ? (nodestart[1]) : (nodeend[1])) + maxs[1] + 1; sweepnodemaxs[2] = ((nodestart[2]) > (nodeend[2]) ? (nodestart[2]) : (nodeend[2])) + maxs[2] + 1; if (!((sweepnodemins)[0] <= (node->maxs)[0] && (sweepnodemaxs)[0] >= (node->mins)[0] && (sweepnodemins)[1] <= (node->maxs)[1] && (sweepnodemaxs)[1] >= (node->mins)[1] && (sweepnodemins)[2] <= (node->maxs)[2] && (sweepnodemaxs)[2] >= (node->mins)[2])) continue; if (node->type <= BIH_SPLITZ && nodestackpos+2 <= 1024) { axis = node->type - BIH_SPLITX; d1 = node->backmax - nodestart[axis] - mins[axis]; d2 = node->backmax - nodeend[axis] - mins[axis]; d3 = nodestart[axis] - node->frontmin + maxs[axis]; d4 = nodeend[axis] - node->frontmin + maxs[axis]; switch((d1 < 0) | ((d2 < 0) << 1) | ((d3 < 0) << 2) | ((d4 < 0) << 3)) { case 0: ((nodestackline[nodestackpos])[0]=(nodestart)[0],(nodestackline[nodestackpos])[1]=(nodestart)[1],(nodestackline[nodestackpos])[2]=(nodestart)[2]); ((nodestackline[nodestackpos] + 3)[0]=(nodeend)[0],(nodestackline[nodestackpos] + 3)[1]=(nodeend)[1],(nodestackline[nodestackpos] + 3)[2]=(nodeend)[2]); nodestack[nodestackpos++] = node->back; ((nodestackline[nodestackpos])[0]=(nodestart)[0],(nodestackline[nodestackpos])[1]=(nodestart)[1],(nodestackline[nodestackpos])[2]=(nodestart)[2]); ((nodestackline[nodestackpos] + 3)[0]=(nodeend)[0],(nodestackline[nodestackpos] + 3)[1]=(nodeend)[1],(nodestackline[nodestackpos] + 3)[2]=(nodeend)[2]); nodestack[nodestackpos++] = node->front; break; case 1: f = d1 / (d1 - d2); ((nodestackline[nodestackpos])[0] = (nodestart)[0] + (f) * ((nodeend)[0] - (nodestart)[0]), (nodestackline[nodestackpos])[1] = (nodestart)[1] + (f) * ((nodeend)[1] - (nodestart)[1]), (nodestackline[nodestackpos])[2] = (nodestart)[2] + (f) * ((nodeend)[2] - (nodestart)[2])); ((nodestackline[nodestackpos] + 3)[0]=(nodeend)[0],(nodestackline[nodestackpos] + 3)[1]=(nodeend)[1],(nodestackline[nodestackpos] + 3)[2]=(nodeend)[2]); nodestack[nodestackpos++] = node->back; ((nodestackline[nodestackpos])[0]=(nodestart)[0],(nodestackline[nodestackpos])[1]=(nodestart)[1],(nodestackline[nodestackpos])[2]=(nodestart)[2]); ((nodestackline[nodestackpos] + 3)[0]=(nodeend)[0],(nodestackline[nodestackpos] + 3)[1]=(nodeend)[1],(nodestackline[nodestackpos] + 3)[2]=(nodeend)[2]); nodestack[nodestackpos++] = node->front; break; case 2: f = d1 / (d1 - d2); ((nodestackline[nodestackpos])[0]=(nodestart)[0],(nodestackline[nodestackpos])[1]=(nodestart)[1],(nodestackline[nodestackpos])[2]=(nodestart)[2]); ((nodestackline[nodestackpos] + 3)[0] = (nodestart)[0] + (f) * ((nodeend)[0] - (nodestart)[0]), (nodestackline[nodestackpos] + 3)[1] = (nodestart)[1] + (f) * ((nodeend)[1] - (nodestart)[1]), (nodestackline[nodestackpos] + 3)[2] = (nodestart)[2] + (f) * ((nodeend)[2] - (nodestart)[2])); nodestack[nodestackpos++] = node->back; ((nodestackline[nodestackpos])[0]=(nodestart)[0],(nodestackline[nodestackpos])[1]=(nodestart)[1],(nodestackline[nodestackpos])[2]=(nodestart)[2]); ((nodestackline[nodestackpos] + 3)[0]=(nodeend)[0],(nodestackline[nodestackpos] + 3)[1]=(nodeend)[1],(nodestackline[nodestackpos] + 3)[2]=(nodeend)[2]); nodestack[nodestackpos++] = node->front; break; case 3: ((nodestackline[nodestackpos])[0]=(nodestart)[0],(nodestackline[nodestackpos])[1]=(nodestart)[1],(nodestackline[nodestackpos])[2]=(nodestart)[2]); ((nodestackline[nodestackpos] + 3)[0]=(nodeend)[0],(nodestackline[nodestackpos] + 3)[1]=(nodeend)[1],(nodestackline[nodestackpos] + 3)[2]=(nodeend)[2]); nodestack[nodestackpos++] = node->front; break; case 4: ((nodestackline[nodestackpos])[0]=(nodestart)[0],(nodestackline[nodestackpos])[1]=(nodestart)[1],(nodestackline[nodestackpos])[2]=(nodestart)[2]); ((nodestackline[nodestackpos] + 3)[0]=(nodeend)[0],(nodestackline[nodestackpos] + 3)[1]=(nodeend)[1],(nodestackline[nodestackpos] + 3)[2]=(nodeend)[2]); nodestack[nodestackpos++] = node->back; f = d3 / (d3 - d4); ((nodestackline[nodestackpos])[0] = (nodestart)[0] + (f) * ((nodeend)[0] - (nodestart)[0]), (nodestackline[nodestackpos])[1] = (nodestart)[1] + (f) * ((nodeend)[1] - (nodestart)[1]), (nodestackline[nodestackpos])[2] = (nodestart)[2] + (f) * ((nodeend)[2] - (nodestart)[2])); ((nodestackline[nodestackpos] + 3)[0]=(nodeend)[0],(nodestackline[nodestackpos] + 3)[1]=(nodeend)[1],(nodestackline[nodestackpos] + 3)[2]=(nodeend)[2]); nodestack[nodestackpos++] = node->front; break; case 5: f = d1 / (d1 - d2); ((nodestackline[nodestackpos])[0] = (nodestart)[0] + (f) * ((nodeend)[0] - (nodestart)[0]), (nodestackline[nodestackpos])[1] = (nodestart)[1] + (f) * ((nodeend)[1] - (nodestart)[1]), (nodestackline[nodestackpos])[2] = (nodestart)[2] + (f) * ((nodeend)[2] - (nodestart)[2])); ((nodestackline[nodestackpos] + 3)[0]=(nodeend)[0],(nodestackline[nodestackpos] + 3)[1]=(nodeend)[1],(nodestackline[nodestackpos] + 3)[2]=(nodeend)[2]); nodestack[nodestackpos++] = node->back; f = d3 / (d3 - d4); ((nodestackline[nodestackpos])[0] = (nodestart)[0] + (f) * ((nodeend)[0] - (nodestart)[0]), (nodestackline[nodestackpos])[1] = (nodestart)[1] + (f) * ((nodeend)[1] - (nodestart)[1]), (nodestackline[nodestackpos])[2] = (nodestart)[2] + (f) * ((nodeend)[2] - (nodestart)[2])); ((nodestackline[nodestackpos] + 3)[0]=(nodeend)[0],(nodestackline[nodestackpos] + 3)[1]=(nodeend)[1],(nodestackline[nodestackpos] + 3)[2]=(nodeend)[2]); nodestack[nodestackpos++] = node->front; break; case 6: f = d1 / (d1 - d2); ((nodestackline[nodestackpos])[0]=(nodestart)[0],(nodestackline[nodestackpos])[1]=(nodestart)[1],(nodestackline[nodestackpos])[2]=(nodestart)[2]); ((nodestackline[nodestackpos] + 3)[0] = (nodestart)[0] + (f) * ((nodeend)[0] - (nodestart)[0]), (nodestackline[nodestackpos] + 3)[1] = (nodestart)[1] + (f) * ((nodeend)[1] - (nodestart)[1]), (nodestackline[nodestackpos] + 3)[2] = (nodestart)[2] + (f) * ((nodeend)[2] - (nodestart)[2])); nodestack[nodestackpos++] = node->back; f = d3 / (d3 - d4); ((nodestackline[nodestackpos])[0] = (nodestart)[0] + (f) * ((nodeend)[0] - (nodestart)[0]), (nodestackline[nodestackpos])[1] = (nodestart)[1] + (f) * ((nodeend)[1] - (nodestart)[1]), (nodestackline[nodestackpos])[2] = (nodestart)[2] + (f) * ((nodeend)[2] - (nodestart)[2])); ((nodestackline[nodestackpos] + 3)[0]=(nodeend)[0],(nodestackline[nodestackpos] + 3)[1]=(nodeend)[1],(nodestackline[nodestackpos] + 3)[2]=(nodeend)[2]); nodestack[nodestackpos++] = node->front; break; case 7: f = d3 / (d3 - d4); ((nodestackline[nodestackpos])[0] = (nodestart)[0] + (f) * ((nodeend)[0] - (nodestart)[0]), (nodestackline[nodestackpos])[1] = (nodestart)[1] + (f) * ((nodeend)[1] - (nodestart)[1]), (nodestackline[nodestackpos])[2] = (nodestart)[2] + (f) * ((nodeend)[2] - (nodestart)[2])); ((nodestackline[nodestackpos] + 3)[0]=(nodeend)[0],(nodestackline[nodestackpos] + 3)[1]=(nodeend)[1],(nodestackline[nodestackpos] + 3)[2]=(nodeend)[2]); nodestack[nodestackpos++] = node->front; break; case 8: ((nodestackline[nodestackpos])[0]=(nodestart)[0],(nodestackline[nodestackpos])[1]=(nodestart)[1],(nodestackline[nodestackpos])[2]=(nodestart)[2]); ((nodestackline[nodestackpos] + 3)[0]=(nodeend)[0],(nodestackline[nodestackpos] + 3)[1]=(nodeend)[1],(nodestackline[nodestackpos] + 3)[2]=(nodeend)[2]); nodestack[nodestackpos++] = node->back; f = d3 / (d3 - d4); ((nodestackline[nodestackpos])[0]=(nodestart)[0],(nodestackline[nodestackpos])[1]=(nodestart)[1],(nodestackline[nodestackpos])[2]=(nodestart)[2]); ((nodestackline[nodestackpos] + 3)[0] = (nodestart)[0] + (f) * ((nodeend)[0] - (nodestart)[0]), (nodestackline[nodestackpos] + 3)[1] = (nodestart)[1] + (f) * ((nodeend)[1] - (nodestart)[1]), (nodestackline[nodestackpos] + 3)[2] = (nodestart)[2] + (f) * ((nodeend)[2] - (nodestart)[2])); nodestack[nodestackpos++] = node->front; break; case 9: f = d1 / (d1 - d2); ((nodestackline[nodestackpos])[0] = (nodestart)[0] + (f) * ((nodeend)[0] - (nodestart)[0]), (nodestackline[nodestackpos])[1] = (nodestart)[1] + (f) * ((nodeend)[1] - (nodestart)[1]), (nodestackline[nodestackpos])[2] = (nodestart)[2] + (f) * ((nodeend)[2] - (nodestart)[2])); ((nodestackline[nodestackpos] + 3)[0]=(nodeend)[0],(nodestackline[nodestackpos] + 3)[1]=(nodeend)[1],(nodestackline[nodestackpos] + 3)[2]=(nodeend)[2]); nodestack[nodestackpos++] = node->back; f = d3 / (d3 - d4); ((nodestackline[nodestackpos])[0]=(nodestart)[0],(nodestackline[nodestackpos])[1]=(nodestart)[1],(nodestackline[nodestackpos])[2]=(nodestart)[2]); ((nodestackline[nodestackpos] + 3)[0] = (nodestart)[0] + (f) * ((nodeend)[0] - (nodestart)[0]), (nodestackline[nodestackpos] + 3)[1] = (nodestart)[1] + (f) * ((nodeend)[1] - (nodestart)[1]), (nodestackline[nodestackpos] + 3)[2] = (nodestart)[2] + (f) * ((nodeend)[2] - (nodestart)[2])); nodestack[nodestackpos++] = node->front; break; case 10: f = d1 / (d1 - d2); ((nodestackline[nodestackpos])[0]=(nodestart)[0],(nodestackline[nodestackpos])[1]=(nodestart)[1],(nodestackline[nodestackpos])[2]=(nodestart)[2]); ((nodestackline[nodestackpos] + 3)[0] = (nodestart)[0] + (f) * ((nodeend)[0] - (nodestart)[0]), (nodestackline[nodestackpos] + 3)[1] = (nodestart)[1] + (f) * ((nodeend)[1] - (nodestart)[1]), (nodestackline[nodestackpos] + 3)[2] = (nodestart)[2] + (f) * ((nodeend)[2] - (nodestart)[2])); nodestack[nodestackpos++] = node->back; f = d3 / (d3 - d4); ((nodestackline[nodestackpos])[0]=(nodestart)[0],(nodestackline[nodestackpos])[1]=(nodestart)[1],(nodestackline[nodestackpos])[2]=(nodestart)[2]); ((nodestackline[nodestackpos] + 3)[0] = (nodestart)[0] + (f) * ((nodeend)[0] - (nodestart)[0]), (nodestackline[nodestackpos] + 3)[1] = (nodestart)[1] + (f) * ((nodeend)[1] - (nodestart)[1]), (nodestackline[nodestackpos] + 3)[2] = (nodestart)[2] + (f) * ((nodeend)[2] - (nodestart)[2])); nodestack[nodestackpos++] = node->front; break; case 11: f = d3 / (d3 - d4); ((nodestackline[nodestackpos])[0]=(nodestart)[0],(nodestackline[nodestackpos])[1]=(nodestart)[1],(nodestackline[nodestackpos])[2]=(nodestart)[2]); ((nodestackline[nodestackpos] + 3)[0] = (nodestart)[0] + (f) * ((nodeend)[0] - (nodestart)[0]), (nodestackline[nodestackpos] + 3)[1] = (nodestart)[1] + (f) * ((nodeend)[1] - (nodestart)[1]), (nodestackline[nodestackpos] + 3)[2] = (nodestart)[2] + (f) * ((nodeend)[2] - (nodestart)[2])); nodestack[nodestackpos++] = node->front; break; case 12: ((nodestackline[nodestackpos])[0]=(nodestart)[0],(nodestackline[nodestackpos])[1]=(nodestart)[1],(nodestackline[nodestackpos])[2]=(nodestart)[2]); ((nodestackline[nodestackpos] + 3)[0]=(nodeend)[0],(nodestackline[nodestackpos] + 3)[1]=(nodeend)[1],(nodestackline[nodestackpos] + 3)[2]=(nodeend)[2]); nodestack[nodestackpos++] = node->back; break; case 13: f = d1 / (d1 - d2); ((nodestackline[nodestackpos])[0] = (nodestart)[0] + (f) * ((nodeend)[0] - (nodestart)[0]), (nodestackline[nodestackpos])[1] = (nodestart)[1] + (f) * ((nodeend)[1] - (nodestart)[1]), (nodestackline[nodestackpos])[2] = (nodestart)[2] + (f) * ((nodeend)[2] - (nodestart)[2])); ((nodestackline[nodestackpos] + 3)[0]=(nodeend)[0],(nodestackline[nodestackpos] + 3)[1]=(nodeend)[1],(nodestackline[nodestackpos] + 3)[2]=(nodeend)[2]); nodestack[nodestackpos++] = node->back; break; case 14: f = d1 / (d1 - d2); ((nodestackline[nodestackpos])[0]=(nodestart)[0],(nodestackline[nodestackpos])[1]=(nodestart)[1],(nodestackline[nodestackpos])[2]=(nodestart)[2]); ((nodestackline[nodestackpos] + 3)[0] = (nodestart)[0] + (f) * ((nodeend)[0] - (nodestart)[0]), (nodestackline[nodestackpos] + 3)[1] = (nodestart)[1] + (f) * ((nodeend)[1] - (nodestart)[1]), (nodestackline[nodestackpos] + 3)[2] = (nodestart)[2] + (f) * ((nodeend)[2] - (nodestart)[2])); nodestack[nodestackpos++] = node->back; break; case 15: break; } } else if (node->type == BIH_UNORDERED) { ((nodebigmins)[0]=(node->mins)[0]-(maxs)[0],(nodebigmins)[1]=(node->mins)[1]-(maxs)[1],(nodebigmins)[2]=(node->mins)[2]-(maxs)[2]); ((nodebigmaxs)[0]=(node->maxs)[0]-(mins)[0],(nodebigmaxs)[1]=(node->maxs)[1]-(mins)[1],(nodebigmaxs)[2]=(node->maxs)[2]-(mins)[2]); axis = 0; d1 = nodestart[axis] - nodebigmins[axis]; d2 = nodeend[axis] - nodebigmins[axis]; if (d1 < 0) { if (d2 < 0) continue; f = d1 / (d1 - d2); ((nodestart)[0] = (nodestart)[0] + (f) * ((nodeend)[0] - (nodestart)[0]), (nodestart)[1] = (nodestart)[1] + (f) * ((nodeend)[1] - (nodestart)[1]), (nodestart)[2] = (nodestart)[2] + (f) * ((nodeend)[2] - (nodestart)[2])); } else if (d2 < 0) { f = d1 / (d1 - d2); ((nodeend)[0] = (nodestart)[0] + (f) * ((nodeend)[0] - (nodestart)[0]), (nodeend)[1] = (nodestart)[1] + (f) * ((nodeend)[1] - (nodestart)[1]), (nodeend)[2] = (nodestart)[2] + (f) * ((nodeend)[2] - (nodestart)[2])); } d1 = nodebigmaxs[axis] - nodestart[axis]; d2 = nodebigmaxs[axis] - nodeend[axis]; if (d1 < 0) { if (d2 < 0) continue; f = d1 / (d1 - d2); ((nodestart)[0] = (nodestart)[0] + (f) * ((nodeend)[0] - (nodestart)[0]), (nodestart)[1] = (nodestart)[1] + (f) * ((nodeend)[1] - (nodestart)[1]), (nodestart)[2] = (nodestart)[2] + (f) * ((nodeend)[2] - (nodestart)[2])); } else if (d2 < 0) { f = d1 / (d1 - d2); ((nodeend)[0] = (nodestart)[0] + (f) * ((nodeend)[0] - (nodestart)[0]), (nodeend)[1] = (nodestart)[1] + (f) * ((nodeend)[1] - (nodestart)[1]), (nodeend)[2] = (nodestart)[2] + (f) * ((nodeend)[2] - (nodestart)[2])); } axis = 1; d1 = nodestart[axis] - nodebigmins[axis]; d2 = nodeend[axis] - nodebigmins[axis]; if (d1 < 0) { if (d2 < 0) continue; f = d1 / (d1 - d2); ((nodestart)[0] = (nodestart)[0] + (f) * ((nodeend)[0] - (nodestart)[0]), (nodestart)[1] = (nodestart)[1] + (f) * ((nodeend)[1] - (nodestart)[1]), (nodestart)[2] = (nodestart)[2] + (f) * ((nodeend)[2] - (nodestart)[2])); } else if (d2 < 0) { f = d1 / (d1 - d2); ((nodeend)[0] = (nodestart)[0] + (f) * ((nodeend)[0] - (nodestart)[0]), (nodeend)[1] = (nodestart)[1] + (f) * ((nodeend)[1] - (nodestart)[1]), (nodeend)[2] = (nodestart)[2] + (f) * ((nodeend)[2] - (nodestart)[2])); } d1 = nodebigmaxs[axis] - nodestart[axis]; d2 = nodebigmaxs[axis] - nodeend[axis]; if (d1 < 0) { if (d2 < 0) continue; f = d1 / (d1 - d2); ((nodestart)[0] = (nodestart)[0] + (f) * ((nodeend)[0] - (nodestart)[0]), (nodestart)[1] = (nodestart)[1] + (f) * ((nodeend)[1] - (nodestart)[1]), (nodestart)[2] = (nodestart)[2] + (f) * ((nodeend)[2] - (nodestart)[2])); } else if (d2 < 0) { f = d1 / (d1 - d2); ((nodeend)[0] = (nodestart)[0] + (f) * ((nodeend)[0] - (nodestart)[0]), (nodeend)[1] = (nodestart)[1] + (f) * ((nodeend)[1] - (nodestart)[1]), (nodeend)[2] = (nodestart)[2] + (f) * ((nodeend)[2] - (nodestart)[2])); } axis = 2; d1 = nodestart[axis] - nodebigmins[axis]; d2 = nodeend[axis] - nodebigmins[axis]; if (d1 < 0) { if (d2 < 0) continue; f = d1 / (d1 - d2); ((nodestart)[0] = (nodestart)[0] + (f) * ((nodeend)[0] - (nodestart)[0]), (nodestart)[1] = (nodestart)[1] + (f) * ((nodeend)[1] - (nodestart)[1]), (nodestart)[2] = (nodestart)[2] + (f) * ((nodeend)[2] - (nodestart)[2])); } else if (d2 < 0) { f = d1 / (d1 - d2); ((nodeend)[0] = (nodestart)[0] + (f) * ((nodeend)[0] - (nodestart)[0]), (nodeend)[1] = (nodestart)[1] + (f) * ((nodeend)[1] - (nodestart)[1]), (nodeend)[2] = (nodestart)[2] + (f) * ((nodeend)[2] - (nodestart)[2])); } d1 = nodebigmaxs[axis] - nodestart[axis]; d2 = nodebigmaxs[axis] - nodeend[axis]; if (d1 < 0) { if (d2 < 0) continue; f = d1 / (d1 - d2); ((nodestart)[0] = (nodestart)[0] + (f) * ((nodeend)[0] - (nodestart)[0]), (nodestart)[1] = (nodestart)[1] + (f) * ((nodeend)[1] - (nodestart)[1]), (nodestart)[2] = (nodestart)[2] + (f) * ((nodeend)[2] - (nodestart)[2])); } else if (d2 < 0) { f = d1 / (d1 - d2); ((nodeend)[0] = (nodestart)[0] + (f) * ((nodeend)[0] - (nodestart)[0]), (nodeend)[1] = (nodestart)[1] + (f) * ((nodeend)[1] - (nodestart)[1]), (nodeend)[2] = (nodestart)[2] + (f) * ((nodeend)[2] - (nodestart)[2])); } sweepnodemins[0] = ((nodestart[0]) < (nodeend[0]) ? (nodestart[0]) : (nodeend[0])) + mins[0] - 1; sweepnodemins[1] = ((nodestart[1]) < (nodeend[1]) ? (nodestart[1]) : (nodeend[1])) + mins[1] - 1; sweepnodemins[2] = ((nodestart[2]) < (nodeend[2]) ? (nodestart[2]) : (nodeend[2])) + mins[2] - 1; sweepnodemaxs[0] = ((nodestart[0]) > (nodeend[0]) ? (nodestart[0]) : (nodeend[0])) + maxs[0] + 1; sweepnodemaxs[1] = ((nodestart[1]) > (nodeend[1]) ? (nodestart[1]) : (nodeend[1])) + maxs[1] + 1; sweepnodemaxs[2] = ((nodestart[2]) > (nodeend[2]) ? (nodestart[2]) : (nodeend[2])) + maxs[2] + 1; for (axis = 0;axis < 8 && node->children[axis] >= 0;axis++) { leaf = bih->leafs + node->children[axis]; if (!((sweepnodemins)[0] <= (leaf->maxs)[0] && (sweepnodemaxs)[0] >= (leaf->mins)[0] && (sweepnodemins)[1] <= (leaf->maxs)[1] && (sweepnodemaxs)[1] >= (leaf->mins)[1] && (sweepnodemins)[2] <= (leaf->maxs)[2] && (sweepnodemaxs)[2] >= (leaf->mins)[2])) continue; switch(leaf->type) { case BIH_BRUSH: brush = model->brush.data_brushes[leaf->itemindex].colbrushf; Collision_TraceBrushBrushFloat(trace, thisbrush_start, thisbrush_end, brush, brush); break; case BIH_COLLISIONTRIANGLE: if (!mod_q3bsp_curves_collisions.integer) continue; e = model->brush.data_collisionelement3i + 3*leaf->itemindex; texture = model->data_textures + leaf->textureindex; Collision_TraceBrushTriangleFloat(trace, thisbrush_start, thisbrush_end, model->brush.data_collisionvertex3f + e[0] * 3, model->brush.data_collisionvertex3f + e[1] * 3, model->brush.data_collisionvertex3f + e[2] * 3, texture->supercontents, texture->surfaceflags, texture); break; case BIH_RENDERTRIANGLE: e = model->surfmesh.data_element3i + 3*leaf->itemindex; texture = model->data_textures + leaf->textureindex; Collision_TraceBrushTriangleFloat(trace, thisbrush_start, thisbrush_end, model->surfmesh.data_vertex3f + e[0] * 3, model->surfmesh.data_vertex3f + e[1] * 3, model->surfmesh.data_vertex3f + e[2] * 3, texture->supercontents, texture->surfaceflags, texture); break; } } } } } void Mod_CollisionBIH_TraceBox(dp_model_t *model, const frameblend_t *frameblend, const skeleton_t *skeleton, trace_t *trace, const vec3_t start, const vec3_t boxmins, const vec3_t boxmaxs, const vec3_t end, int hitsupercontentsmask) { colboxbrushf_t thisbrush_start, thisbrush_end; vec3_t boxstartmins, boxstartmaxs, boxendmins, boxendmaxs; ((boxstartmins)[0]=(start)[0]+(boxmins)[0],(boxstartmins)[1]=(start)[1]+(boxmins)[1],(boxstartmins)[2]=(start)[2]+(boxmins)[2]); ((boxstartmaxs)[0]=(start)[0]+(boxmaxs)[0],(boxstartmaxs)[1]=(start)[1]+(boxmaxs)[1],(boxstartmaxs)[2]=(start)[2]+(boxmaxs)[2]); ((boxendmins)[0]=(end)[0]+(boxmins)[0],(boxendmins)[1]=(end)[1]+(boxmins)[1],(boxendmins)[2]=(end)[2]+(boxmins)[2]); ((boxendmaxs)[0]=(end)[0]+(boxmaxs)[0],(boxendmaxs)[1]=(end)[1]+(boxmaxs)[1],(boxendmaxs)[2]=(end)[2]+(boxmaxs)[2]); Collision_BrushForBox(&thisbrush_start, boxstartmins, boxstartmaxs, 0, 0, # 7048 "../../../model_brush.c" 3 4 ((void *)0) # 7048 "../../../model_brush.c" ); Collision_BrushForBox(&thisbrush_end, boxendmins, boxendmaxs, 0, 0, # 7049 "../../../model_brush.c" 3 4 ((void *)0) # 7049 "../../../model_brush.c" ); Mod_CollisionBIH_TraceBrush(model, frameblend, skeleton, trace, &thisbrush_start.brush, &thisbrush_end.brush, hitsupercontentsmask); } int Mod_CollisionBIH_PointSuperContents(struct model_s *model, int frame, const vec3_t point) { trace_t trace; Mod_CollisionBIH_TracePoint(model, # 7057 "../../../model_brush.c" 3 4 ((void *)0) # 7057 "../../../model_brush.c" , # 7057 "../../../model_brush.c" 3 4 ((void *)0) # 7057 "../../../model_brush.c" , &trace, point, 0); return trace.startsupercontents; } qboolean Mod_CollisionBIH_TraceLineOfSight(struct model_s *model, const vec3_t start, const vec3_t end) { trace_t trace; Mod_CollisionBIH_TraceLine(model, # 7064 "../../../model_brush.c" 3 4 ((void *)0) # 7064 "../../../model_brush.c" , # 7064 "../../../model_brush.c" 3 4 ((void *)0) # 7064 "../../../model_brush.c" , &trace, start, end, 0x00001000); return trace.fraction == 1; } void Mod_CollisionBIH_TracePoint_Mesh(dp_model_t *model, const frameblend_t *frameblend, const skeleton_t *skeleton, trace_t *trace, const vec3_t start, int hitsupercontentsmask) { memset(trace, 0, sizeof(*trace)); trace->fraction = 1; trace->hitsupercontentsmask = hitsupercontentsmask; # 7087 "../../../model_brush.c" } int Mod_CollisionBIH_PointSuperContents_Mesh(struct model_s *model, int frame, const vec3_t start) { # 7102 "../../../model_brush.c" return 0; } static void Mod_Q3BSP_TracePoint_RecursiveBSPNode(trace_t *trace, dp_model_t *model, mnode_t *node, const vec3_t point, int markframe) { int i; mleaf_t *leaf; colbrushf_t *brush; while (node->plane) node = node->children[(node->plane->type < 3 ? point[node->plane->type] : ((point)[0]*(node->plane->normal)[0]+(point)[1]*(node->plane->normal)[1]+(point)[2]*(node->plane->normal)[2])) < node->plane->dist]; leaf = (mleaf_t *)node; for (i = 0;i < leaf->numleafbrushes;i++) { brush = model->brush.data_brushes[leaf->firstleafbrush[i]].colbrushf; if (brush && brush->markframe != markframe && ((point)[0] <= (brush->maxs)[0] && (point)[0] >= (brush->mins)[0] && (point)[1] <= (brush->maxs)[1] && (point)[1] >= (brush->mins)[1] && (point)[2] <= (brush->maxs)[2] && (point)[2] >= (brush->mins)[2])) { brush->markframe = markframe; Collision_TracePointBrushFloat(trace, point, brush); } } } static void Mod_Q3BSP_TraceLine_RecursiveBSPNode(trace_t *trace, dp_model_t *model, mnode_t *node, const vec3_t start, const vec3_t end, vec_t startfrac, vec_t endfrac, const vec3_t linestart, const vec3_t lineend, int markframe, const vec3_t segmentmins, const vec3_t segmentmaxs) { int i, startside, endside; float dist1, dist2, midfrac, mid[3], nodesegmentmins[3], nodesegmentmaxs[3]; mleaf_t *leaf; msurface_t *surface; mplane_t *plane; colbrushf_t *brush; while (node->plane) { # 7148 "../../../model_brush.c" plane = node->plane; if (plane->type < 3) { dist1 = start[plane->type] - plane->dist; dist2 = end[plane->type] - plane->dist; } else { dist1 = ((start)[0]*(plane->normal)[0]+(start)[1]*(plane->normal)[1]+(start)[2]*(plane->normal)[2]) - plane->dist; dist2 = ((end)[0]*(plane->normal)[0]+(end)[1]*(plane->normal)[1]+(end)[2]*(plane->normal)[2]) - plane->dist; } startside = dist1 < 0; endside = dist2 < 0; if (startside == endside) { node = node->children[startside]; } else { dist1 = (((plane)->type < 3 ? (linestart)[(plane)->type] : (((linestart))[0]*((plane)->normal)[0]+((linestart))[1]*((plane)->normal)[1]+((linestart))[2]*((plane)->normal)[2])) - (plane)->dist); dist2 = (((plane)->type < 3 ? (lineend)[(plane)->type] : (((lineend))[0]*((plane)->normal)[0]+((lineend))[1]*((plane)->normal)[1]+((lineend))[2]*((plane)->normal)[2])) - (plane)->dist); midfrac = dist1 / (dist1 - dist2); ((mid)[0] = (linestart)[0] + (midfrac) * ((lineend)[0] - (linestart)[0]), (mid)[1] = (linestart)[1] + (midfrac) * ((lineend)[1] - (linestart)[1]), (mid)[2] = (linestart)[2] + (midfrac) * ((lineend)[2] - (linestart)[2])); Mod_Q3BSP_TraceLine_RecursiveBSPNode(trace, model, node->children[startside], start, mid, startfrac, midfrac, linestart, lineend, markframe, segmentmins, segmentmaxs); if (midfrac <= trace->fraction) Mod_Q3BSP_TraceLine_RecursiveBSPNode(trace, model, node->children[endside], mid, end, midfrac, endfrac, linestart, lineend, markframe, segmentmins, segmentmaxs); return; } } nodesegmentmins[0] = ((start[0]) < (end[0]) ? (start[0]) : (end[0])) - 1; nodesegmentmins[1] = ((start[1]) < (end[1]) ? (start[1]) : (end[1])) - 1; nodesegmentmins[2] = ((start[2]) < (end[2]) ? (start[2]) : (end[2])) - 1; nodesegmentmaxs[0] = ((start[0]) > (end[0]) ? (start[0]) : (end[0])) + 1; nodesegmentmaxs[1] = ((start[1]) > (end[1]) ? (start[1]) : (end[1])) + 1; nodesegmentmaxs[2] = ((start[2]) > (end[2]) ? (start[2]) : (end[2])) + 1; leaf = (mleaf_t *)node; for (i = 0;i < leaf->numleafbrushes;i++) { brush = model->brush.data_brushes[leaf->firstleafbrush[i]].colbrushf; if (brush && brush->markframe != markframe && ((nodesegmentmins)[0] <= (brush->maxs)[0] && (nodesegmentmaxs)[0] >= (brush->mins)[0] && (nodesegmentmins)[1] <= (brush->maxs)[1] && (nodesegmentmaxs)[1] >= (brush->mins)[1] && (nodesegmentmins)[2] <= (brush->maxs)[2] && (nodesegmentmaxs)[2] >= (brush->mins)[2])) { brush->markframe = markframe; Collision_TraceLineBrushFloat(trace, linestart, lineend, brush, brush); } } if (leaf->containscollisionsurfaces && mod_q3bsp_curves_collisions.integer && !(((start)[0]==(end)[0])&&((start)[1]==(end)[1])&&((start)[2]==(end)[2]))) { for (i = 0;i < leaf->numleafsurfaces;i++) { surface = model->data_surfaces + leaf->firstleafsurface[i]; if (surface->num_collisiontriangles && surface->deprecatedq3collisionmarkframe != markframe && ((nodesegmentmins)[0] <= (surface->maxs)[0] && (nodesegmentmaxs)[0] >= (surface->mins)[0] && (nodesegmentmins)[1] <= (surface->maxs)[1] && (nodesegmentmaxs)[1] >= (surface->mins)[1] && (nodesegmentmins)[2] <= (surface->maxs)[2] && (nodesegmentmaxs)[2] >= (surface->mins)[2])) { surface->deprecatedq3collisionmarkframe = markframe; Collision_TraceLineTriangleMeshFloat(trace, linestart, lineend, surface->num_collisiontriangles, surface->deprecatedq3data_collisionelement3i, surface->deprecatedq3data_collisionvertex3f, surface->deprecatedq3num_collisionbboxstride, surface->deprecatedq3data_collisionbbox6f, surface->texture->supercontents, surface->texture->surfaceflags, surface->texture, segmentmins, segmentmaxs); } } } } static void Mod_Q3BSP_TraceBrush_RecursiveBSPNode(trace_t *trace, dp_model_t *model, mnode_t *node, const colbrushf_t *thisbrush_start, const colbrushf_t *thisbrush_end, int markframe, const vec3_t segmentmins, const vec3_t segmentmaxs) { int i; int sides; mleaf_t *leaf; colbrushf_t *brush; msurface_t *surface; mplane_t *plane; float nodesegmentmins[3], nodesegmentmaxs[3]; while (node->plane) { # 7247 "../../../model_brush.c" plane = node->plane; if (plane->type < 3) { sides = ((segmentmaxs[plane->type] >= plane->dist) + ((segmentmins[plane->type] < plane->dist) * 2)); } else { sides = BoxOnPlaneSide(thisbrush_start->mins, thisbrush_start->maxs, plane) | BoxOnPlaneSide(thisbrush_end->mins, thisbrush_end->maxs, plane); } if (sides == 3) { Mod_Q3BSP_TraceBrush_RecursiveBSPNode(trace, model, node->children[0], thisbrush_start, thisbrush_end, markframe, segmentmins, segmentmaxs); sides = 2; } if (sides == 0) return; node = node->children[sides - 1]; } nodesegmentmins[0] = ((segmentmins[0]) > (node->mins[0] - 1) ? (segmentmins[0]) : (node->mins[0] - 1)); nodesegmentmins[1] = ((segmentmins[1]) > (node->mins[1] - 1) ? (segmentmins[1]) : (node->mins[1] - 1)); nodesegmentmins[2] = ((segmentmins[2]) > (node->mins[2] - 1) ? (segmentmins[2]) : (node->mins[2] - 1)); nodesegmentmaxs[0] = ((segmentmaxs[0]) < (node->maxs[0] + 1) ? (segmentmaxs[0]) : (node->maxs[0] + 1)); nodesegmentmaxs[1] = ((segmentmaxs[1]) < (node->maxs[1] + 1) ? (segmentmaxs[1]) : (node->maxs[1] + 1)); nodesegmentmaxs[2] = ((segmentmaxs[2]) < (node->maxs[2] + 1) ? (segmentmaxs[2]) : (node->maxs[2] + 1)); leaf = (mleaf_t *)node; for (i = 0;i < leaf->numleafbrushes;i++) { brush = model->brush.data_brushes[leaf->firstleafbrush[i]].colbrushf; if (brush && brush->markframe != markframe && ((nodesegmentmins)[0] <= (brush->maxs)[0] && (nodesegmentmaxs)[0] >= (brush->mins)[0] && (nodesegmentmins)[1] <= (brush->maxs)[1] && (nodesegmentmaxs)[1] >= (brush->mins)[1] && (nodesegmentmins)[2] <= (brush->maxs)[2] && (nodesegmentmaxs)[2] >= (brush->mins)[2])) { brush->markframe = markframe; Collision_TraceBrushBrushFloat(trace, thisbrush_start, thisbrush_end, brush, brush); } } if (leaf->containscollisionsurfaces && mod_q3bsp_curves_collisions.integer) { for (i = 0;i < leaf->numleafsurfaces;i++) { surface = model->data_surfaces + leaf->firstleafsurface[i]; if (surface->num_collisiontriangles && surface->deprecatedq3collisionmarkframe != markframe && ((nodesegmentmins)[0] <= (surface->maxs)[0] && (nodesegmentmaxs)[0] >= (surface->mins)[0] && (nodesegmentmins)[1] <= (surface->maxs)[1] && (nodesegmentmaxs)[1] >= (surface->mins)[1] && (nodesegmentmins)[2] <= (surface->maxs)[2] && (nodesegmentmaxs)[2] >= (surface->mins)[2])) { surface->deprecatedq3collisionmarkframe = markframe; Collision_TraceBrushTriangleMeshFloat(trace, thisbrush_start, thisbrush_end, surface->num_collisiontriangles, surface->deprecatedq3data_collisionelement3i, surface->deprecatedq3data_collisionvertex3f, surface->deprecatedq3num_collisionbboxstride, surface->deprecatedq3data_collisionbbox6f, surface->texture->supercontents, surface->texture->surfaceflags, surface->texture, segmentmins, segmentmaxs); } } } } static int markframe = 0; static void Mod_Q3BSP_TracePoint(dp_model_t *model, const frameblend_t *frameblend, const skeleton_t *skeleton, trace_t *trace, const vec3_t start, int hitsupercontentsmask) { int i; q3mbrush_t *brush; memset(trace, 0, sizeof(*trace)); trace->fraction = 1; trace->hitsupercontentsmask = hitsupercontentsmask; if (mod_collision_bih.integer) Mod_CollisionBIH_TracePoint(model, frameblend, skeleton, trace, start, hitsupercontentsmask); else if (model->brush.submodel) { for (i = 0, brush = model->brush.data_brushes + model->firstmodelbrush;i < model->nummodelbrushes;i++, brush++) if (brush->colbrushf) Collision_TracePointBrushFloat(trace, start, brush->colbrushf); } else Mod_Q3BSP_TracePoint_RecursiveBSPNode(trace, model, model->brush.data_nodes, start, ++markframe); } static void Mod_Q3BSP_TraceLine(dp_model_t *model, const frameblend_t *frameblend, const skeleton_t *skeleton, trace_t *trace, const vec3_t start, const vec3_t end, int hitsupercontentsmask) { int i; float segmentmins[3], segmentmaxs[3]; msurface_t *surface; q3mbrush_t *brush; if ((((start)[0]==(end)[0])&&((start)[1]==(end)[1])&&((start)[2]==(end)[2]))) { Mod_Q3BSP_TracePoint(model, frameblend, skeleton, trace, start, hitsupercontentsmask); return; } memset(trace, 0, sizeof(*trace)); trace->fraction = 1; trace->hitsupercontentsmask = hitsupercontentsmask; segmentmins[0] = ((start[0]) < (end[0]) ? (start[0]) : (end[0])) - 1; segmentmins[1] = ((start[1]) < (end[1]) ? (start[1]) : (end[1])) - 1; segmentmins[2] = ((start[2]) < (end[2]) ? (start[2]) : (end[2])) - 1; segmentmaxs[0] = ((start[0]) > (end[0]) ? (start[0]) : (end[0])) + 1; segmentmaxs[1] = ((start[1]) > (end[1]) ? (start[1]) : (end[1])) + 1; segmentmaxs[2] = ((start[2]) > (end[2]) ? (start[2]) : (end[2])) + 1; if (mod_collision_bih.integer) Mod_CollisionBIH_TraceLine(model, frameblend, skeleton, trace, start, end, hitsupercontentsmask); else if (model->brush.submodel) { for (i = 0, brush = model->brush.data_brushes + model->firstmodelbrush;i < model->nummodelbrushes;i++, brush++) if (brush->colbrushf && ((segmentmins)[0] <= (brush->colbrushf->maxs)[0] && (segmentmaxs)[0] >= (brush->colbrushf->mins)[0] && (segmentmins)[1] <= (brush->colbrushf->maxs)[1] && (segmentmaxs)[1] >= (brush->colbrushf->mins)[1] && (segmentmins)[2] <= (brush->colbrushf->maxs)[2] && (segmentmaxs)[2] >= (brush->colbrushf->mins)[2])) Collision_TraceLineBrushFloat(trace, start, end, brush->colbrushf, brush->colbrushf); if (mod_q3bsp_curves_collisions.integer) for (i = 0, surface = model->data_surfaces + model->firstmodelsurface;i < model->nummodelsurfaces;i++, surface++) if (surface->num_collisiontriangles && ((segmentmins)[0] <= (surface->maxs)[0] && (segmentmaxs)[0] >= (surface->mins)[0] && (segmentmins)[1] <= (surface->maxs)[1] && (segmentmaxs)[1] >= (surface->mins)[1] && (segmentmins)[2] <= (surface->maxs)[2] && (segmentmaxs)[2] >= (surface->mins)[2])) Collision_TraceLineTriangleMeshFloat(trace, start, end, surface->num_collisiontriangles, surface->deprecatedq3data_collisionelement3i, surface->deprecatedq3data_collisionvertex3f, surface->deprecatedq3num_collisionbboxstride, surface->deprecatedq3data_collisionbbox6f, surface->texture->supercontents, surface->texture->surfaceflags, surface->texture, segmentmins, segmentmaxs); } else Mod_Q3BSP_TraceLine_RecursiveBSPNode(trace, model, model->brush.data_nodes, start, end, 0, 1, start, end, ++markframe, segmentmins, segmentmaxs); } static void Mod_Q3BSP_TraceBrush(dp_model_t *model, const frameblend_t *frameblend, const skeleton_t *skeleton, trace_t *trace, colbrushf_t *start, colbrushf_t *end, int hitsupercontentsmask) { float segmentmins[3], segmentmaxs[3]; int i; msurface_t *surface; q3mbrush_t *brush; if (mod_q3bsp_optimizedtraceline.integer && (((start->mins)[0]==(start->maxs)[0])&&((start->mins)[1]==(start->maxs)[1])&&((start->mins)[2]==(start->maxs)[2])) && (((end->mins)[0]==(end->maxs)[0])&&((end->mins)[1]==(end->maxs)[1])&&((end->mins)[2]==(end->maxs)[2]))) { if ((((start->mins)[0]==(end->mins)[0])&&((start->mins)[1]==(end->mins)[1])&&((start->mins)[2]==(end->mins)[2]))) Mod_Q3BSP_TracePoint(model, frameblend, skeleton, trace, start->mins, hitsupercontentsmask); else Mod_Q3BSP_TraceLine(model, frameblend, skeleton, trace, start->mins, end->mins, hitsupercontentsmask); return; } memset(trace, 0, sizeof(*trace)); trace->fraction = 1; trace->hitsupercontentsmask = hitsupercontentsmask; segmentmins[0] = ((start->mins[0]) < (end->mins[0]) ? (start->mins[0]) : (end->mins[0])) - 1; segmentmins[1] = ((start->mins[1]) < (end->mins[1]) ? (start->mins[1]) : (end->mins[1])) - 1; segmentmins[2] = ((start->mins[2]) < (end->mins[2]) ? (start->mins[2]) : (end->mins[2])) - 1; segmentmaxs[0] = ((start->maxs[0]) > (end->maxs[0]) ? (start->maxs[0]) : (end->maxs[0])) + 1; segmentmaxs[1] = ((start->maxs[1]) > (end->maxs[1]) ? (start->maxs[1]) : (end->maxs[1])) + 1; segmentmaxs[2] = ((start->maxs[2]) > (end->maxs[2]) ? (start->maxs[2]) : (end->maxs[2])) + 1; if (mod_collision_bih.integer) Mod_CollisionBIH_TraceBrush(model, frameblend, skeleton, trace, start, end, hitsupercontentsmask); else if (model->brush.submodel) { for (i = 0, brush = model->brush.data_brushes + model->firstmodelbrush;i < model->nummodelbrushes;i++, brush++) if (brush->colbrushf && ((segmentmins)[0] <= (brush->colbrushf->maxs)[0] && (segmentmaxs)[0] >= (brush->colbrushf->mins)[0] && (segmentmins)[1] <= (brush->colbrushf->maxs)[1] && (segmentmaxs)[1] >= (brush->colbrushf->mins)[1] && (segmentmins)[2] <= (brush->colbrushf->maxs)[2] && (segmentmaxs)[2] >= (brush->colbrushf->mins)[2])) Collision_TraceBrushBrushFloat(trace, start, end, brush->colbrushf, brush->colbrushf); if (mod_q3bsp_curves_collisions.integer) for (i = 0, surface = model->data_surfaces + model->firstmodelsurface;i < model->nummodelsurfaces;i++, surface++) if (surface->num_collisiontriangles && ((segmentmins)[0] <= (surface->maxs)[0] && (segmentmaxs)[0] >= (surface->mins)[0] && (segmentmins)[1] <= (surface->maxs)[1] && (segmentmaxs)[1] >= (surface->mins)[1] && (segmentmins)[2] <= (surface->maxs)[2] && (segmentmaxs)[2] >= (surface->mins)[2])) Collision_TraceBrushTriangleMeshFloat(trace, start, end, surface->num_collisiontriangles, surface->deprecatedq3data_collisionelement3i, surface->deprecatedq3data_collisionvertex3f, surface->deprecatedq3num_collisionbboxstride, surface->deprecatedq3data_collisionbbox6f, surface->texture->supercontents, surface->texture->surfaceflags, surface->texture, segmentmins, segmentmaxs); } else Mod_Q3BSP_TraceBrush_RecursiveBSPNode(trace, model, model->brush.data_nodes, start, end, ++markframe, segmentmins, segmentmaxs); } static void Mod_Q3BSP_TraceBox(dp_model_t *model, const frameblend_t *frameblend, const skeleton_t *skeleton, trace_t *trace, const vec3_t start, const vec3_t boxmins, const vec3_t boxmaxs, const vec3_t end, int hitsupercontentsmask) { colboxbrushf_t thisbrush_start, thisbrush_end; vec3_t boxstartmins, boxstartmaxs, boxendmins, boxendmaxs; ((boxstartmins)[0]=(start)[0]+(boxmins)[0],(boxstartmins)[1]=(start)[1]+(boxmins)[1],(boxstartmins)[2]=(start)[2]+(boxmins)[2]); ((boxstartmaxs)[0]=(start)[0]+(boxmaxs)[0],(boxstartmaxs)[1]=(start)[1]+(boxmaxs)[1],(boxstartmaxs)[2]=(start)[2]+(boxmaxs)[2]); ((boxendmins)[0]=(end)[0]+(boxmins)[0],(boxendmins)[1]=(end)[1]+(boxmins)[1],(boxendmins)[2]=(end)[2]+(boxmins)[2]); ((boxendmaxs)[0]=(end)[0]+(boxmaxs)[0],(boxendmaxs)[1]=(end)[1]+(boxmaxs)[1],(boxendmaxs)[2]=(end)[2]+(boxmaxs)[2]); Collision_BrushForBox(&thisbrush_start, boxstartmins, boxstartmaxs, 0, 0, # 7430 "../../../model_brush.c" 3 4 ((void *)0) # 7430 "../../../model_brush.c" ); Collision_BrushForBox(&thisbrush_end, boxendmins, boxendmaxs, 0, 0, # 7431 "../../../model_brush.c" 3 4 ((void *)0) # 7431 "../../../model_brush.c" ); Mod_Q3BSP_TraceBrush(model, frameblend, skeleton, trace, &thisbrush_start.brush, &thisbrush_end.brush, hitsupercontentsmask); } static int Mod_Q3BSP_PointSuperContents(struct model_s *model, int frame, const vec3_t point) { int i; int supercontents = 0; q3mbrush_t *brush; if (mod_collision_bih.integer) { supercontents = Mod_CollisionBIH_PointSuperContents(model, frame, point); } else if (model->brush.submodel) { for (i = 0, brush = model->brush.data_brushes + model->firstmodelbrush;i < model->nummodelbrushes;i++, brush++) if (brush->colbrushf && Collision_PointInsideBrushFloat(point, brush->colbrushf)) supercontents |= brush->colbrushf->supercontents; } else { mnode_t *node = model->brush.data_nodes; mleaf_t *leaf; while (node->plane) node = node->children[(node->plane->type < 3 ? point[node->plane->type] : ((point)[0]*(node->plane->normal)[0]+(point)[1]*(node->plane->normal)[1]+(point)[2]*(node->plane->normal)[2])) < node->plane->dist]; leaf = (mleaf_t *)node; for (i = 0;i < leaf->numleafbrushes;i++) { brush = model->brush.data_brushes + leaf->firstleafbrush[i]; if (brush->colbrushf && Collision_PointInsideBrushFloat(point, brush->colbrushf)) supercontents |= brush->colbrushf->supercontents; } } return supercontents; } void Mod_CollisionBIH_TraceLineAgainstSurfaces(dp_model_t *model, const frameblend_t *frameblend, const skeleton_t *skeleton, trace_t *trace, const vec3_t start, const vec3_t end, int hitsupercontentsmask) { Mod_CollisionBIH_TraceLineShared(model, frameblend, skeleton, trace, start, end, hitsupercontentsmask, &model->render_bih); } bih_t *Mod_MakeCollisionBIH(dp_model_t *model, qboolean userendersurfaces, bih_t *out) { int j; int bihnumleafs; int bihmaxnodes; int brushindex; int triangleindex; int bihleafindex; int nummodelbrushes = model->nummodelbrushes; int nummodelsurfaces = model->nummodelsurfaces; const int *e; const int *collisionelement3i; const float *collisionvertex3f; const int *renderelement3i; const float *rendervertex3f; bih_leaf_t *bihleafs; bih_node_t *bihnodes; int *temp_leafsort; int *temp_leafsortscratch; const msurface_t *surface; const q3mbrush_t *brush; bihnumleafs = 0; if (userendersurfaces) { for (j = 0, surface = model->data_surfaces + model->firstmodelsurface;j < nummodelsurfaces;j++, surface++) bihnumleafs += surface->num_triangles; } else { for (brushindex = 0, brush = model->brush.data_brushes + brushindex+model->firstmodelbrush;brushindex < nummodelbrushes;brushindex++, brush++) if (brush->colbrushf) bihnumleafs++; for (j = 0, surface = model->data_surfaces + model->firstmodelsurface;j < nummodelsurfaces;j++, surface++) { if (surface->texture->basematerialflags & 1) bihnumleafs += surface->num_triangles + surface->num_collisiontriangles; else bihnumleafs += surface->num_collisiontriangles; } } if (!bihnumleafs) return # 7521 "../../../model_brush.c" 3 4 ((void *)0) # 7521 "../../../model_brush.c" ; bihleafs = (bih_leaf_t *)_Mem_Alloc(loadmodel->mempool, # 7524 "../../../model_brush.c" 3 4 ((void *)0) # 7524 "../../../model_brush.c" , sizeof(bih_leaf_t) * bihnumleafs, 16, "../../../model_brush.c", 7524); bihleafindex = 0; renderelement3i = model->surfmesh.data_element3i; rendervertex3f = model->surfmesh.data_vertex3f; for (j = 0, surface = model->data_surfaces + model->firstmodelsurface;j < nummodelsurfaces;j++, surface++) { for (triangleindex = 0, e = renderelement3i + 3*surface->num_firsttriangle;triangleindex < surface->num_triangles;triangleindex++, e += 3) { if (!userendersurfaces && !(surface->texture->basematerialflags & 1)) continue; bihleafs[bihleafindex].type = BIH_RENDERTRIANGLE; bihleafs[bihleafindex].textureindex = surface->texture - model->data_textures; bihleafs[bihleafindex].surfaceindex = surface - model->data_surfaces; bihleafs[bihleafindex].itemindex = triangleindex+surface->num_firsttriangle; bihleafs[bihleafindex].mins[0] = ((rendervertex3f[3*e[0]+0]) < (((rendervertex3f[3*e[1]+0]) < (rendervertex3f[3*e[2]+0]) ? (rendervertex3f[3*e[1]+0]) : (rendervertex3f[3*e[2]+0]))) ? (rendervertex3f[3*e[0]+0]) : (((rendervertex3f[3*e[1]+0]) < (rendervertex3f[3*e[2]+0]) ? (rendervertex3f[3*e[1]+0]) : (rendervertex3f[3*e[2]+0])))) - 1; bihleafs[bihleafindex].mins[1] = ((rendervertex3f[3*e[0]+1]) < (((rendervertex3f[3*e[1]+1]) < (rendervertex3f[3*e[2]+1]) ? (rendervertex3f[3*e[1]+1]) : (rendervertex3f[3*e[2]+1]))) ? (rendervertex3f[3*e[0]+1]) : (((rendervertex3f[3*e[1]+1]) < (rendervertex3f[3*e[2]+1]) ? (rendervertex3f[3*e[1]+1]) : (rendervertex3f[3*e[2]+1])))) - 1; bihleafs[bihleafindex].mins[2] = ((rendervertex3f[3*e[0]+2]) < (((rendervertex3f[3*e[1]+2]) < (rendervertex3f[3*e[2]+2]) ? (rendervertex3f[3*e[1]+2]) : (rendervertex3f[3*e[2]+2]))) ? (rendervertex3f[3*e[0]+2]) : (((rendervertex3f[3*e[1]+2]) < (rendervertex3f[3*e[2]+2]) ? (rendervertex3f[3*e[1]+2]) : (rendervertex3f[3*e[2]+2])))) - 1; bihleafs[bihleafindex].maxs[0] = ((rendervertex3f[3*e[0]+0]) > (((rendervertex3f[3*e[1]+0]) > (rendervertex3f[3*e[2]+0]) ? (rendervertex3f[3*e[1]+0]) : (rendervertex3f[3*e[2]+0]))) ? (rendervertex3f[3*e[0]+0]) : (((rendervertex3f[3*e[1]+0]) > (rendervertex3f[3*e[2]+0]) ? (rendervertex3f[3*e[1]+0]) : (rendervertex3f[3*e[2]+0])))) + 1; bihleafs[bihleafindex].maxs[1] = ((rendervertex3f[3*e[0]+1]) > (((rendervertex3f[3*e[1]+1]) > (rendervertex3f[3*e[2]+1]) ? (rendervertex3f[3*e[1]+1]) : (rendervertex3f[3*e[2]+1]))) ? (rendervertex3f[3*e[0]+1]) : (((rendervertex3f[3*e[1]+1]) > (rendervertex3f[3*e[2]+1]) ? (rendervertex3f[3*e[1]+1]) : (rendervertex3f[3*e[2]+1])))) + 1; bihleafs[bihleafindex].maxs[2] = ((rendervertex3f[3*e[0]+2]) > (((rendervertex3f[3*e[1]+2]) > (rendervertex3f[3*e[2]+2]) ? (rendervertex3f[3*e[1]+2]) : (rendervertex3f[3*e[2]+2]))) ? (rendervertex3f[3*e[0]+2]) : (((rendervertex3f[3*e[1]+2]) > (rendervertex3f[3*e[2]+2]) ? (rendervertex3f[3*e[1]+2]) : (rendervertex3f[3*e[2]+2])))) + 1; bihleafindex++; } } if (!userendersurfaces) { for (brushindex = 0, brush = model->brush.data_brushes + brushindex+model->firstmodelbrush;brushindex < nummodelbrushes;brushindex++, brush++) { if (!brush->colbrushf) continue; bihleafs[bihleafindex].type = BIH_BRUSH; bihleafs[bihleafindex].textureindex = brush->texture - model->data_textures; bihleafs[bihleafindex].surfaceindex = -1; bihleafs[bihleafindex].itemindex = brushindex+model->firstmodelbrush; ((bihleafs[bihleafindex].mins)[0]=(brush->colbrushf->mins)[0],(bihleafs[bihleafindex].mins)[1]=(brush->colbrushf->mins)[1],(bihleafs[bihleafindex].mins)[2]=(brush->colbrushf->mins)[2]); ((bihleafs[bihleafindex].maxs)[0]=(brush->colbrushf->maxs)[0],(bihleafs[bihleafindex].maxs)[1]=(brush->colbrushf->maxs)[1],(bihleafs[bihleafindex].maxs)[2]=(brush->colbrushf->maxs)[2]); bihleafindex++; } collisionelement3i = model->brush.data_collisionelement3i; collisionvertex3f = model->brush.data_collisionvertex3f; for (j = 0, surface = model->data_surfaces + model->firstmodelsurface;j < nummodelsurfaces;j++, surface++) { for (triangleindex = 0, e = collisionelement3i + 3*surface->num_firstcollisiontriangle;triangleindex < surface->num_collisiontriangles;triangleindex++, e += 3) { bihleafs[bihleafindex].type = BIH_COLLISIONTRIANGLE; bihleafs[bihleafindex].textureindex = surface->texture - model->data_textures; bihleafs[bihleafindex].surfaceindex = surface - model->data_surfaces; bihleafs[bihleafindex].itemindex = triangleindex+surface->num_firstcollisiontriangle; bihleafs[bihleafindex].mins[0] = ((collisionvertex3f[3*e[0]+0]) < (((collisionvertex3f[3*e[1]+0]) < (collisionvertex3f[3*e[2]+0]) ? (collisionvertex3f[3*e[1]+0]) : (collisionvertex3f[3*e[2]+0]))) ? (collisionvertex3f[3*e[0]+0]) : (((collisionvertex3f[3*e[1]+0]) < (collisionvertex3f[3*e[2]+0]) ? (collisionvertex3f[3*e[1]+0]) : (collisionvertex3f[3*e[2]+0])))) - 1; bihleafs[bihleafindex].mins[1] = ((collisionvertex3f[3*e[0]+1]) < (((collisionvertex3f[3*e[1]+1]) < (collisionvertex3f[3*e[2]+1]) ? (collisionvertex3f[3*e[1]+1]) : (collisionvertex3f[3*e[2]+1]))) ? (collisionvertex3f[3*e[0]+1]) : (((collisionvertex3f[3*e[1]+1]) < (collisionvertex3f[3*e[2]+1]) ? (collisionvertex3f[3*e[1]+1]) : (collisionvertex3f[3*e[2]+1])))) - 1; bihleafs[bihleafindex].mins[2] = ((collisionvertex3f[3*e[0]+2]) < (((collisionvertex3f[3*e[1]+2]) < (collisionvertex3f[3*e[2]+2]) ? (collisionvertex3f[3*e[1]+2]) : (collisionvertex3f[3*e[2]+2]))) ? (collisionvertex3f[3*e[0]+2]) : (((collisionvertex3f[3*e[1]+2]) < (collisionvertex3f[3*e[2]+2]) ? (collisionvertex3f[3*e[1]+2]) : (collisionvertex3f[3*e[2]+2])))) - 1; bihleafs[bihleafindex].maxs[0] = ((collisionvertex3f[3*e[0]+0]) > (((collisionvertex3f[3*e[1]+0]) > (collisionvertex3f[3*e[2]+0]) ? (collisionvertex3f[3*e[1]+0]) : (collisionvertex3f[3*e[2]+0]))) ? (collisionvertex3f[3*e[0]+0]) : (((collisionvertex3f[3*e[1]+0]) > (collisionvertex3f[3*e[2]+0]) ? (collisionvertex3f[3*e[1]+0]) : (collisionvertex3f[3*e[2]+0])))) + 1; bihleafs[bihleafindex].maxs[1] = ((collisionvertex3f[3*e[0]+1]) > (((collisionvertex3f[3*e[1]+1]) > (collisionvertex3f[3*e[2]+1]) ? (collisionvertex3f[3*e[1]+1]) : (collisionvertex3f[3*e[2]+1]))) ? (collisionvertex3f[3*e[0]+1]) : (((collisionvertex3f[3*e[1]+1]) > (collisionvertex3f[3*e[2]+1]) ? (collisionvertex3f[3*e[1]+1]) : (collisionvertex3f[3*e[2]+1])))) + 1; bihleafs[bihleafindex].maxs[2] = ((collisionvertex3f[3*e[0]+2]) > (((collisionvertex3f[3*e[1]+2]) > (collisionvertex3f[3*e[2]+2]) ? (collisionvertex3f[3*e[1]+2]) : (collisionvertex3f[3*e[2]+2]))) ? (collisionvertex3f[3*e[0]+2]) : (((collisionvertex3f[3*e[1]+2]) > (collisionvertex3f[3*e[2]+2]) ? (collisionvertex3f[3*e[1]+2]) : (collisionvertex3f[3*e[2]+2])))) + 1; bihleafindex++; } } } bihmaxnodes = bihnumleafs + 1; bihnodes = (bih_node_t *)_Mem_Alloc(loadmodel->mempool, # 7592 "../../../model_brush.c" 3 4 ((void *)0) # 7592 "../../../model_brush.c" , sizeof(bih_node_t) * bihmaxnodes, 16, "../../../model_brush.c", 7592); temp_leafsort = (int *)_Mem_Alloc(loadmodel->mempool, # 7593 "../../../model_brush.c" 3 4 ((void *)0) # 7593 "../../../model_brush.c" , sizeof(int) * bihnumleafs * 2, 16, "../../../model_brush.c", 7593); temp_leafsortscratch = temp_leafsort + bihnumleafs; BIH_Build(out, bihnumleafs, bihleafs, bihmaxnodes, bihnodes, temp_leafsort, temp_leafsortscratch); _Mem_Free(temp_leafsort, "../../../model_brush.c", 7600); if (out->maxnodes > out->numnodes) { out->maxnodes = out->numnodes; out->nodes = (bih_node_t *)_Mem_Alloc(loadmodel->mempool, out->nodes, out->numnodes * sizeof(bih_node_t), 16, "../../../model_brush.c", 7606); } return out; } static int Mod_Q3BSP_SuperContentsFromNativeContents(dp_model_t *model, int nativecontents) { int supercontents = 0; if (nativecontents & 0x00000001) supercontents |= 0x00000001; if (nativecontents & 0x00000020) supercontents |= 0x00000002; if (nativecontents & 0x00000010) supercontents |= 0x00000004; if (nativecontents & 0x00000008) supercontents |= 0x00000008; if (nativecontents & 0x02000000) supercontents |= 0x00000020; if (nativecontents & 0x04000000) supercontents |= 0x00000040; if (nativecontents & 0x80000000) supercontents |= 0x00000080; if (nativecontents & 0x00010000) supercontents |= 0x00000100; if (nativecontents & 0x00020000) supercontents |= 0x00000200; if (nativecontents & 0x00200000) supercontents |= 0x00000400; if (nativecontents & 0x00400000) supercontents |= 0x00000800; if (!(nativecontents & 0x20000000)) supercontents |= 0x00001000; return supercontents; } static int Mod_Q3BSP_NativeContentsFromSuperContents(dp_model_t *model, int supercontents) { int nativecontents = 0; if (supercontents & 0x00000001) nativecontents |= 0x00000001; if (supercontents & 0x00000002) nativecontents |= 0x00000020; if (supercontents & 0x00000004) nativecontents |= 0x00000010; if (supercontents & 0x00000008) nativecontents |= 0x00000008; if (supercontents & 0x00000020) nativecontents |= 0x02000000; if (supercontents & 0x00000040) nativecontents |= 0x04000000; if (supercontents & 0x00000080) nativecontents |= 0x80000000; if (supercontents & 0x00000100) nativecontents |= 0x00010000; if (supercontents & 0x00000200) nativecontents |= 0x00020000; if (supercontents & 0x00000400) nativecontents |= 0x00200000; if (supercontents & 0x00000800) nativecontents |= 0x00400000; if (!(supercontents & 0x00001000)) nativecontents |= 0x20000000; return nativecontents; } static void Mod_Q3BSP_RecursiveFindNumLeafs(mnode_t *node) { int numleafs; while (node->plane) { Mod_Q3BSP_RecursiveFindNumLeafs(node->children[0]); node = node->children[1]; } numleafs = ((mleaf_t *)node - loadmodel->brush.data_leafs) + 1; if (loadmodel->brush.num_leafs < numleafs) loadmodel->brush.num_leafs = numleafs; } static void Mod_Q3BSP_Load(dp_model_t *mod, void *buffer, void *bufferend) { int i, j, lumps; q3dheader_t *header; float corner[3], yawradius, modelradius; mod->modeldatatypestring = "Q3BSP"; mod->type = mod_brushq3; mod->brush.ishlbsp = false; mod->brush.isbsp2rmqe = false; mod->brush.isbsp2 = false; mod->brush.isq2bsp = false; mod->brush.isq3bsp = true; mod->numframes = 2; mod->numskins = 1; header = (q3dheader_t *)buffer; if((char *) bufferend < (char *) buffer + sizeof(q3dheader_t)) Host_Error("Mod_Q3BSP_Load: %s is smaller than its header", mod->name); i = BuffLittleLong((unsigned char *)&(header->version)); if (i != 46 && i != 48 && i != 47) Host_Error("Mod_Q3BSP_Load: %s has wrong version number (%i, should be %i)", mod->name, i, 46); mod->soundfromcenter = true; mod->TraceBox = Mod_Q3BSP_TraceBox; mod->TraceBrush = Mod_Q3BSP_TraceBrush; mod->TraceLine = Mod_Q3BSP_TraceLine; mod->TracePoint = Mod_Q3BSP_TracePoint; mod->PointSuperContents = Mod_Q3BSP_PointSuperContents; mod->TraceLineAgainstSurfaces = Mod_CollisionBIH_TraceLine; mod->brush.TraceLineOfSight = Mod_Q3BSP_TraceLineOfSight; mod->brush.SuperContentsFromNativeContents = Mod_Q3BSP_SuperContentsFromNativeContents; mod->brush.NativeContentsFromSuperContents = Mod_Q3BSP_NativeContentsFromSuperContents; mod->brush.GetPVS = Mod_Q1BSP_GetPVS; mod->brush.FatPVS = Mod_Q1BSP_FatPVS; mod->brush.BoxTouchingPVS = Mod_Q1BSP_BoxTouchingPVS; mod->brush.BoxTouchingLeafPVS = Mod_Q1BSP_BoxTouchingLeafPVS; mod->brush.BoxTouchingVisibleLeafs = Mod_Q1BSP_BoxTouchingVisibleLeafs; mod->brush.FindBoxClusters = Mod_Q1BSP_FindBoxClusters; mod->brush.LightPoint = Mod_Q3BSP_LightPoint; mod->brush.FindNonSolidLocation = Mod_Q1BSP_FindNonSolidLocation; mod->brush.AmbientSoundLevelsForPoint = # 7728 "../../../model_brush.c" 3 4 ((void *)0) # 7728 "../../../model_brush.c" ; mod->brush.RoundUpToHullSize = # 7729 "../../../model_brush.c" 3 4 ((void *)0) # 7729 "../../../model_brush.c" ; mod->brush.PointInLeaf = Mod_Q1BSP_PointInLeaf; mod->Draw = R_Q1BSP_Draw; mod->DrawDepth = R_Q1BSP_DrawDepth; mod->DrawDebug = R_Q1BSP_DrawDebug; mod->DrawPrepass = R_Q1BSP_DrawPrepass; mod->GetLightInfo = R_Q1BSP_GetLightInfo; mod->CompileShadowMap = R_Q1BSP_CompileShadowMap; mod->DrawShadowMap = R_Q1BSP_DrawShadowMap; mod->CompileShadowVolume = R_Q1BSP_CompileShadowVolume; mod->DrawShadowVolume = R_Q1BSP_DrawShadowVolume; mod->DrawLight = R_Q1BSP_DrawLight; mod_base = (unsigned char *)header; header->ident = BuffLittleLong((unsigned char *)&(header->ident)); header->version = BuffLittleLong((unsigned char *)&(header->version)); lumps = (header->version == 47) ? 18 : 17; for (i = 0;i < lumps;i++) { j = (header->lumps[i].fileofs = BuffLittleLong((unsigned char *)&(header->lumps[i].fileofs))); if((char *) bufferend < (char *) buffer + j) Host_Error("Mod_Q3BSP_Load: %s has a lump that starts outside the file!", mod->name); j += (header->lumps[i].filelen = BuffLittleLong((unsigned char *)&(header->lumps[i].filelen))); if((char *) bufferend < (char *) buffer + j) Host_Error("Mod_Q3BSP_Load: %s has a lump that ends outside the file!", mod->name); } # 7770 "../../../model_brush.c" mod->brush.qw_md4sum = 0; mod->brush.qw_md4sum2 = 0; for (i = 0;i < lumps;i++) { if (i == 0) continue; mod->brush.qw_md4sum ^= Com_BlockChecksum(mod_base + header->lumps[i].fileofs, header->lumps[i].filelen); if (i == 16 || i == 4 || i == 3) continue; mod->brush.qw_md4sum2 ^= Com_BlockChecksum(mod_base + header->lumps[i].fileofs, header->lumps[i].filelen); CL_KeepaliveMessage(false); } Mod_Q3BSP_LoadEntities(&header->lumps[0]); Mod_Q3BSP_LoadTextures(&header->lumps[1]); Mod_Q3BSP_LoadPlanes(&header->lumps[2]); if (header->version == 48) Mod_Q3BSP_LoadBrushSides_IG(&header->lumps[9]); else Mod_Q3BSP_LoadBrushSides(&header->lumps[9]); Mod_Q3BSP_LoadBrushes(&header->lumps[8]); Mod_Q3BSP_LoadEffects(&header->lumps[12]); Mod_Q3BSP_LoadVertices(&header->lumps[10]); Mod_Q3BSP_LoadTriangles(&header->lumps[11]); Mod_Q3BSP_LoadLightmaps(&header->lumps[14], &header->lumps[13]); Mod_Q3BSP_LoadFaces(&header->lumps[13]); Mod_Q3BSP_LoadModels(&header->lumps[7]); Mod_Q3BSP_LoadLeafBrushes(&header->lumps[6]); Mod_Q3BSP_LoadLeafFaces(&header->lumps[5]); Mod_Q3BSP_LoadLeafs(&header->lumps[4]); Mod_Q3BSP_LoadNodes(&header->lumps[3]); Mod_Q3BSP_LoadLightGrid(&header->lumps[15]); Mod_Q3BSP_LoadPVS(&header->lumps[16]); loadmodel->brush.numsubmodels = loadmodel->brushq3.num_models; if (mod_bsp_portalize.integer) Mod_Q1BSP_MakePortals(); loadmodel->brush.supportwateralpha = true; Mod_Q1BSP_CreateShadowMesh(loadmodel); loadmodel->brush.num_leafs = 0; Mod_Q3BSP_RecursiveFindNumLeafs(loadmodel->brush.data_nodes); if (loadmodel->brush.numsubmodels) loadmodel->brush.submodels = (dp_model_t **)_Mem_Alloc(loadmodel->mempool, # 7821 "../../../model_brush.c" 3 4 ((void *)0) # 7821 "../../../model_brush.c" , loadmodel->brush.numsubmodels * sizeof(dp_model_t *), 16, "../../../model_brush.c", 7821); mod = loadmodel; for (i = 0;i < loadmodel->brush.numsubmodels;i++) { if (i > 0) { char name[10]; dpsnprintf(name, sizeof(name), "*%i", i); mod = Mod_FindName(name, loadmodel->name); *mod = *loadmodel; strlcpy(mod->name, name, sizeof(mod->name)); mod->brush.parentmodel = loadmodel; mod->texturepool = # 7838 "../../../model_brush.c" 3 4 ((void *)0) # 7838 "../../../model_brush.c" ; mod->mempool = # 7839 "../../../model_brush.c" 3 4 ((void *)0) # 7839 "../../../model_brush.c" ; mod->brush.GetPVS = # 7840 "../../../model_brush.c" 3 4 ((void *)0) # 7840 "../../../model_brush.c" ; mod->brush.FatPVS = # 7841 "../../../model_brush.c" 3 4 ((void *)0) # 7841 "../../../model_brush.c" ; mod->brush.BoxTouchingPVS = # 7842 "../../../model_brush.c" 3 4 ((void *)0) # 7842 "../../../model_brush.c" ; mod->brush.BoxTouchingLeafPVS = # 7843 "../../../model_brush.c" 3 4 ((void *)0) # 7843 "../../../model_brush.c" ; mod->brush.BoxTouchingVisibleLeafs = # 7844 "../../../model_brush.c" 3 4 ((void *)0) # 7844 "../../../model_brush.c" ; mod->brush.FindBoxClusters = # 7845 "../../../model_brush.c" 3 4 ((void *)0) # 7845 "../../../model_brush.c" ; mod->brush.LightPoint = # 7846 "../../../model_brush.c" 3 4 ((void *)0) # 7846 "../../../model_brush.c" ; mod->brush.AmbientSoundLevelsForPoint = # 7847 "../../../model_brush.c" 3 4 ((void *)0) # 7847 "../../../model_brush.c" ; } mod->brush.submodel = i; if (loadmodel->brush.submodels) loadmodel->brush.submodels[i] = mod; mod->firstmodelsurface = mod->brushq3.data_models[i].firstface; mod->nummodelsurfaces = mod->brushq3.data_models[i].numfaces; mod->firstmodelbrush = mod->brushq3.data_models[i].firstbrush; mod->nummodelbrushes = mod->brushq3.data_models[i].numbrushes; mod->sortedmodelsurfaces = (int *)_Mem_Alloc(loadmodel->mempool, # 7858 "../../../model_brush.c" 3 4 ((void *)0) # 7858 "../../../model_brush.c" , mod->nummodelsurfaces * sizeof(*mod->sortedmodelsurfaces), 16, "../../../model_brush.c", 7858); Mod_MakeSortedSurfaces(mod); ((mod->normalmins)[0]=(mod->brushq3.data_models[i].mins)[0],(mod->normalmins)[1]=(mod->brushq3.data_models[i].mins)[1],(mod->normalmins)[2]=(mod->brushq3.data_models[i].mins)[2]); ((mod->normalmaxs)[0]=(mod->brushq3.data_models[i].maxs)[0],(mod->normalmaxs)[1]=(mod->brushq3.data_models[i].maxs)[1],(mod->normalmaxs)[2]=(mod->brushq3.data_models[i].maxs)[2]); for (j = 0;j < mod->nummodelsurfaces;j++) { const msurface_t *surface = mod->data_surfaces + j + mod->firstmodelsurface; const float *v = mod->surfmesh.data_vertex3f + 3 * surface->num_firstvertex; int k; if (!surface->num_vertices) continue; for (k = 0;k < surface->num_vertices;k++, v += 3) { mod->normalmins[0] = ((mod->normalmins[0]) < (v[0]) ? (mod->normalmins[0]) : (v[0])); mod->normalmins[1] = ((mod->normalmins[1]) < (v[1]) ? (mod->normalmins[1]) : (v[1])); mod->normalmins[2] = ((mod->normalmins[2]) < (v[2]) ? (mod->normalmins[2]) : (v[2])); mod->normalmaxs[0] = ((mod->normalmaxs[0]) > (v[0]) ? (mod->normalmaxs[0]) : (v[0])); mod->normalmaxs[1] = ((mod->normalmaxs[1]) > (v[1]) ? (mod->normalmaxs[1]) : (v[1])); mod->normalmaxs[2] = ((mod->normalmaxs[2]) > (v[2]) ? (mod->normalmaxs[2]) : (v[2])); } } corner[0] = ((fabs(mod->normalmins[0])) > (fabs(mod->normalmaxs[0])) ? (fabs(mod->normalmins[0])) : (fabs(mod->normalmaxs[0]))); corner[1] = ((fabs(mod->normalmins[1])) > (fabs(mod->normalmaxs[1])) ? (fabs(mod->normalmins[1])) : (fabs(mod->normalmaxs[1]))); corner[2] = ((fabs(mod->normalmins[2])) > (fabs(mod->normalmaxs[2])) ? (fabs(mod->normalmins[2])) : (fabs(mod->normalmaxs[2]))); modelradius = sqrt(corner[0]*corner[0]+corner[1]*corner[1]+corner[2]*corner[2]); yawradius = sqrt(corner[0]*corner[0]+corner[1]*corner[1]); mod->rotatedmins[0] = mod->rotatedmins[1] = mod->rotatedmins[2] = -modelradius; mod->rotatedmaxs[0] = mod->rotatedmaxs[1] = mod->rotatedmaxs[2] = modelradius; mod->yawmaxs[0] = mod->yawmaxs[1] = yawradius; mod->yawmins[0] = mod->yawmins[1] = -yawradius; mod->yawmins[2] = mod->normalmins[2]; mod->yawmaxs[2] = mod->normalmaxs[2]; mod->radius = modelradius; mod->radius2 = modelradius * modelradius; mod->DrawSky = # 7902 "../../../model_brush.c" 3 4 ((void *)0) # 7902 "../../../model_brush.c" ; mod->DrawAddWaterPlanes = # 7903 "../../../model_brush.c" 3 4 ((void *)0) # 7903 "../../../model_brush.c" ; for (j = 0;j < mod->nummodelsurfaces;j++) if (mod->data_surfaces[j + mod->firstmodelsurface].texture->basematerialflags & 128) break; if (j < mod->nummodelsurfaces) mod->DrawSky = R_Q1BSP_DrawSky; for (j = 0;j < mod->nummodelsurfaces;j++) if (mod->data_surfaces[j + mod->firstmodelsurface].texture->basematerialflags & (262144 | 524288 | 1048576 | 67108864)) break; if (j < mod->nummodelsurfaces) mod->DrawAddWaterPlanes = R_Q1BSP_DrawAddWaterPlanes; Mod_MakeCollisionBIH(mod, false, &mod->collision_bih); Mod_MakeCollisionBIH(mod, true, &mod->render_bih); if (i == 0) Mod_BuildVBOs(); } if (mod_q3bsp_sRGBlightmaps.integer) { if (vid_sRGB.integer && vid_sRGB_fallback.integer && !vid.sRGB3D) { } else { # 7945 "../../../model_brush.c" loadmodel->lightmapscale *= 2.336f; } } Con_DPrintf("Stats for q3bsp model \"%s\": %i faces, %i nodes, %i leafs, %i clusters, %i clusterportals, mesh: %i vertices, %i triangles, %i surfaces\n", loadmodel->name, loadmodel->num_surfaces, loadmodel->brush.num_nodes, loadmodel->brush.num_leafs, mod->brush.num_pvsclusters, loadmodel->brush.num_portals, loadmodel->surfmesh.num_vertices, loadmodel->surfmesh.num_triangles, loadmodel->num_surfaces); } void Mod_IBSP_Load(dp_model_t *mod, void *buffer, void *bufferend) { int i = BuffLittleLong((unsigned char *)&(((int *)buffer)[1])); if (i == 46 || i == 48 || i == 47) Mod_Q3BSP_Load(mod,buffer, bufferend); else if (i == 38) Mod_Q2BSP_Load(mod,buffer, bufferend); else Host_Error("Mod_IBSP_Load: unknown/unsupported version %i", i); } void Mod_MAP_Load(dp_model_t *mod, void *buffer, void *bufferend) { Host_Error("Mod_MAP_Load: not yet implemented"); } typedef struct objvertex_s { int nextindex; int submodelindex; int textureindex; float v[3]; float vt[2]; float vn[3]; } objvertex_t; static unsigned char nobsp_pvs[1] = {1}; void Mod_OBJ_Load(dp_model_t *mod, void *buffer, void *bufferend) { const char *textbase = (char *)buffer, *text = textbase; char *s; char *argv[512]; char line[1024]; char materialname[128]; int i, j, l, numvertices, firstvertex, firsttriangle, elementindex, vertexindex, surfacevertices, surfacetriangles, surfaceelements, submodelindex = 0; int index1, index2, index3; objvertex_t vfirst, vprev, vcurrent; int argc; int linelen; int numtriangles = 0; int maxtriangles = 0; objvertex_t *vertices = # 7995 "../../../model_brush.c" 3 4 ((void *)0) # 7995 "../../../model_brush.c" ; int linenumber = 0; int maxtextures = 0, numtextures = 0, textureindex = 0; int maxv = 0, numv = 1; int maxvt = 0, numvt = 1; int maxvn = 0, numvn = 1; char *texturenames = # 8001 "../../../model_brush.c" 3 4 ((void *)0) # 8001 "../../../model_brush.c" ; float dist, modelradius, modelyawradius, yawradius; float *v = # 8003 "../../../model_brush.c" 3 4 ((void *)0) # 8003 "../../../model_brush.c" ; float *vt = # 8004 "../../../model_brush.c" 3 4 ((void *)0) # 8004 "../../../model_brush.c" ; float *vn = # 8005 "../../../model_brush.c" 3 4 ((void *)0) # 8005 "../../../model_brush.c" ; float mins[3]; float maxs[3]; float corner[3]; objvertex_t *thisvertex = # 8009 "../../../model_brush.c" 3 4 ((void *)0) # 8009 "../../../model_brush.c" ; int vertexhashindex; int *vertexhashtable = # 8011 "../../../model_brush.c" 3 4 ((void *)0) # 8011 "../../../model_brush.c" ; objvertex_t *vertexhashdata = # 8012 "../../../model_brush.c" 3 4 ((void *)0) # 8012 "../../../model_brush.c" ; objvertex_t *vdata = # 8013 "../../../model_brush.c" 3 4 ((void *)0) # 8013 "../../../model_brush.c" ; int vertexhashsize = 0; int vertexhashcount = 0; skinfile_t *skinfiles = # 8016 "../../../model_brush.c" 3 4 ((void *)0) # 8016 "../../../model_brush.c" ; unsigned char *data = # 8017 "../../../model_brush.c" 3 4 ((void *)0) # 8017 "../../../model_brush.c" ; int *submodelfirstsurface; msurface_t *surface; msurface_t *tempsurfaces; memset(&vfirst, 0, sizeof(vfirst)); memset(&vprev, 0, sizeof(vprev)); memset(&vcurrent, 0, sizeof(vcurrent)); dpsnprintf(materialname, sizeof(materialname), "%s", loadmodel->name); loadmodel->modeldatatypestring = "OBJ"; loadmodel->type = mod_obj; loadmodel->soundfromcenter = true; loadmodel->TraceBox = Mod_CollisionBIH_TraceBox; loadmodel->TraceBrush = Mod_CollisionBIH_TraceBrush; loadmodel->TraceLine = Mod_CollisionBIH_TraceLine; loadmodel->TracePoint = Mod_CollisionBIH_TracePoint_Mesh; loadmodel->TraceLineAgainstSurfaces = Mod_CollisionBIH_TraceLine; loadmodel->PointSuperContents = Mod_CollisionBIH_PointSuperContents_Mesh; loadmodel->brush.TraceLineOfSight = # 8038 "../../../model_brush.c" 3 4 ((void *)0) # 8038 "../../../model_brush.c" ; loadmodel->brush.SuperContentsFromNativeContents = # 8039 "../../../model_brush.c" 3 4 ((void *)0) # 8039 "../../../model_brush.c" ; loadmodel->brush.NativeContentsFromSuperContents = # 8040 "../../../model_brush.c" 3 4 ((void *)0) # 8040 "../../../model_brush.c" ; loadmodel->brush.GetPVS = # 8041 "../../../model_brush.c" 3 4 ((void *)0) # 8041 "../../../model_brush.c" ; loadmodel->brush.FatPVS = # 8042 "../../../model_brush.c" 3 4 ((void *)0) # 8042 "../../../model_brush.c" ; loadmodel->brush.BoxTouchingPVS = # 8043 "../../../model_brush.c" 3 4 ((void *)0) # 8043 "../../../model_brush.c" ; loadmodel->brush.BoxTouchingLeafPVS = # 8044 "../../../model_brush.c" 3 4 ((void *)0) # 8044 "../../../model_brush.c" ; loadmodel->brush.BoxTouchingVisibleLeafs = # 8045 "../../../model_brush.c" 3 4 ((void *)0) # 8045 "../../../model_brush.c" ; loadmodel->brush.FindBoxClusters = # 8046 "../../../model_brush.c" 3 4 ((void *)0) # 8046 "../../../model_brush.c" ; loadmodel->brush.LightPoint = # 8047 "../../../model_brush.c" 3 4 ((void *)0) # 8047 "../../../model_brush.c" ; loadmodel->brush.FindNonSolidLocation = # 8048 "../../../model_brush.c" 3 4 ((void *)0) # 8048 "../../../model_brush.c" ; loadmodel->brush.AmbientSoundLevelsForPoint = # 8049 "../../../model_brush.c" 3 4 ((void *)0) # 8049 "../../../model_brush.c" ; loadmodel->brush.RoundUpToHullSize = # 8050 "../../../model_brush.c" 3 4 ((void *)0) # 8050 "../../../model_brush.c" ; loadmodel->brush.PointInLeaf = # 8051 "../../../model_brush.c" 3 4 ((void *)0) # 8051 "../../../model_brush.c" ; loadmodel->Draw = R_Q1BSP_Draw; loadmodel->DrawDepth = R_Q1BSP_DrawDepth; loadmodel->DrawDebug = R_Q1BSP_DrawDebug; loadmodel->DrawPrepass = R_Q1BSP_DrawPrepass; loadmodel->GetLightInfo = R_Q1BSP_GetLightInfo; loadmodel->CompileShadowMap = R_Q1BSP_CompileShadowMap; loadmodel->DrawShadowMap = R_Q1BSP_DrawShadowMap; loadmodel->CompileShadowVolume = R_Q1BSP_CompileShadowVolume; loadmodel->DrawShadowVolume = R_Q1BSP_DrawShadowVolume; loadmodel->DrawLight = R_Q1BSP_DrawLight; skinfiles = Mod_LoadSkinFiles(); if (loadmodel->numskins < 1) loadmodel->numskins = 1; loadmodel->skinscenes = (animscene_t *)_Mem_Alloc(loadmodel->mempool, # 8068 "../../../model_brush.c" 3 4 ((void *)0) # 8068 "../../../model_brush.c" , sizeof(animscene_t) * loadmodel->numskins, 16, "../../../model_brush.c", 8068); for (i = 0;i < loadmodel->numskins;i++) { loadmodel->skinscenes[i].firstframe = i; loadmodel->skinscenes[i].framecount = 1; loadmodel->skinscenes[i].loop = true; loadmodel->skinscenes[i].framerate = 10; } ((mins)[0]=(mins)[1]=(mins)[2]=0); ((maxs)[0]=(maxs)[1]=(maxs)[2]=0); loadmodel->brush.numsubmodels = 1; for(;;) { static char emptyarg[1] = ""; if (!*text) break; linenumber++; linelen = 0; for (linelen = 0;text[linelen] && text[linelen] != '\r' && text[linelen] != '\n';linelen++) line[linelen] = text[linelen]; line[linelen] = 0; for (argc = 0;argc < 4;argc++) argv[argc] = emptyarg; argc = 0; s = line; while (*s == ' ' || *s == '\t') s++; while (*s) { argv[argc++] = s; while (*s > ' ') s++; if (!*s) break; *s++ = 0; while (*s == ' ' || *s == '\t') s++; } text += linelen; if (*text == '\r') text++; if (*text == '\n') text++; if (!argc) continue; if (argv[0][0] == '#') continue; if (! # 8120 "../../../model_brush.c" 3 4 __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( # 8120 "../../../model_brush.c" argv[0] # 8120 "../../../model_brush.c" 3 4 ) && __builtin_constant_p ( # 8120 "../../../model_brush.c" "v" # 8120 "../../../model_brush.c" 3 4 ) && (__s1_len = __builtin_strlen ( # 8120 "../../../model_brush.c" argv[0] # 8120 "../../../model_brush.c" 3 4 ), __s2_len = __builtin_strlen ( # 8120 "../../../model_brush.c" "v" # 8120 "../../../model_brush.c" 3 4 ), (!((size_t)(const void *)(( # 8120 "../../../model_brush.c" argv[0] # 8120 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 8120 "../../../model_brush.c" argv[0] # 8120 "../../../model_brush.c" 3 4 ) == 1) || __s1_len >= 4) && (!((size_t)(const void *)(( # 8120 "../../../model_brush.c" "v" # 8120 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 8120 "../../../model_brush.c" "v" # 8120 "../../../model_brush.c" 3 4 ) == 1) || __s2_len >= 4)) ? __builtin_strcmp ( # 8120 "../../../model_brush.c" argv[0] # 8120 "../../../model_brush.c" 3 4 , # 8120 "../../../model_brush.c" "v" # 8120 "../../../model_brush.c" 3 4 ) : (__builtin_constant_p ( # 8120 "../../../model_brush.c" argv[0] # 8120 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 8120 "../../../model_brush.c" argv[0] # 8120 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 8120 "../../../model_brush.c" argv[0] # 8120 "../../../model_brush.c" 3 4 ) == 1) && (__s1_len = __builtin_strlen ( # 8120 "../../../model_brush.c" argv[0] # 8120 "../../../model_brush.c" 3 4 ), __s1_len < 4) ? (__builtin_constant_p ( # 8120 "../../../model_brush.c" "v" # 8120 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 8120 "../../../model_brush.c" "v" # 8120 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 8120 "../../../model_brush.c" "v" # 8120 "../../../model_brush.c" 3 4 ) == 1) ? __builtin_strcmp ( # 8120 "../../../model_brush.c" argv[0] # 8120 "../../../model_brush.c" 3 4 , # 8120 "../../../model_brush.c" "v" # 8120 "../../../model_brush.c" 3 4 ) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ( # 8120 "../../../model_brush.c" "v" # 8120 "../../../model_brush.c" 3 4 ); int __result = (((const unsigned char *) (const char *) ( # 8120 "../../../model_brush.c" argv[0] # 8120 "../../../model_brush.c" 3 4 ))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 8120 "../../../model_brush.c" argv[0] # 8120 "../../../model_brush.c" 3 4 ))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 8120 "../../../model_brush.c" argv[0] # 8120 "../../../model_brush.c" 3 4 ))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( # 8120 "../../../model_brush.c" argv[0] # 8120 "../../../model_brush.c" 3 4 ))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ( # 8120 "../../../model_brush.c" "v" # 8120 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 8120 "../../../model_brush.c" "v" # 8120 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 8120 "../../../model_brush.c" "v" # 8120 "../../../model_brush.c" 3 4 ) == 1) && (__s2_len = __builtin_strlen ( # 8120 "../../../model_brush.c" "v" # 8120 "../../../model_brush.c" 3 4 ), __s2_len < 4) ? (__builtin_constant_p ( # 8120 "../../../model_brush.c" argv[0] # 8120 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 8120 "../../../model_brush.c" argv[0] # 8120 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 8120 "../../../model_brush.c" argv[0] # 8120 "../../../model_brush.c" 3 4 ) == 1) ? __builtin_strcmp ( # 8120 "../../../model_brush.c" argv[0] # 8120 "../../../model_brush.c" 3 4 , # 8120 "../../../model_brush.c" "v" # 8120 "../../../model_brush.c" 3 4 ) : (- (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ( # 8120 "../../../model_brush.c" argv[0] # 8120 "../../../model_brush.c" 3 4 ); int __result = (((const unsigned char *) (const char *) ( # 8120 "../../../model_brush.c" "v" # 8120 "../../../model_brush.c" 3 4 ))[0] - __s2[0]); if (__s2_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 8120 "../../../model_brush.c" "v" # 8120 "../../../model_brush.c" 3 4 ))[1] - __s2[1]); if (__s2_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 8120 "../../../model_brush.c" "v" # 8120 "../../../model_brush.c" 3 4 ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( # 8120 "../../../model_brush.c" "v" # 8120 "../../../model_brush.c" 3 4 ))[3] - __s2[3]); } } __result; })))) : __builtin_strcmp ( # 8120 "../../../model_brush.c" argv[0] # 8120 "../../../model_brush.c" 3 4 , # 8120 "../../../model_brush.c" "v" # 8120 "../../../model_brush.c" 3 4 )))); }) # 8120 "../../../model_brush.c" ) { if (maxv <= numv) { maxv = ((maxv * 2) > (1024) ? (maxv * 2) : (1024)); v = (float *)_Mem_Alloc(tempmempool, v, maxv * sizeof(float[3]), 16, "../../../model_brush.c", 8125); } if(mod_obj_orientation.integer) { v[numv*3+0] = atof(argv[1]); v[numv*3+2] = atof(argv[2]); v[numv*3+1] = atof(argv[3]); } else { v[numv*3+0] = atof(argv[1]); v[numv*3+1] = atof(argv[2]); v[numv*3+2] = atof(argv[3]); } numv++; } else if (! # 8141 "../../../model_brush.c" 3 4 __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( # 8141 "../../../model_brush.c" argv[0] # 8141 "../../../model_brush.c" 3 4 ) && __builtin_constant_p ( # 8141 "../../../model_brush.c" "vt" # 8141 "../../../model_brush.c" 3 4 ) && (__s1_len = __builtin_strlen ( # 8141 "../../../model_brush.c" argv[0] # 8141 "../../../model_brush.c" 3 4 ), __s2_len = __builtin_strlen ( # 8141 "../../../model_brush.c" "vt" # 8141 "../../../model_brush.c" 3 4 ), (!((size_t)(const void *)(( # 8141 "../../../model_brush.c" argv[0] # 8141 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 8141 "../../../model_brush.c" argv[0] # 8141 "../../../model_brush.c" 3 4 ) == 1) || __s1_len >= 4) && (!((size_t)(const void *)(( # 8141 "../../../model_brush.c" "vt" # 8141 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 8141 "../../../model_brush.c" "vt" # 8141 "../../../model_brush.c" 3 4 ) == 1) || __s2_len >= 4)) ? __builtin_strcmp ( # 8141 "../../../model_brush.c" argv[0] # 8141 "../../../model_brush.c" 3 4 , # 8141 "../../../model_brush.c" "vt" # 8141 "../../../model_brush.c" 3 4 ) : (__builtin_constant_p ( # 8141 "../../../model_brush.c" argv[0] # 8141 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 8141 "../../../model_brush.c" argv[0] # 8141 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 8141 "../../../model_brush.c" argv[0] # 8141 "../../../model_brush.c" 3 4 ) == 1) && (__s1_len = __builtin_strlen ( # 8141 "../../../model_brush.c" argv[0] # 8141 "../../../model_brush.c" 3 4 ), __s1_len < 4) ? (__builtin_constant_p ( # 8141 "../../../model_brush.c" "vt" # 8141 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 8141 "../../../model_brush.c" "vt" # 8141 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 8141 "../../../model_brush.c" "vt" # 8141 "../../../model_brush.c" 3 4 ) == 1) ? __builtin_strcmp ( # 8141 "../../../model_brush.c" argv[0] # 8141 "../../../model_brush.c" 3 4 , # 8141 "../../../model_brush.c" "vt" # 8141 "../../../model_brush.c" 3 4 ) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ( # 8141 "../../../model_brush.c" "vt" # 8141 "../../../model_brush.c" 3 4 ); int __result = (((const unsigned char *) (const char *) ( # 8141 "../../../model_brush.c" argv[0] # 8141 "../../../model_brush.c" 3 4 ))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 8141 "../../../model_brush.c" argv[0] # 8141 "../../../model_brush.c" 3 4 ))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 8141 "../../../model_brush.c" argv[0] # 8141 "../../../model_brush.c" 3 4 ))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( # 8141 "../../../model_brush.c" argv[0] # 8141 "../../../model_brush.c" 3 4 ))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ( # 8141 "../../../model_brush.c" "vt" # 8141 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 8141 "../../../model_brush.c" "vt" # 8141 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 8141 "../../../model_brush.c" "vt" # 8141 "../../../model_brush.c" 3 4 ) == 1) && (__s2_len = __builtin_strlen ( # 8141 "../../../model_brush.c" "vt" # 8141 "../../../model_brush.c" 3 4 ), __s2_len < 4) ? (__builtin_constant_p ( # 8141 "../../../model_brush.c" argv[0] # 8141 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 8141 "../../../model_brush.c" argv[0] # 8141 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 8141 "../../../model_brush.c" argv[0] # 8141 "../../../model_brush.c" 3 4 ) == 1) ? __builtin_strcmp ( # 8141 "../../../model_brush.c" argv[0] # 8141 "../../../model_brush.c" 3 4 , # 8141 "../../../model_brush.c" "vt" # 8141 "../../../model_brush.c" 3 4 ) : (- (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ( # 8141 "../../../model_brush.c" argv[0] # 8141 "../../../model_brush.c" 3 4 ); int __result = (((const unsigned char *) (const char *) ( # 8141 "../../../model_brush.c" "vt" # 8141 "../../../model_brush.c" 3 4 ))[0] - __s2[0]); if (__s2_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 8141 "../../../model_brush.c" "vt" # 8141 "../../../model_brush.c" 3 4 ))[1] - __s2[1]); if (__s2_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 8141 "../../../model_brush.c" "vt" # 8141 "../../../model_brush.c" 3 4 ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( # 8141 "../../../model_brush.c" "vt" # 8141 "../../../model_brush.c" 3 4 ))[3] - __s2[3]); } } __result; })))) : __builtin_strcmp ( # 8141 "../../../model_brush.c" argv[0] # 8141 "../../../model_brush.c" 3 4 , # 8141 "../../../model_brush.c" "vt" # 8141 "../../../model_brush.c" 3 4 )))); }) # 8141 "../../../model_brush.c" ) { if (maxvt <= numvt) { maxvt = ((maxvt * 2) > (1024) ? (maxvt * 2) : (1024)); vt = (float *)_Mem_Alloc(tempmempool, vt, maxvt * sizeof(float[2]), 16, "../../../model_brush.c", 8146); } vt[numvt*2+0] = atof(argv[1]); vt[numvt*2+1] = 1-atof(argv[2]); numvt++; } else if (! # 8152 "../../../model_brush.c" 3 4 __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( # 8152 "../../../model_brush.c" argv[0] # 8152 "../../../model_brush.c" 3 4 ) && __builtin_constant_p ( # 8152 "../../../model_brush.c" "vn" # 8152 "../../../model_brush.c" 3 4 ) && (__s1_len = __builtin_strlen ( # 8152 "../../../model_brush.c" argv[0] # 8152 "../../../model_brush.c" 3 4 ), __s2_len = __builtin_strlen ( # 8152 "../../../model_brush.c" "vn" # 8152 "../../../model_brush.c" 3 4 ), (!((size_t)(const void *)(( # 8152 "../../../model_brush.c" argv[0] # 8152 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 8152 "../../../model_brush.c" argv[0] # 8152 "../../../model_brush.c" 3 4 ) == 1) || __s1_len >= 4) && (!((size_t)(const void *)(( # 8152 "../../../model_brush.c" "vn" # 8152 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 8152 "../../../model_brush.c" "vn" # 8152 "../../../model_brush.c" 3 4 ) == 1) || __s2_len >= 4)) ? __builtin_strcmp ( # 8152 "../../../model_brush.c" argv[0] # 8152 "../../../model_brush.c" 3 4 , # 8152 "../../../model_brush.c" "vn" # 8152 "../../../model_brush.c" 3 4 ) : (__builtin_constant_p ( # 8152 "../../../model_brush.c" argv[0] # 8152 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 8152 "../../../model_brush.c" argv[0] # 8152 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 8152 "../../../model_brush.c" argv[0] # 8152 "../../../model_brush.c" 3 4 ) == 1) && (__s1_len = __builtin_strlen ( # 8152 "../../../model_brush.c" argv[0] # 8152 "../../../model_brush.c" 3 4 ), __s1_len < 4) ? (__builtin_constant_p ( # 8152 "../../../model_brush.c" "vn" # 8152 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 8152 "../../../model_brush.c" "vn" # 8152 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 8152 "../../../model_brush.c" "vn" # 8152 "../../../model_brush.c" 3 4 ) == 1) ? __builtin_strcmp ( # 8152 "../../../model_brush.c" argv[0] # 8152 "../../../model_brush.c" 3 4 , # 8152 "../../../model_brush.c" "vn" # 8152 "../../../model_brush.c" 3 4 ) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ( # 8152 "../../../model_brush.c" "vn" # 8152 "../../../model_brush.c" 3 4 ); int __result = (((const unsigned char *) (const char *) ( # 8152 "../../../model_brush.c" argv[0] # 8152 "../../../model_brush.c" 3 4 ))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 8152 "../../../model_brush.c" argv[0] # 8152 "../../../model_brush.c" 3 4 ))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 8152 "../../../model_brush.c" argv[0] # 8152 "../../../model_brush.c" 3 4 ))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( # 8152 "../../../model_brush.c" argv[0] # 8152 "../../../model_brush.c" 3 4 ))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ( # 8152 "../../../model_brush.c" "vn" # 8152 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 8152 "../../../model_brush.c" "vn" # 8152 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 8152 "../../../model_brush.c" "vn" # 8152 "../../../model_brush.c" 3 4 ) == 1) && (__s2_len = __builtin_strlen ( # 8152 "../../../model_brush.c" "vn" # 8152 "../../../model_brush.c" 3 4 ), __s2_len < 4) ? (__builtin_constant_p ( # 8152 "../../../model_brush.c" argv[0] # 8152 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 8152 "../../../model_brush.c" argv[0] # 8152 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 8152 "../../../model_brush.c" argv[0] # 8152 "../../../model_brush.c" 3 4 ) == 1) ? __builtin_strcmp ( # 8152 "../../../model_brush.c" argv[0] # 8152 "../../../model_brush.c" 3 4 , # 8152 "../../../model_brush.c" "vn" # 8152 "../../../model_brush.c" 3 4 ) : (- (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ( # 8152 "../../../model_brush.c" argv[0] # 8152 "../../../model_brush.c" 3 4 ); int __result = (((const unsigned char *) (const char *) ( # 8152 "../../../model_brush.c" "vn" # 8152 "../../../model_brush.c" 3 4 ))[0] - __s2[0]); if (__s2_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 8152 "../../../model_brush.c" "vn" # 8152 "../../../model_brush.c" 3 4 ))[1] - __s2[1]); if (__s2_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 8152 "../../../model_brush.c" "vn" # 8152 "../../../model_brush.c" 3 4 ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( # 8152 "../../../model_brush.c" "vn" # 8152 "../../../model_brush.c" 3 4 ))[3] - __s2[3]); } } __result; })))) : __builtin_strcmp ( # 8152 "../../../model_brush.c" argv[0] # 8152 "../../../model_brush.c" 3 4 , # 8152 "../../../model_brush.c" "vn" # 8152 "../../../model_brush.c" 3 4 )))); }) # 8152 "../../../model_brush.c" ) { if (maxvn <= numvn) { maxvn = ((maxvn * 2) > (1024) ? (maxvn * 2) : (1024)); vn = (float *)_Mem_Alloc(tempmempool, vn, maxvn * sizeof(float[3]), 16, "../../../model_brush.c", 8157); } if(mod_obj_orientation.integer) { vn[numvn*3+0] = atof(argv[1]); vn[numvn*3+2] = atof(argv[2]); vn[numvn*3+1] = atof(argv[3]); } else { vn[numvn*3+0] = atof(argv[1]); vn[numvn*3+1] = atof(argv[2]); vn[numvn*3+2] = atof(argv[3]); } numvn++; } else if (! # 8173 "../../../model_brush.c" 3 4 __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( # 8173 "../../../model_brush.c" argv[0] # 8173 "../../../model_brush.c" 3 4 ) && __builtin_constant_p ( # 8173 "../../../model_brush.c" "f" # 8173 "../../../model_brush.c" 3 4 ) && (__s1_len = __builtin_strlen ( # 8173 "../../../model_brush.c" argv[0] # 8173 "../../../model_brush.c" 3 4 ), __s2_len = __builtin_strlen ( # 8173 "../../../model_brush.c" "f" # 8173 "../../../model_brush.c" 3 4 ), (!((size_t)(const void *)(( # 8173 "../../../model_brush.c" argv[0] # 8173 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 8173 "../../../model_brush.c" argv[0] # 8173 "../../../model_brush.c" 3 4 ) == 1) || __s1_len >= 4) && (!((size_t)(const void *)(( # 8173 "../../../model_brush.c" "f" # 8173 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 8173 "../../../model_brush.c" "f" # 8173 "../../../model_brush.c" 3 4 ) == 1) || __s2_len >= 4)) ? __builtin_strcmp ( # 8173 "../../../model_brush.c" argv[0] # 8173 "../../../model_brush.c" 3 4 , # 8173 "../../../model_brush.c" "f" # 8173 "../../../model_brush.c" 3 4 ) : (__builtin_constant_p ( # 8173 "../../../model_brush.c" argv[0] # 8173 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 8173 "../../../model_brush.c" argv[0] # 8173 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 8173 "../../../model_brush.c" argv[0] # 8173 "../../../model_brush.c" 3 4 ) == 1) && (__s1_len = __builtin_strlen ( # 8173 "../../../model_brush.c" argv[0] # 8173 "../../../model_brush.c" 3 4 ), __s1_len < 4) ? (__builtin_constant_p ( # 8173 "../../../model_brush.c" "f" # 8173 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 8173 "../../../model_brush.c" "f" # 8173 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 8173 "../../../model_brush.c" "f" # 8173 "../../../model_brush.c" 3 4 ) == 1) ? __builtin_strcmp ( # 8173 "../../../model_brush.c" argv[0] # 8173 "../../../model_brush.c" 3 4 , # 8173 "../../../model_brush.c" "f" # 8173 "../../../model_brush.c" 3 4 ) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ( # 8173 "../../../model_brush.c" "f" # 8173 "../../../model_brush.c" 3 4 ); int __result = (((const unsigned char *) (const char *) ( # 8173 "../../../model_brush.c" argv[0] # 8173 "../../../model_brush.c" 3 4 ))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 8173 "../../../model_brush.c" argv[0] # 8173 "../../../model_brush.c" 3 4 ))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 8173 "../../../model_brush.c" argv[0] # 8173 "../../../model_brush.c" 3 4 ))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( # 8173 "../../../model_brush.c" argv[0] # 8173 "../../../model_brush.c" 3 4 ))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ( # 8173 "../../../model_brush.c" "f" # 8173 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 8173 "../../../model_brush.c" "f" # 8173 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 8173 "../../../model_brush.c" "f" # 8173 "../../../model_brush.c" 3 4 ) == 1) && (__s2_len = __builtin_strlen ( # 8173 "../../../model_brush.c" "f" # 8173 "../../../model_brush.c" 3 4 ), __s2_len < 4) ? (__builtin_constant_p ( # 8173 "../../../model_brush.c" argv[0] # 8173 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 8173 "../../../model_brush.c" argv[0] # 8173 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 8173 "../../../model_brush.c" argv[0] # 8173 "../../../model_brush.c" 3 4 ) == 1) ? __builtin_strcmp ( # 8173 "../../../model_brush.c" argv[0] # 8173 "../../../model_brush.c" 3 4 , # 8173 "../../../model_brush.c" "f" # 8173 "../../../model_brush.c" 3 4 ) : (- (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ( # 8173 "../../../model_brush.c" argv[0] # 8173 "../../../model_brush.c" 3 4 ); int __result = (((const unsigned char *) (const char *) ( # 8173 "../../../model_brush.c" "f" # 8173 "../../../model_brush.c" 3 4 ))[0] - __s2[0]); if (__s2_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 8173 "../../../model_brush.c" "f" # 8173 "../../../model_brush.c" 3 4 ))[1] - __s2[1]); if (__s2_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 8173 "../../../model_brush.c" "f" # 8173 "../../../model_brush.c" 3 4 ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( # 8173 "../../../model_brush.c" "f" # 8173 "../../../model_brush.c" 3 4 ))[3] - __s2[3]); } } __result; })))) : __builtin_strcmp ( # 8173 "../../../model_brush.c" argv[0] # 8173 "../../../model_brush.c" 3 4 , # 8173 "../../../model_brush.c" "f" # 8173 "../../../model_brush.c" 3 4 )))); }) # 8173 "../../../model_brush.c" ) { if (!numtextures) { if (maxtextures <= numtextures) { maxtextures = ((maxtextures * 2) > (256) ? (maxtextures * 2) : (256)); texturenames = (char *)_Mem_Alloc(loadmodel->mempool, texturenames, maxtextures * 128, 16, "../../../model_brush.c", 8180); } textureindex = numtextures++; strlcpy(texturenames + textureindex*128, loadmodel->name, 128); } for (j = 1;j < argc;j++) { index1 = atoi(argv[j]); while(argv[j][0] && argv[j][0] != '/') argv[j]++; if (argv[j][0]) argv[j]++; index2 = atoi(argv[j]); while(argv[j][0] && argv[j][0] != '/') argv[j]++; if (argv[j][0]) argv[j]++; index3 = atoi(argv[j]); if (index1 < 0) index1 = numv - index1; if (index2 < 0) index2 = numvt - index2; if (index3 < 0) index3 = numvn - index3; vcurrent.nextindex = -1; vcurrent.textureindex = textureindex; vcurrent.submodelindex = submodelindex; if (v && index1 >= 0 && index1 < numv) ((vcurrent.v)[0]=(v + 3*index1)[0],(vcurrent.v)[1]=(v + 3*index1)[1],(vcurrent.v)[2]=(v + 3*index1)[2]); if (vt && index2 >= 0 && index2 < numvt) ((vcurrent.vt)[0]=(vt + 2*index2)[0],(vcurrent.vt)[1]=(vt + 2*index2)[1]); if (vn && index3 >= 0 && index3 < numvn) ((vcurrent.vn)[0]=(vn + 3*index3)[0],(vcurrent.vn)[1]=(vn + 3*index3)[1],(vcurrent.vn)[2]=(vn + 3*index3)[2]); if (numtriangles == 0) { ((mins)[0]=(vcurrent.v)[0],(mins)[1]=(vcurrent.v)[1],(mins)[2]=(vcurrent.v)[2]); ((maxs)[0]=(vcurrent.v)[0],(maxs)[1]=(vcurrent.v)[1],(maxs)[2]=(vcurrent.v)[2]); } else { mins[0] = ((mins[0]) < (vcurrent.v[0]) ? (mins[0]) : (vcurrent.v[0])); mins[1] = ((mins[1]) < (vcurrent.v[1]) ? (mins[1]) : (vcurrent.v[1])); mins[2] = ((mins[2]) < (vcurrent.v[2]) ? (mins[2]) : (vcurrent.v[2])); maxs[0] = ((maxs[0]) > (vcurrent.v[0]) ? (maxs[0]) : (vcurrent.v[0])); maxs[1] = ((maxs[1]) > (vcurrent.v[1]) ? (maxs[1]) : (vcurrent.v[1])); maxs[2] = ((maxs[2]) > (vcurrent.v[2]) ? (maxs[2]) : (vcurrent.v[2])); } if (j == 1) vfirst = vcurrent; else if (j >= 3) { if (maxtriangles <= numtriangles) { maxtriangles = ((maxtriangles * 2) > (32768) ? (maxtriangles * 2) : (32768)); vertices = (objvertex_t*)_Mem_Alloc(loadmodel->mempool, vertices, maxtriangles * sizeof(objvertex_t[3]), 16, "../../../model_brush.c", 8237); } if(mod_obj_orientation.integer) { vertices[numtriangles*3+0] = vfirst; vertices[numtriangles*3+1] = vprev; vertices[numtriangles*3+2] = vcurrent; } else { vertices[numtriangles*3+0] = vfirst; vertices[numtriangles*3+2] = vprev; vertices[numtriangles*3+1] = vcurrent; } numtriangles++; } vprev = vcurrent; } } else if (! # 8256 "../../../model_brush.c" 3 4 __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( # 8256 "../../../model_brush.c" argv[0] # 8256 "../../../model_brush.c" 3 4 ) && __builtin_constant_p ( # 8256 "../../../model_brush.c" "o" # 8256 "../../../model_brush.c" 3 4 ) && (__s1_len = __builtin_strlen ( # 8256 "../../../model_brush.c" argv[0] # 8256 "../../../model_brush.c" 3 4 ), __s2_len = __builtin_strlen ( # 8256 "../../../model_brush.c" "o" # 8256 "../../../model_brush.c" 3 4 ), (!((size_t)(const void *)(( # 8256 "../../../model_brush.c" argv[0] # 8256 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 8256 "../../../model_brush.c" argv[0] # 8256 "../../../model_brush.c" 3 4 ) == 1) || __s1_len >= 4) && (!((size_t)(const void *)(( # 8256 "../../../model_brush.c" "o" # 8256 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 8256 "../../../model_brush.c" "o" # 8256 "../../../model_brush.c" 3 4 ) == 1) || __s2_len >= 4)) ? __builtin_strcmp ( # 8256 "../../../model_brush.c" argv[0] # 8256 "../../../model_brush.c" 3 4 , # 8256 "../../../model_brush.c" "o" # 8256 "../../../model_brush.c" 3 4 ) : (__builtin_constant_p ( # 8256 "../../../model_brush.c" argv[0] # 8256 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 8256 "../../../model_brush.c" argv[0] # 8256 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 8256 "../../../model_brush.c" argv[0] # 8256 "../../../model_brush.c" 3 4 ) == 1) && (__s1_len = __builtin_strlen ( # 8256 "../../../model_brush.c" argv[0] # 8256 "../../../model_brush.c" 3 4 ), __s1_len < 4) ? (__builtin_constant_p ( # 8256 "../../../model_brush.c" "o" # 8256 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 8256 "../../../model_brush.c" "o" # 8256 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 8256 "../../../model_brush.c" "o" # 8256 "../../../model_brush.c" 3 4 ) == 1) ? __builtin_strcmp ( # 8256 "../../../model_brush.c" argv[0] # 8256 "../../../model_brush.c" 3 4 , # 8256 "../../../model_brush.c" "o" # 8256 "../../../model_brush.c" 3 4 ) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ( # 8256 "../../../model_brush.c" "o" # 8256 "../../../model_brush.c" 3 4 ); int __result = (((const unsigned char *) (const char *) ( # 8256 "../../../model_brush.c" argv[0] # 8256 "../../../model_brush.c" 3 4 ))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 8256 "../../../model_brush.c" argv[0] # 8256 "../../../model_brush.c" 3 4 ))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 8256 "../../../model_brush.c" argv[0] # 8256 "../../../model_brush.c" 3 4 ))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( # 8256 "../../../model_brush.c" argv[0] # 8256 "../../../model_brush.c" 3 4 ))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ( # 8256 "../../../model_brush.c" "o" # 8256 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 8256 "../../../model_brush.c" "o" # 8256 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 8256 "../../../model_brush.c" "o" # 8256 "../../../model_brush.c" 3 4 ) == 1) && (__s2_len = __builtin_strlen ( # 8256 "../../../model_brush.c" "o" # 8256 "../../../model_brush.c" 3 4 ), __s2_len < 4) ? (__builtin_constant_p ( # 8256 "../../../model_brush.c" argv[0] # 8256 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 8256 "../../../model_brush.c" argv[0] # 8256 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 8256 "../../../model_brush.c" argv[0] # 8256 "../../../model_brush.c" 3 4 ) == 1) ? __builtin_strcmp ( # 8256 "../../../model_brush.c" argv[0] # 8256 "../../../model_brush.c" 3 4 , # 8256 "../../../model_brush.c" "o" # 8256 "../../../model_brush.c" 3 4 ) : (- (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ( # 8256 "../../../model_brush.c" argv[0] # 8256 "../../../model_brush.c" 3 4 ); int __result = (((const unsigned char *) (const char *) ( # 8256 "../../../model_brush.c" "o" # 8256 "../../../model_brush.c" 3 4 ))[0] - __s2[0]); if (__s2_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 8256 "../../../model_brush.c" "o" # 8256 "../../../model_brush.c" 3 4 ))[1] - __s2[1]); if (__s2_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 8256 "../../../model_brush.c" "o" # 8256 "../../../model_brush.c" 3 4 ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( # 8256 "../../../model_brush.c" "o" # 8256 "../../../model_brush.c" 3 4 ))[3] - __s2[3]); } } __result; })))) : __builtin_strcmp ( # 8256 "../../../model_brush.c" argv[0] # 8256 "../../../model_brush.c" 3 4 , # 8256 "../../../model_brush.c" "o" # 8256 "../../../model_brush.c" 3 4 )))); }) # 8256 "../../../model_brush.c" || ! # 8256 "../../../model_brush.c" 3 4 __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( # 8256 "../../../model_brush.c" argv[0] # 8256 "../../../model_brush.c" 3 4 ) && __builtin_constant_p ( # 8256 "../../../model_brush.c" "g" # 8256 "../../../model_brush.c" 3 4 ) && (__s1_len = __builtin_strlen ( # 8256 "../../../model_brush.c" argv[0] # 8256 "../../../model_brush.c" 3 4 ), __s2_len = __builtin_strlen ( # 8256 "../../../model_brush.c" "g" # 8256 "../../../model_brush.c" 3 4 ), (!((size_t)(const void *)(( # 8256 "../../../model_brush.c" argv[0] # 8256 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 8256 "../../../model_brush.c" argv[0] # 8256 "../../../model_brush.c" 3 4 ) == 1) || __s1_len >= 4) && (!((size_t)(const void *)(( # 8256 "../../../model_brush.c" "g" # 8256 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 8256 "../../../model_brush.c" "g" # 8256 "../../../model_brush.c" 3 4 ) == 1) || __s2_len >= 4)) ? __builtin_strcmp ( # 8256 "../../../model_brush.c" argv[0] # 8256 "../../../model_brush.c" 3 4 , # 8256 "../../../model_brush.c" "g" # 8256 "../../../model_brush.c" 3 4 ) : (__builtin_constant_p ( # 8256 "../../../model_brush.c" argv[0] # 8256 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 8256 "../../../model_brush.c" argv[0] # 8256 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 8256 "../../../model_brush.c" argv[0] # 8256 "../../../model_brush.c" 3 4 ) == 1) && (__s1_len = __builtin_strlen ( # 8256 "../../../model_brush.c" argv[0] # 8256 "../../../model_brush.c" 3 4 ), __s1_len < 4) ? (__builtin_constant_p ( # 8256 "../../../model_brush.c" "g" # 8256 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 8256 "../../../model_brush.c" "g" # 8256 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 8256 "../../../model_brush.c" "g" # 8256 "../../../model_brush.c" 3 4 ) == 1) ? __builtin_strcmp ( # 8256 "../../../model_brush.c" argv[0] # 8256 "../../../model_brush.c" 3 4 , # 8256 "../../../model_brush.c" "g" # 8256 "../../../model_brush.c" 3 4 ) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ( # 8256 "../../../model_brush.c" "g" # 8256 "../../../model_brush.c" 3 4 ); int __result = (((const unsigned char *) (const char *) ( # 8256 "../../../model_brush.c" argv[0] # 8256 "../../../model_brush.c" 3 4 ))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 8256 "../../../model_brush.c" argv[0] # 8256 "../../../model_brush.c" 3 4 ))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 8256 "../../../model_brush.c" argv[0] # 8256 "../../../model_brush.c" 3 4 ))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( # 8256 "../../../model_brush.c" argv[0] # 8256 "../../../model_brush.c" 3 4 ))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ( # 8256 "../../../model_brush.c" "g" # 8256 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 8256 "../../../model_brush.c" "g" # 8256 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 8256 "../../../model_brush.c" "g" # 8256 "../../../model_brush.c" 3 4 ) == 1) && (__s2_len = __builtin_strlen ( # 8256 "../../../model_brush.c" "g" # 8256 "../../../model_brush.c" 3 4 ), __s2_len < 4) ? (__builtin_constant_p ( # 8256 "../../../model_brush.c" argv[0] # 8256 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 8256 "../../../model_brush.c" argv[0] # 8256 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 8256 "../../../model_brush.c" argv[0] # 8256 "../../../model_brush.c" 3 4 ) == 1) ? __builtin_strcmp ( # 8256 "../../../model_brush.c" argv[0] # 8256 "../../../model_brush.c" 3 4 , # 8256 "../../../model_brush.c" "g" # 8256 "../../../model_brush.c" 3 4 ) : (- (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ( # 8256 "../../../model_brush.c" argv[0] # 8256 "../../../model_brush.c" 3 4 ); int __result = (((const unsigned char *) (const char *) ( # 8256 "../../../model_brush.c" "g" # 8256 "../../../model_brush.c" 3 4 ))[0] - __s2[0]); if (__s2_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 8256 "../../../model_brush.c" "g" # 8256 "../../../model_brush.c" 3 4 ))[1] - __s2[1]); if (__s2_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 8256 "../../../model_brush.c" "g" # 8256 "../../../model_brush.c" 3 4 ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( # 8256 "../../../model_brush.c" "g" # 8256 "../../../model_brush.c" 3 4 ))[3] - __s2[3]); } } __result; })))) : __builtin_strcmp ( # 8256 "../../../model_brush.c" argv[0] # 8256 "../../../model_brush.c" 3 4 , # 8256 "../../../model_brush.c" "g" # 8256 "../../../model_brush.c" 3 4 )))); }) # 8256 "../../../model_brush.c" ) { submodelindex = atof(argv[1]); loadmodel->brush.numsubmodels = ((submodelindex + 1) > (loadmodel->brush.numsubmodels) ? (submodelindex + 1) : (loadmodel->brush.numsubmodels)); } else if (! # 8261 "../../../model_brush.c" 3 4 __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( # 8261 "../../../model_brush.c" argv[0] # 8261 "../../../model_brush.c" 3 4 ) && __builtin_constant_p ( # 8261 "../../../model_brush.c" "usemtl" # 8261 "../../../model_brush.c" 3 4 ) && (__s1_len = __builtin_strlen ( # 8261 "../../../model_brush.c" argv[0] # 8261 "../../../model_brush.c" 3 4 ), __s2_len = __builtin_strlen ( # 8261 "../../../model_brush.c" "usemtl" # 8261 "../../../model_brush.c" 3 4 ), (!((size_t)(const void *)(( # 8261 "../../../model_brush.c" argv[0] # 8261 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 8261 "../../../model_brush.c" argv[0] # 8261 "../../../model_brush.c" 3 4 ) == 1) || __s1_len >= 4) && (!((size_t)(const void *)(( # 8261 "../../../model_brush.c" "usemtl" # 8261 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 8261 "../../../model_brush.c" "usemtl" # 8261 "../../../model_brush.c" 3 4 ) == 1) || __s2_len >= 4)) ? __builtin_strcmp ( # 8261 "../../../model_brush.c" argv[0] # 8261 "../../../model_brush.c" 3 4 , # 8261 "../../../model_brush.c" "usemtl" # 8261 "../../../model_brush.c" 3 4 ) : (__builtin_constant_p ( # 8261 "../../../model_brush.c" argv[0] # 8261 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 8261 "../../../model_brush.c" argv[0] # 8261 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 8261 "../../../model_brush.c" argv[0] # 8261 "../../../model_brush.c" 3 4 ) == 1) && (__s1_len = __builtin_strlen ( # 8261 "../../../model_brush.c" argv[0] # 8261 "../../../model_brush.c" 3 4 ), __s1_len < 4) ? (__builtin_constant_p ( # 8261 "../../../model_brush.c" "usemtl" # 8261 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 8261 "../../../model_brush.c" "usemtl" # 8261 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 8261 "../../../model_brush.c" "usemtl" # 8261 "../../../model_brush.c" 3 4 ) == 1) ? __builtin_strcmp ( # 8261 "../../../model_brush.c" argv[0] # 8261 "../../../model_brush.c" 3 4 , # 8261 "../../../model_brush.c" "usemtl" # 8261 "../../../model_brush.c" 3 4 ) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ( # 8261 "../../../model_brush.c" "usemtl" # 8261 "../../../model_brush.c" 3 4 ); int __result = (((const unsigned char *) (const char *) ( # 8261 "../../../model_brush.c" argv[0] # 8261 "../../../model_brush.c" 3 4 ))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 8261 "../../../model_brush.c" argv[0] # 8261 "../../../model_brush.c" 3 4 ))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 8261 "../../../model_brush.c" argv[0] # 8261 "../../../model_brush.c" 3 4 ))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( # 8261 "../../../model_brush.c" argv[0] # 8261 "../../../model_brush.c" 3 4 ))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ( # 8261 "../../../model_brush.c" "usemtl" # 8261 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 8261 "../../../model_brush.c" "usemtl" # 8261 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 8261 "../../../model_brush.c" "usemtl" # 8261 "../../../model_brush.c" 3 4 ) == 1) && (__s2_len = __builtin_strlen ( # 8261 "../../../model_brush.c" "usemtl" # 8261 "../../../model_brush.c" 3 4 ), __s2_len < 4) ? (__builtin_constant_p ( # 8261 "../../../model_brush.c" argv[0] # 8261 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 8261 "../../../model_brush.c" argv[0] # 8261 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 8261 "../../../model_brush.c" argv[0] # 8261 "../../../model_brush.c" 3 4 ) == 1) ? __builtin_strcmp ( # 8261 "../../../model_brush.c" argv[0] # 8261 "../../../model_brush.c" 3 4 , # 8261 "../../../model_brush.c" "usemtl" # 8261 "../../../model_brush.c" 3 4 ) : (- (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ( # 8261 "../../../model_brush.c" argv[0] # 8261 "../../../model_brush.c" 3 4 ); int __result = (((const unsigned char *) (const char *) ( # 8261 "../../../model_brush.c" "usemtl" # 8261 "../../../model_brush.c" 3 4 ))[0] - __s2[0]); if (__s2_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 8261 "../../../model_brush.c" "usemtl" # 8261 "../../../model_brush.c" 3 4 ))[1] - __s2[1]); if (__s2_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 8261 "../../../model_brush.c" "usemtl" # 8261 "../../../model_brush.c" 3 4 ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( # 8261 "../../../model_brush.c" "usemtl" # 8261 "../../../model_brush.c" 3 4 ))[3] - __s2[3]); } } __result; })))) : __builtin_strcmp ( # 8261 "../../../model_brush.c" argv[0] # 8261 "../../../model_brush.c" 3 4 , # 8261 "../../../model_brush.c" "usemtl" # 8261 "../../../model_brush.c" 3 4 )))); }) # 8261 "../../../model_brush.c" ) { for (i = 0;i < numtextures;i++) if (! # 8264 "../../../model_brush.c" 3 4 __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( # 8264 "../../../model_brush.c" texturenames+i*128 # 8264 "../../../model_brush.c" 3 4 ) && __builtin_constant_p ( # 8264 "../../../model_brush.c" argv[1] # 8264 "../../../model_brush.c" 3 4 ) && (__s1_len = __builtin_strlen ( # 8264 "../../../model_brush.c" texturenames+i*128 # 8264 "../../../model_brush.c" 3 4 ), __s2_len = __builtin_strlen ( # 8264 "../../../model_brush.c" argv[1] # 8264 "../../../model_brush.c" 3 4 ), (!((size_t)(const void *)(( # 8264 "../../../model_brush.c" texturenames+i*128 # 8264 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 8264 "../../../model_brush.c" texturenames+i*128 # 8264 "../../../model_brush.c" 3 4 ) == 1) || __s1_len >= 4) && (!((size_t)(const void *)(( # 8264 "../../../model_brush.c" argv[1] # 8264 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 8264 "../../../model_brush.c" argv[1] # 8264 "../../../model_brush.c" 3 4 ) == 1) || __s2_len >= 4)) ? __builtin_strcmp ( # 8264 "../../../model_brush.c" texturenames+i*128 # 8264 "../../../model_brush.c" 3 4 , # 8264 "../../../model_brush.c" argv[1] # 8264 "../../../model_brush.c" 3 4 ) : (__builtin_constant_p ( # 8264 "../../../model_brush.c" texturenames+i*128 # 8264 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 8264 "../../../model_brush.c" texturenames+i*128 # 8264 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 8264 "../../../model_brush.c" texturenames+i*128 # 8264 "../../../model_brush.c" 3 4 ) == 1) && (__s1_len = __builtin_strlen ( # 8264 "../../../model_brush.c" texturenames+i*128 # 8264 "../../../model_brush.c" 3 4 ), __s1_len < 4) ? (__builtin_constant_p ( # 8264 "../../../model_brush.c" argv[1] # 8264 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 8264 "../../../model_brush.c" argv[1] # 8264 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 8264 "../../../model_brush.c" argv[1] # 8264 "../../../model_brush.c" 3 4 ) == 1) ? __builtin_strcmp ( # 8264 "../../../model_brush.c" texturenames+i*128 # 8264 "../../../model_brush.c" 3 4 , # 8264 "../../../model_brush.c" argv[1] # 8264 "../../../model_brush.c" 3 4 ) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ( # 8264 "../../../model_brush.c" argv[1] # 8264 "../../../model_brush.c" 3 4 ); int __result = (((const unsigned char *) (const char *) ( # 8264 "../../../model_brush.c" texturenames+i*128 # 8264 "../../../model_brush.c" 3 4 ))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 8264 "../../../model_brush.c" texturenames+i*128 # 8264 "../../../model_brush.c" 3 4 ))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 8264 "../../../model_brush.c" texturenames+i*128 # 8264 "../../../model_brush.c" 3 4 ))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( # 8264 "../../../model_brush.c" texturenames+i*128 # 8264 "../../../model_brush.c" 3 4 ))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ( # 8264 "../../../model_brush.c" argv[1] # 8264 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 8264 "../../../model_brush.c" argv[1] # 8264 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 8264 "../../../model_brush.c" argv[1] # 8264 "../../../model_brush.c" 3 4 ) == 1) && (__s2_len = __builtin_strlen ( # 8264 "../../../model_brush.c" argv[1] # 8264 "../../../model_brush.c" 3 4 ), __s2_len < 4) ? (__builtin_constant_p ( # 8264 "../../../model_brush.c" texturenames+i*128 # 8264 "../../../model_brush.c" 3 4 ) && ((size_t)(const void *)(( # 8264 "../../../model_brush.c" texturenames+i*128 # 8264 "../../../model_brush.c" 3 4 ) + 1) - (size_t)(const void *)( # 8264 "../../../model_brush.c" texturenames+i*128 # 8264 "../../../model_brush.c" 3 4 ) == 1) ? __builtin_strcmp ( # 8264 "../../../model_brush.c" texturenames+i*128 # 8264 "../../../model_brush.c" 3 4 , # 8264 "../../../model_brush.c" argv[1] # 8264 "../../../model_brush.c" 3 4 ) : (- (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ( # 8264 "../../../model_brush.c" texturenames+i*128 # 8264 "../../../model_brush.c" 3 4 ); int __result = (((const unsigned char *) (const char *) ( # 8264 "../../../model_brush.c" argv[1] # 8264 "../../../model_brush.c" 3 4 ))[0] - __s2[0]); if (__s2_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 8264 "../../../model_brush.c" argv[1] # 8264 "../../../model_brush.c" 3 4 ))[1] - __s2[1]); if (__s2_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ( # 8264 "../../../model_brush.c" argv[1] # 8264 "../../../model_brush.c" 3 4 ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( # 8264 "../../../model_brush.c" argv[1] # 8264 "../../../model_brush.c" 3 4 ))[3] - __s2[3]); } } __result; })))) : __builtin_strcmp ( # 8264 "../../../model_brush.c" texturenames+i*128 # 8264 "../../../model_brush.c" 3 4 , # 8264 "../../../model_brush.c" argv[1] # 8264 "../../../model_brush.c" 3 4 )))); }) # 8264 "../../../model_brush.c" ) break; if (i < numtextures) textureindex = i; else { if (maxtextures <= numtextures) { maxtextures = ((maxtextures * 2) > (256) ? (maxtextures * 2) : (256)); texturenames = (char *)_Mem_Alloc(loadmodel->mempool, texturenames, maxtextures * 128, 16, "../../../model_brush.c", 8273); } textureindex = numtextures++; strlcpy(texturenames + textureindex*128, argv[1], 128); } } } ((loadmodel->normalmins)[0]=(mins)[0],(loadmodel->normalmins)[1]=(mins)[1],(loadmodel->normalmins)[2]=(mins)[2]); ((loadmodel->normalmaxs)[0]=(maxs)[0],(loadmodel->normalmaxs)[1]=(maxs)[1],(loadmodel->normalmaxs)[2]=(maxs)[2]); dist = ((fabs(loadmodel->normalmins[0])) > (fabs(loadmodel->normalmaxs[0])) ? (fabs(loadmodel->normalmins[0])) : (fabs(loadmodel->normalmaxs[0]))); modelyawradius = ((fabs(loadmodel->normalmins[1])) > (fabs(loadmodel->normalmaxs[1])) ? (fabs(loadmodel->normalmins[1])) : (fabs(loadmodel->normalmaxs[1]))); modelyawradius = dist*dist+modelyawradius*modelyawradius; modelradius = ((fabs(loadmodel->normalmins[2])) > (fabs(loadmodel->normalmaxs[2])) ? (fabs(loadmodel->normalmins[2])) : (fabs(loadmodel->normalmaxs[2]))); modelradius = modelyawradius + modelradius * modelradius; modelyawradius = sqrt(modelyawradius); modelradius = sqrt(modelradius); loadmodel->yawmins[0] = loadmodel->yawmins[1] = -modelyawradius; loadmodel->yawmins[2] = loadmodel->normalmins[2]; loadmodel->yawmaxs[0] = loadmodel->yawmaxs[1] = modelyawradius; loadmodel->yawmaxs[2] = loadmodel->normalmaxs[2]; loadmodel->rotatedmins[0] = loadmodel->rotatedmins[1] = loadmodel->rotatedmins[2] = -modelradius; loadmodel->rotatedmaxs[0] = loadmodel->rotatedmaxs[1] = loadmodel->rotatedmaxs[2] = modelradius; loadmodel->radius = modelradius; loadmodel->radius2 = modelradius * modelradius; loadmodel->surfmesh.data_element3i = (int *)_Mem_Alloc(loadmodel->mempool, # 8303 "../../../model_brush.c" 3 4 ((void *)0) # 8303 "../../../model_brush.c" , numtriangles * sizeof(int[3]), 16, "../../../model_brush.c", 8303); vertexhashsize = numtriangles*2; vertexhashtable = (int *)_Mem_Alloc(loadmodel->mempool, # 8306 "../../../model_brush.c" 3 4 ((void *)0) # 8306 "../../../model_brush.c" , sizeof(int) * vertexhashsize, 16, "../../../model_brush.c", 8306); memset(vertexhashtable, 0xFF, sizeof(int) * vertexhashsize); vertexhashdata = (objvertex_t *)_Mem_Alloc(loadmodel->mempool, # 8308 "../../../model_brush.c" 3 4 ((void *)0) # 8308 "../../../model_brush.c" , sizeof(*vertexhashdata) * numtriangles*3, 16, "../../../model_brush.c", 8308); vertexhashcount = 0; firstvertex = 0; firsttriangle = 0; elementindex = 0; loadmodel->num_surfaces = 0; tempsurfaces = (msurface_t *)_Mem_Alloc(loadmodel->mempool, # 8317 "../../../model_brush.c" 3 4 ((void *)0) # 8317 "../../../model_brush.c" , numtextures * loadmodel->brush.numsubmodels * sizeof(msurface_t), 16, "../../../model_brush.c", 8317); submodelfirstsurface = (int *)_Mem_Alloc(loadmodel->mempool, # 8318 "../../../model_brush.c" 3 4 ((void *)0) # 8318 "../../../model_brush.c" , (loadmodel->brush.numsubmodels+1) * sizeof(int), 16, "../../../model_brush.c", 8318); surface = tempsurfaces; for (submodelindex = 0;submodelindex < loadmodel->brush.numsubmodels;submodelindex++) { submodelfirstsurface[submodelindex] = loadmodel->num_surfaces; for (textureindex = 0;textureindex < numtextures;textureindex++) { for (vertexindex = 0;vertexindex < numtriangles*3;vertexindex++) { thisvertex = vertices + vertexindex; if (thisvertex->submodelindex == submodelindex && thisvertex->textureindex == textureindex) break; } if (vertexindex == numtriangles*3) continue; surfacevertices = 0; surfaceelements = 0; surface->texture = (texture_t *)((size_t)textureindex); ((surface->mins)[0]=(thisvertex->v)[0],(surface->mins)[1]=(thisvertex->v)[1],(surface->mins)[2]=(thisvertex->v)[2]); ((surface->maxs)[0]=(thisvertex->v)[0],(surface->maxs)[1]=(thisvertex->v)[1],(surface->maxs)[2]=(thisvertex->v)[2]); for (;vertexindex < numtriangles*3;vertexindex++) { thisvertex = vertices + vertexindex; if (thisvertex->submodelindex != submodelindex) continue; if (thisvertex->textureindex != textureindex) continue; surface->mins[0] = ((surface->mins[0]) < (thisvertex->v[0]) ? (surface->mins[0]) : (thisvertex->v[0])); surface->mins[1] = ((surface->mins[1]) < (thisvertex->v[1]) ? (surface->mins[1]) : (thisvertex->v[1])); surface->mins[2] = ((surface->mins[2]) < (thisvertex->v[2]) ? (surface->mins[2]) : (thisvertex->v[2])); surface->maxs[0] = ((surface->maxs[0]) > (thisvertex->v[0]) ? (surface->maxs[0]) : (thisvertex->v[0])); surface->maxs[1] = ((surface->maxs[1]) > (thisvertex->v[1]) ? (surface->maxs[1]) : (thisvertex->v[1])); surface->maxs[2] = ((surface->maxs[2]) > (thisvertex->v[2]) ? (surface->maxs[2]) : (thisvertex->v[2])); vertexhashindex = (unsigned int)(thisvertex->v[0] * 3571 + thisvertex->v[0] * 1777 + thisvertex->v[0] * 457) % (unsigned int)vertexhashsize; for (i = vertexhashtable[vertexhashindex];i >= 0;i = vertexhashdata[i].nextindex) { vdata = vertexhashdata + i; if (vdata->submodelindex == thisvertex->submodelindex && vdata->textureindex == thisvertex->textureindex && (((thisvertex->v)[0]==(vdata->v)[0])&&((thisvertex->v)[1]==(vdata->v)[1])&&((thisvertex->v)[2]==(vdata->v)[2])) && (((thisvertex->vn)[0]==(vdata->vn)[0])&&((thisvertex->vn)[1]==(vdata->vn)[1])&&((thisvertex->vn)[2]==(vdata->vn)[2])) && (((thisvertex->vt)[0]==(vdata->vt)[0])&&((thisvertex->vt)[1]==(vdata->vt)[1]))) break; } if (i < 0) { i = vertexhashcount++; vdata = vertexhashdata + i; *vdata = *thisvertex; vdata->nextindex = vertexhashtable[vertexhashindex]; vertexhashtable[vertexhashindex] = i; surfacevertices++; } loadmodel->surfmesh.data_element3i[elementindex++] = i; surfaceelements++; } surfacetriangles = surfaceelements / 3; surface->num_vertices = surfacevertices; surface->num_triangles = surfacetriangles; surface->num_firstvertex = firstvertex; surface->num_firsttriangle = firsttriangle; firstvertex += surface->num_vertices; firsttriangle += surface->num_triangles; surface++; loadmodel->num_surfaces++; } } submodelfirstsurface[submodelindex] = loadmodel->num_surfaces; numvertices = firstvertex; loadmodel->data_surfaces = (msurface_t *)_Mem_Alloc(loadmodel->mempool, tempsurfaces, loadmodel->num_surfaces * sizeof(msurface_t), 16, "../../../model_brush.c", 8390); tempsurfaces = # 8391 "../../../model_brush.c" 3 4 ((void *)0) # 8391 "../../../model_brush.c" ; loadmodel->num_textures = numtextures * loadmodel->numskins; loadmodel->num_texturesperskin = numtextures; data = (unsigned char *)_Mem_Alloc(loadmodel->mempool, # 8396 "../../../model_brush.c" 3 4 ((void *)0) # 8396 "../../../model_brush.c" , loadmodel->num_surfaces * sizeof(int) + loadmodel->num_surfaces * loadmodel->numskins * sizeof(texture_t) + numtriangles * sizeof(int[3]) + (numvertices <= 65536 ? numtriangles * sizeof(unsigned short[3]) : 0) + (r_enableshadowvolumes.integer ? numtriangles * sizeof(int[3]) : 0) + numvertices * sizeof(float[14]) + loadmodel->brush.numsubmodels * sizeof(dp_model_t *), 16, "../../../model_brush.c", 8396); loadmodel->brush.submodels = (dp_model_t **)data;data += loadmodel->brush.numsubmodels * sizeof(dp_model_t *); loadmodel->sortedmodelsurfaces = (int *)data;data += loadmodel->num_surfaces * sizeof(int); loadmodel->data_textures = (texture_t *)data;data += loadmodel->num_surfaces * loadmodel->numskins * sizeof(texture_t); loadmodel->surfmesh.num_vertices = numvertices; loadmodel->surfmesh.num_triangles = numtriangles; if (r_enableshadowvolumes.integer) loadmodel->surfmesh.data_neighbor3i = (int *)data;data += numtriangles * sizeof(int[3]); loadmodel->surfmesh.data_vertex3f = (float *)data;data += numvertices * sizeof(float[3]); loadmodel->surfmesh.data_svector3f = (float *)data;data += numvertices * sizeof(float[3]); loadmodel->surfmesh.data_tvector3f = (float *)data;data += numvertices * sizeof(float[3]); loadmodel->surfmesh.data_normal3f = (float *)data;data += numvertices * sizeof(float[3]); loadmodel->surfmesh.data_texcoordtexture2f = (float *)data;data += numvertices * sizeof(float[2]); if (loadmodel->surfmesh.num_vertices <= 65536) loadmodel->surfmesh.data_element3s = (unsigned short *)data;data += loadmodel->surfmesh.num_triangles * sizeof(unsigned short[3]); for (j = 0;j < loadmodel->surfmesh.num_vertices;j++) { ((loadmodel->surfmesh.data_vertex3f + 3*j)[0]=(vertexhashdata[j].v)[0],(loadmodel->surfmesh.data_vertex3f + 3*j)[1]=(vertexhashdata[j].v)[1],(loadmodel->surfmesh.data_vertex3f + 3*j)[2]=(vertexhashdata[j].v)[2]); ((loadmodel->surfmesh.data_normal3f + 3*j)[0]=(vertexhashdata[j].vn)[0],(loadmodel->surfmesh.data_normal3f + 3*j)[1]=(vertexhashdata[j].vn)[1],(loadmodel->surfmesh.data_normal3f + 3*j)[2]=(vertexhashdata[j].vn)[2]); ((loadmodel->surfmesh.data_texcoordtexture2f + 2*j)[0]=(vertexhashdata[j].vt)[0],(loadmodel->surfmesh.data_texcoordtexture2f + 2*j)[1]=(vertexhashdata[j].vt)[1]); } for (textureindex = 0;textureindex < numtextures;textureindex++) Mod_BuildAliasSkinsFromSkinFiles(loadmodel->data_textures + textureindex, skinfiles, texturenames + textureindex*128, texturenames + textureindex*128); Mod_FreeSkinFiles(skinfiles); for (i = 0;i < loadmodel->num_surfaces;i++) loadmodel->data_surfaces[i].texture = loadmodel->data_textures + (size_t)loadmodel->data_surfaces[i].texture; _Mem_Free(vertices, "../../../model_brush.c", 8429); _Mem_Free(texturenames, "../../../model_brush.c", 8430); _Mem_Free(v, "../../../model_brush.c", 8431); _Mem_Free(vt, "../../../model_brush.c", 8432); _Mem_Free(vn, "../../../model_brush.c", 8433); _Mem_Free(vertexhashtable, "../../../model_brush.c", 8434); _Mem_Free(vertexhashdata, "../../../model_brush.c", 8435); Mod_Q1BSP_CreateShadowMesh(loadmodel); if (loadmodel->surfmesh.data_element3s) for (i = 0;i < loadmodel->surfmesh.num_triangles*3;i++) loadmodel->surfmesh.data_element3s[i] = loadmodel->surfmesh.data_element3i[i]; Mod_ValidateElements(loadmodel->surfmesh.data_element3i, loadmodel->surfmesh.num_triangles, 0, loadmodel->surfmesh.num_vertices, "../../../model_brush.c", 8444); if (!(((loadmodel->surfmesh.data_normal3f)[0]*(loadmodel->surfmesh.data_normal3f)[0]+(loadmodel->surfmesh.data_normal3f)[1]*(loadmodel->surfmesh.data_normal3f)[1]+(loadmodel->surfmesh.data_normal3f)[2]*(loadmodel->surfmesh.data_normal3f)[2]))) Mod_BuildNormals(0, loadmodel->surfmesh.num_vertices, loadmodel->surfmesh.num_triangles, loadmodel->surfmesh.data_vertex3f, loadmodel->surfmesh.data_element3i, loadmodel->surfmesh.data_normal3f, r_smoothnormals_areaweighting.integer != 0); Mod_BuildTextureVectorsFromNormals(0, loadmodel->surfmesh.num_vertices, loadmodel->surfmesh.num_triangles, loadmodel->surfmesh.data_vertex3f, loadmodel->surfmesh.data_texcoordtexture2f, loadmodel->surfmesh.data_normal3f, loadmodel->surfmesh.data_element3i, loadmodel->surfmesh.data_svector3f, loadmodel->surfmesh.data_tvector3f, r_smoothnormals_areaweighting.integer != 0); if (loadmodel->surfmesh.data_neighbor3i) Mod_BuildTriangleNeighbors(loadmodel->surfmesh.data_neighbor3i, loadmodel->surfmesh.data_element3i, loadmodel->surfmesh.num_triangles); loadmodel->brush.num_visleafs = 1; loadmodel->brush.num_leafs = 1; loadmodel->brush.num_nodes = 0; loadmodel->brush.num_leafsurfaces = loadmodel->num_surfaces; loadmodel->brush.data_leafs = (mleaf_t *)_Mem_Alloc(loadmodel->mempool, # 8457 "../../../model_brush.c" 3 4 ((void *)0) # 8457 "../../../model_brush.c" , loadmodel->brush.num_leafs * sizeof(mleaf_t), 16, "../../../model_brush.c", 8457); loadmodel->brush.data_nodes = (mnode_t *)loadmodel->brush.data_leafs; loadmodel->brush.num_pvsclusters = 1; loadmodel->brush.num_pvsclusterbytes = 1; loadmodel->brush.data_pvsclusters = nobsp_pvs; loadmodel->brush.data_leafsurfaces = loadmodel->sortedmodelsurfaces; ((loadmodel->brush.data_leafs->mins)[0]=(loadmodel->normalmins)[0],(loadmodel->brush.data_leafs->mins)[1]=(loadmodel->normalmins)[1],(loadmodel->brush.data_leafs->mins)[2]=(loadmodel->normalmins)[2]); ((loadmodel->brush.data_leafs->maxs)[0]=(loadmodel->normalmaxs)[0],(loadmodel->brush.data_leafs->maxs)[1]=(loadmodel->normalmaxs)[1],(loadmodel->brush.data_leafs->maxs)[2]=(loadmodel->normalmaxs)[2]); loadmodel->brush.data_leafs->combinedsupercontents = 0; loadmodel->brush.data_leafs->clusterindex = 0; loadmodel->brush.data_leafs->areaindex = 0; loadmodel->brush.data_leafs->numleafsurfaces = loadmodel->brush.num_leafsurfaces; loadmodel->brush.data_leafs->firstleafsurface = loadmodel->brush.data_leafsurfaces; loadmodel->brush.data_leafs->numleafbrushes = 0; loadmodel->brush.data_leafs->firstleafbrush = # 8473 "../../../model_brush.c" 3 4 ((void *)0) # 8473 "../../../model_brush.c" ; loadmodel->brush.supportwateralpha = true; if (loadmodel->brush.numsubmodels) loadmodel->brush.submodels = (dp_model_t **)_Mem_Alloc(loadmodel->mempool, # 8477 "../../../model_brush.c" 3 4 ((void *)0) # 8477 "../../../model_brush.c" , loadmodel->brush.numsubmodels * sizeof(dp_model_t *), 16, "../../../model_brush.c", 8477); mod = loadmodel; for (i = 0;i < loadmodel->brush.numsubmodels;i++) { if (i > 0) { char name[10]; dpsnprintf(name, sizeof(name), "*%i", i); mod = Mod_FindName(name, loadmodel->name); *mod = *loadmodel; strlcpy(mod->name, name, sizeof(mod->name)); mod->brush.parentmodel = loadmodel; mod->texturepool = # 8494 "../../../model_brush.c" 3 4 ((void *)0) # 8494 "../../../model_brush.c" ; mod->mempool = # 8495 "../../../model_brush.c" 3 4 ((void *)0) # 8495 "../../../model_brush.c" ; mod->brush.GetPVS = # 8496 "../../../model_brush.c" 3 4 ((void *)0) # 8496 "../../../model_brush.c" ; mod->brush.FatPVS = # 8497 "../../../model_brush.c" 3 4 ((void *)0) # 8497 "../../../model_brush.c" ; mod->brush.BoxTouchingPVS = # 8498 "../../../model_brush.c" 3 4 ((void *)0) # 8498 "../../../model_brush.c" ; mod->brush.BoxTouchingLeafPVS = # 8499 "../../../model_brush.c" 3 4 ((void *)0) # 8499 "../../../model_brush.c" ; mod->brush.BoxTouchingVisibleLeafs = # 8500 "../../../model_brush.c" 3 4 ((void *)0) # 8500 "../../../model_brush.c" ; mod->brush.FindBoxClusters = # 8501 "../../../model_brush.c" 3 4 ((void *)0) # 8501 "../../../model_brush.c" ; mod->brush.LightPoint = # 8502 "../../../model_brush.c" 3 4 ((void *)0) # 8502 "../../../model_brush.c" ; mod->brush.AmbientSoundLevelsForPoint = # 8503 "../../../model_brush.c" 3 4 ((void *)0) # 8503 "../../../model_brush.c" ; } mod->brush.submodel = i; if (loadmodel->brush.submodels) loadmodel->brush.submodels[i] = mod; mod->firstmodelsurface = submodelfirstsurface[i]; mod->nummodelsurfaces = submodelfirstsurface[i+1] - submodelfirstsurface[i]; mod->firstmodelbrush = 0; mod->nummodelbrushes = 0; mod->sortedmodelsurfaces = loadmodel->sortedmodelsurfaces + mod->firstmodelsurface; Mod_MakeSortedSurfaces(mod); ((mod->normalmins)[0]=(mod->normalmins)[1]=(mod->normalmins)[2]=0); ((mod->normalmaxs)[0]=(mod->normalmaxs)[1]=(mod->normalmaxs)[2]=0); l = false; for (j = 0;j < mod->nummodelsurfaces;j++) { const msurface_t *surface = mod->data_surfaces + j + mod->firstmodelsurface; const float *v = mod->surfmesh.data_vertex3f + 3 * surface->num_firstvertex; int k; if (!surface->num_vertices) continue; if (!l) { l = true; ((mod->normalmins)[0]=(v)[0],(mod->normalmins)[1]=(v)[1],(mod->normalmins)[2]=(v)[2]); ((mod->normalmaxs)[0]=(v)[0],(mod->normalmaxs)[1]=(v)[1],(mod->normalmaxs)[2]=(v)[2]); } for (k = 0;k < surface->num_vertices;k++, v += 3) { mod->normalmins[0] = ((mod->normalmins[0]) < (v[0]) ? (mod->normalmins[0]) : (v[0])); mod->normalmins[1] = ((mod->normalmins[1]) < (v[1]) ? (mod->normalmins[1]) : (v[1])); mod->normalmins[2] = ((mod->normalmins[2]) < (v[2]) ? (mod->normalmins[2]) : (v[2])); mod->normalmaxs[0] = ((mod->normalmaxs[0]) > (v[0]) ? (mod->normalmaxs[0]) : (v[0])); mod->normalmaxs[1] = ((mod->normalmaxs[1]) > (v[1]) ? (mod->normalmaxs[1]) : (v[1])); mod->normalmaxs[2] = ((mod->normalmaxs[2]) > (v[2]) ? (mod->normalmaxs[2]) : (v[2])); } } corner[0] = ((fabs(mod->normalmins[0])) > (fabs(mod->normalmaxs[0])) ? (fabs(mod->normalmins[0])) : (fabs(mod->normalmaxs[0]))); corner[1] = ((fabs(mod->normalmins[1])) > (fabs(mod->normalmaxs[1])) ? (fabs(mod->normalmins[1])) : (fabs(mod->normalmaxs[1]))); corner[2] = ((fabs(mod->normalmins[2])) > (fabs(mod->normalmaxs[2])) ? (fabs(mod->normalmins[2])) : (fabs(mod->normalmaxs[2]))); modelradius = sqrt(corner[0]*corner[0]+corner[1]*corner[1]+corner[2]*corner[2]); yawradius = sqrt(corner[0]*corner[0]+corner[1]*corner[1]); mod->rotatedmins[0] = mod->rotatedmins[1] = mod->rotatedmins[2] = -modelradius; mod->rotatedmaxs[0] = mod->rotatedmaxs[1] = mod->rotatedmaxs[2] = modelradius; mod->yawmaxs[0] = mod->yawmaxs[1] = yawradius; mod->yawmins[0] = mod->yawmins[1] = -yawradius; mod->yawmins[2] = mod->normalmins[2]; mod->yawmaxs[2] = mod->normalmaxs[2]; mod->radius = modelradius; mod->radius2 = modelradius * modelradius; mod->DrawSky = # 8558 "../../../model_brush.c" 3 4 ((void *)0) # 8558 "../../../model_brush.c" ; mod->DrawAddWaterPlanes = # 8559 "../../../model_brush.c" 3 4 ((void *)0) # 8559 "../../../model_brush.c" ; for (j = 0;j < mod->nummodelsurfaces;j++) if (mod->data_surfaces[j + mod->firstmodelsurface].texture->basematerialflags & 128) break; if (j < mod->nummodelsurfaces) mod->DrawSky = R_Q1BSP_DrawSky; for (j = 0;j < mod->nummodelsurfaces;j++) if (mod->data_surfaces[j + mod->firstmodelsurface].texture->basematerialflags & (262144 | 524288 | 1048576 | 67108864)) break; if (j < mod->nummodelsurfaces) mod->DrawAddWaterPlanes = R_Q1BSP_DrawAddWaterPlanes; Mod_MakeCollisionBIH(mod, true, &mod->collision_bih); mod->render_bih = mod->collision_bih; if (i == 0) Mod_BuildVBOs(); } mod = loadmodel; _Mem_Free(submodelfirstsurface, "../../../model_brush.c", 8581); Con_DPrintf("Stats for obj model \"%s\": %i faces, %i nodes, %i leafs, %i clusters, %i clusterportals, mesh: %i vertices, %i triangles, %i surfaces\n", loadmodel->name, loadmodel->num_surfaces, loadmodel->brush.num_nodes, loadmodel->brush.num_leafs, mod->brush.num_pvsclusters, loadmodel->brush.num_portals, loadmodel->surfmesh.num_vertices, loadmodel->surfmesh.num_triangles, loadmodel->num_surfaces); } === END GCC DUMP === make[5]: *** [model_brush.o] Error 1 makefile.inc:557: recipe for target 'model_brush.o' failed make[5]: Leaving directory '/«BUILDDIR»/darkplaces-0~20140513+svn12208/build-obj/release/darkplaces-sdl' make[4]: *** [bin-release] Error 2 makefile.inc:469: recipe for target 'bin-release' failed make[4]: Leaving directory '/«BUILDDIR»/darkplaces-0~20140513+svn12208' make[3]: *** [sdl-release] Error 2 makefile.inc:419: recipe for target 'sdl-release' failed make[3]: Leaving directory '/«BUILDDIR»/darkplaces-0~20140513+svn12208' make[2]: *** [sdl2-release] Error 2 makefile.inc:440: recipe for target 'sdl2-release' failed make[2]: Leaving directory '/«BUILDDIR»/darkplaces-0~20140513+svn12208' make[1]: *** [override_dh_auto_build] Error 2 debian/rules:40: recipe for target 'override_dh_auto_build' failed make[1]: Leaving directory '/«BUILDDIR»/darkplaces-0~20140513+svn12208' make: *** [build] Error 2 debian/rules:35: recipe for target 'build' failed dpkg-buildpackage: error: debian/rules build gave error exit status 2 ──────────────────────────────────────────────────────────────────────────────── Build finished at 20160112-0304 Finished ──────── E: Build failure (dpkg-buildpackage died) ┌──────────────────────────────────────────────────────────────────────────────┐ │ Cleanup │ └──────────────────────────────────────────────────────────────────────────────┘ Not removing build depends: as requested Keeping session: ┌──────────────────────────────────────────────────────────────────────────────┐ │ Summary │ └──────────────────────────────────────────────────────────────────────────────┘ Build Architecture: amd64 Build-Space: 39432 Build-Time: 107 Distribution: xenial Fail-Stage: build Host Architecture: amd64 Install-Time: 39 Job: darkplaces_0~20140513+svn12208-2build1.dsc Machine Architecture: amd64 Package: darkplaces Package-Time: 148 Source-Version: 0~20140513+svn12208-2build1 Space: 39432 Status: attempted Version: 0~20140513+svn12208-2build1 ──────────────────────────────────────────────────────────────────────────────── Finished at 20160112-0304 Build needed 00:02:28, 39432k disc space RUN: /usr/share/launchpad-buildd/slavebin/scan-for-processes ['scan-for-processes', 'PACKAGEBUILD-8648154'] Scanning for processes to kill in build /home/buildd/build-PACKAGEBUILD-8648154/chroot-autobuild... RUN: /usr/share/launchpad-buildd/slavebin/umount-chroot ['umount-chroot', 'PACKAGEBUILD-8648154'] Unmounting chroot for build PACKAGEBUILD-8648154... RUN: /usr/share/launchpad-buildd/slavebin/remove-build ['remove-build', 'PACKAGEBUILD-8648154'] Removing build PACKAGEBUILD-8648154