بیت‌مپ‌ها · bei.pm

منتشر شده در 19/11/2015·به‌روزرسانی شده در 13/02/2025·پرسش
این متن به‌صورت خودکار توسط OpenAI GPT-4o Mini ترجمه شده است.

فرمت‌های فایل توصیف‌شده در این صفحه بر پایه تحلیل فنی مالکیت معنوی شرکت Dynamix, Inc. و Sierra Entertainment بنا شده است.
مالکیت معنوی امروزه بخشی از دارایی‌های Activision Publishing, Inc. / Activision Blizzard, Inc. است و در حال حاضر در مالکیت Microsoft Corp. قرار دارد.

این اطلاعات از طریق مهندسی معکوس و تحلیل داده‌ها برای اهداف بایگانی و تعامل‌پذیری با داده‌های تاریخی جمع‌آوری شده است.
هیچ مشخصات مالکیتی یا محرمانه‌ای مورد استفاده قرار نگرفته است.

این بازی در حال حاضر می‌تواند از gog.com به صورت دانلودی خریداری شود.

آدرس x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF شخصیت
0x0000 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
0x0010 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
آدرس جابه‌جایی نوع داده نام توضیح
0x0000 uint(32) عرض تنظیم‌شده

عرض داده‌های پیکسل در بایت‌ها را مشخص می‌کند - زیرا این داده‌ها به مرزهای ۴ بایت تنظیم شده‌اند.

بنابراین، به راحتی می‌توان به یک خط خاص از تصویر دسترسی پیدا کرد.

چرا این مقدار به‌طور جداگانه ذخیره می‌شود، با اینکه می‌توان آن را محاسبه کرد، مشخص نیست.
شاید این یک بهینه‌سازی برای کد رندر باشد.

0x0004 uint(32) افست

آفست اولین خط در بیت‌مپ را مشخص می‌کند

0x0008 uint(32) ارتفاع

ارتفاع تصویر را به پیکسل مشخص می‌کند

0x000c uint(32) عرض

عرض تصویر را به پیکسل مشخص می‌کند

0x0010 uint(16) نوع

نوع تصویر را مشخص می‌کند. به نظر می‌رسد که این یک ماسک بیت است:

  • 0x04 زمانی تنظیم می‌شود که این یک گرافیک 1bpp باشد.
  • 0x40 زمانی تنظیم می‌شود که این یک گرافیک باشد که باید پنجره‌سازی را پیاده‌سازی کند.
0x0012 uint(16) پالت

تعریف می‌کند که کدام پالت از فایل PRT باید استفاده شود

این ساختار داده‌ای فایل PRT نشان می‌دهد که بیت‌مپ‌های استفاده شده برای اسپرایت‌ها چگونه ساخته شده‌اند. این بیت‌مپ‌ها به عنوان یک جزء واحد عمل می‌کنند که چندین عدد از آن‌ها به یک فریم انیمیشن اسپرایت متصل می‌شوند.

اما داده‌های تصویر واقعی در op2_art.BMP در دایرکتوری بازی پنهان شده‌اند.
دلیل اینکه این فایل بیت‌مپ دارای یک هدر RIFF بیت‌مپ (که عمدتاً صحیح است) می‌باشد، مشخص نیست. احتمالاً Outpost 2 از APIهای سیستمی برای بارگذاری گرافیک‌ها استفاده می‌کند و این هدر به‌طور موقت مورد استفاده قرار می‌گیرد و فیلدهای متغیر مربوطه بازنویسی می‌شوند.

داده‌های پیکسلی در فایل BMP در موقعیت Offset + uint32-Offset، که در فایل BMP در آدرس 0x000A (آفست داده‌های RIFF بیت‌مپ) یافت می‌شود، قرار دارند و دوباره به ترتیب خطی از بالا چپ به پایین راست مرتب شده‌اند.

گرافیک‌های تک‌رنگ 1bpp می‌توانند به‌گونه‌ای طراحی شوند که رنگ 0 نمایان‌گر شفافیت کامل و رنگ 1 یک سیاه/خاکستری نیمه‌شفاف باشد، زیرا گرافیک‌های تک‌رنگ معمولاً برای سایه‌های وسایل نقلیه و ساختمان‌ها در انیمیشن‌ها استفاده می‌شوند.

بنابراین می‌توان بسیاری از گرافیک‌ها را ترکیب کرد.

ماژول مسکونی محافظت شده (پلیموت)