@ede, post #360
@twardy, post #363
@ede, post #360
@Hexmage960, post #362
#define VEHICLE_TYPE_COUNT 4 #define VEHICLE_TYPE_TANK 0 #define VEHICLE_TYPE_CHOPPER 1 #define VEHICLE_TYPE_ASV 2 #define VEHICLE_TYPE_JEEP 3 #define VEHICLE_BODY_WIDTH 32 #define VEHICLE_BODY_HEIGHT 32 #define VEHICLE_BODY_ANGLE_COUNT 64 #define VEHICLE_TURRET_WIDTH 32 #define VEHICLE_TURRET_HEIGHT 32 /// Vehicle-specific constants #define VEHICLE_TANK_COOLDOWN 25
// Bunker gamestate modes #define BUNKER_MODE_INVALID 0 #define BUNKER_MODE_CHOICE 1 #define BUNKER_MODE_ELEVATOR_TO_VEHICLE 2 #define BUNKER_MODE_VEHICLE_TO_ELEVATOR 3 #define BUNKER_MODE_ELEVATOR_TO_SURFACE 4 #define BUNKER_MODE_MAP 5 #define BUNKER_ANIM_FRAMES 100 #define BUNKER_FADE_FRAMES 16 #define BUNKER_MAP_TILE_SIZE 4
@teh_KaiN, post #370
@Hexmage960, post #371
@teh_KaiN, post #372
@Hexmage960, post #373
Zarówno PowerPacker jak i XPK udostępnia wygodne funkcje w formie bibliotek operujące na skompresowanych plikach.XPK jest lepsze bo pozwala na dobranie algorytmu do rodzaju kompresowanych danych, bez zmiany kodu ładującego. Z kolei pewną jego wadą jest to, że odpowiednie packery (moduły) muszą być wcześniej zainstalowane, albo dostarczone z grą.
Zatem w asemblerze będą pisane funkcje proste, nieskomplikowane, nie wymagające skomplikowanych obliczeń i operacji. Głównie rysowanie za pomocą Blittera oraz obsługa przerwań i odczyt stanu myszy i klawiatury. Te rzeczy naprawdę warto zrobić w asemblerze.Nie warto, może z wyjątkiem obsługi przerwań. Rysowanie za pomocą blittera sprowadza się do odpowiedniego wypełnienia jego rejestrów i wystartowania go. Asembler nic tu nie przyspieszy. Podobnie obsługa myszy i klawiatury, sprowadza się do odczytania rejestrów.
@Hexmage960, post #373
@Krashan, post #374
custom.bltcon0 = ((x&0xf)<<12)|(0x09f0);
Podobnie obsługa myszy i klawiatury, sprowadza się do odczytania rejestrów.Czy chodzi Ci o rejestry sprzętowe? Aż tak low-level nie zamierzam stosować, po prostu handler input.device o wysokim priorytecie. Ale i tu warto zastosować asembler, bo input.device dość mocno zajmuje czas procesora.
@Hexmage960, post #377
@teh_KaiN, post #380
Co do samego macania blittera, to zdajesz sobie sprawę, że wtedy już odcinasz się od OSu i kod nie ruszy wprost na sprzęcie nowej generacji (chyba że ruszy, bo mają szczątkową emulację custom chipów?)?
Jak się bawisz rejestrami blittera to możesz się pobawić moją funkcją i przy okazji powiedzieć mi, co robię nie tak, że kopiowanie z dużego bufora na mały (np. 32 pikseli wszerz) się wali, zwłaszcza gdy źródłowe x,y nie są równymi wielokrotnościami 16.
@Hexmage960, post #381
api = &aga; /* Wybranie architektury AGA (analogicznie api = &rtg) */ api->otworzEkran(); /* Wywołanie funkcji poprzez wskaźnik */
@Hexmage960, post #383
@Hubez, post #385
@Hexmage960, post #388
@selur, post #389