111 lines
4.1 KiB
C++
111 lines
4.1 KiB
C++
//
|
|
// Copyright 2020 Electronic Arts Inc.
|
|
//
|
|
// TiberianDawn.DLL and RedAlert.dll and corresponding source code is free
|
|
// software: you can redistribute it and/or modify it under the terms of
|
|
// the GNU General Public License as published by the Free Software Foundation,
|
|
// either version 3 of the License, or (at your option) any later version.
|
|
|
|
// TiberianDawn.DLL and RedAlert.dll and corresponding source code is distributed
|
|
// in the hope that it will be useful, but with permitted additional restrictions
|
|
// under Section 7 of the GPL. See the GNU General Public License in LICENSE.TXT
|
|
// distributed with this program. You should have received a copy of the
|
|
// GNU General Public License along with permitted additional restrictions
|
|
// with this program. If not, see https://github.com/electronicarts/CnC_Remastered_Collection
|
|
|
|
|
|
/*
|
|
**
|
|
** Replacement for Shape asm files
|
|
**
|
|
** ST - 12/19/2018 10:15AM
|
|
**
|
|
**
|
|
**
|
|
*/
|
|
|
|
|
|
extern "C" unsigned char *_ShapeBuffer = 0;
|
|
extern "C" long _ShapeBufferSize = 0;
|
|
|
|
|
|
|
|
/*
|
|
;***************************************************************************
|
|
;* SET_SHAPE_BUFFER -- Sets the shape buffer to the given pointer *
|
|
;* *
|
|
;* This routine will set the shape buffer to the given value and make sure *
|
|
;* that the system does not try to compress any shapes that will be larger *
|
|
;* than the shape buffer. *
|
|
;* *
|
|
;* INPUT: void * - pointer to the shape buffer *
|
|
;* int - size of the buffer which has been passed in *
|
|
;* *
|
|
;* OUTPUT: none *
|
|
;* *
|
|
;* PROTO: VOID *Set_Shape_Bufer(void *buffer, int size); *
|
|
;* *
|
|
;* HISTORY: *
|
|
;* 10/26/1994 PWG : Created. *
|
|
;*=========================================================================*
|
|
*/
|
|
extern "C" void __cdecl Set_Shape_Buffer(void const *buffer, int size)
|
|
{
|
|
_ShapeBuffer = (unsigned char *)buffer;
|
|
_ShapeBufferSize = size;
|
|
}
|
|
|
|
|
|
|
|
#if (0)
|
|
global C ShapeBuffer :dword
|
|
global C ShapeBufferSize :dword
|
|
global C _ShapeBuffer :dword
|
|
global C _ShapeBufferSize :dword
|
|
global C Set_Shape_Buffer :near
|
|
|
|
DATASEG
|
|
label ShapeBuffer dword
|
|
_ShapeBuffer dd 0
|
|
|
|
label ShapeBufferSize dword
|
|
_ShapeBufferSize dd 0
|
|
|
|
CODESEG
|
|
|
|
;***************************************************************************
|
|
;* SET_SHAPE_BUFFER -- Sets the shape buffer to the given pointer *
|
|
;* *
|
|
;* This routine will set the shape buffer to the given value and make sure *
|
|
;* that the system does not try to compress any shapes that will be larger *
|
|
;* than the shape buffer. *
|
|
;* *
|
|
;* INPUT: void * - pointer to the shape buffer *
|
|
;* int - size of the buffer which has been passed in *
|
|
;* *
|
|
;* OUTPUT: none *
|
|
;* *
|
|
;* PROTO: VOID *Set_Shape_Bufer(void *buffer, int size); *
|
|
;* *
|
|
;* HISTORY: *
|
|
;* 10/26/1994 PWG : Created. *
|
|
;*=========================================================================*
|
|
GLOBAL C Set_Shape_Buffer:NEAR
|
|
|
|
PROC Set_Shape_Buffer C near
|
|
USES eax
|
|
|
|
ARG buff:DWORD
|
|
ARG size:DWORD
|
|
|
|
mov eax,[size]
|
|
mov [_ShapeBufferSize],eax
|
|
|
|
mov eax,[buff]
|
|
mov [_ShapeBuffer],eax
|
|
ret
|
|
|
|
ENDP Set_Shape_Buffer
|
|
END
|
|
|
|
#endif |