本文整理汇总了C++中FIX2FLT函数的典型用法代码示例。如果您正苦于以下问题:C++ FIX2FLT函数的具体用法?C++ FIX2FLT怎么用?C++ FIX2FLT使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了FIX2FLT函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: switch
char *storage_serialize_sf(void *ptr, u32 fieldType)
{
char szVal[50];
switch (fieldType) {
case GF_SG_VRML_SFBOOL:
sprintf(szVal, "%d", *((SFBool *)ptr) ? 1 : 0);
return gf_strdup(szVal);
case GF_SG_VRML_SFINT32:
sprintf(szVal, "%d", *((SFInt32 *)ptr) );
return gf_strdup(szVal);
case GF_SG_VRML_SFTIME:
sprintf(szVal, "%g", *((SFTime *)ptr) );
return gf_strdup(szVal);
case GF_SG_VRML_SFFLOAT:
sprintf(szVal, "%g", FIX2FLT( *((SFFloat *)ptr) ) );
return gf_strdup(szVal);
case GF_SG_VRML_SFVEC2F:
sprintf(szVal, "%g %g", FIX2FLT( ((SFVec2f *)ptr)->x), FIX2FLT( ((SFVec2f *)ptr)->y) );
return gf_strdup(szVal);
case GF_SG_VRML_SFVEC3F:
sprintf(szVal, "%g %g %g", FIX2FLT( ((SFVec3f *)ptr)->x), FIX2FLT( ((SFVec3f *)ptr)->y) , FIX2FLT( ((SFVec3f *)ptr)->z) );
return gf_strdup(szVal);
case GF_SG_VRML_SFSTRING:
return gf_strdup( ((SFString *)ptr)->buffer ? ((SFString *)ptr)->buffer : "");
default:
break;
}
return NULL;
}
开发者ID:golgol7777,项目名称:gpac,代码行数:30,代码来源:mpeg4_inline.c
示例2: A_LeafCheck
void C_DECL A_LeafCheck(mobj_t *actor)
{
int n;
actor->special1++;
if(actor->special1 >= 20)
{
P_MobjChangeState(actor, S_NULL);
return;
}
if(P_Random() > 64)
{
if(FEQUAL(actor->mom[MX], 0) && FEQUAL(actor->mom[MY], 0))
{
P_ThrustMobj(actor, actor->target->angle,
FIX2FLT(P_Random() << 9) + 1);
}
return;
}
P_MobjChangeState(actor, S_LEAF1_8);
n = P_Random();
actor->mom[MZ] = FIX2FLT(n << 9) + 1;
P_ThrustMobj(actor, actor->target->angle, FIX2FLT(P_Random() << 9) + 2);
actor->flags |= MF_MISSILE;
}
开发者ID:skyjake,项目名称:Doomsday-Engine,代码行数:27,代码来源:a_action.c
示例3: camera_frustum_from_matrix
static void camera_frustum_from_matrix(GF_Camera *cam, GF_Matrix *mx)
{
u32 i;
cam->planes[FRUS_LEFT_PLANE].normal.x = mx->m[3] + mx->m[0];
cam->planes[FRUS_LEFT_PLANE].normal.y = mx->m[7] + mx->m[4];
cam->planes[FRUS_LEFT_PLANE].normal.z = mx->m[11] + mx->m[8];
cam->planes[FRUS_LEFT_PLANE].d = mx->m[15] + mx->m[12];
cam->planes[FRUS_RIGHT_PLANE].normal.x = mx->m[3] - mx->m[0];
cam->planes[FRUS_RIGHT_PLANE].normal.y = mx->m[7] - mx->m[4];
cam->planes[FRUS_RIGHT_PLANE].normal.z = mx->m[11] - mx->m[8];
cam->planes[FRUS_RIGHT_PLANE].d = mx->m[15] - mx->m[12];
cam->planes[FRUS_BOTTOM_PLANE].normal.x = mx->m[3] + mx->m[1];
cam->planes[FRUS_BOTTOM_PLANE].normal.y = mx->m[7] + mx->m[5];
cam->planes[FRUS_BOTTOM_PLANE].normal.z = mx->m[11] + mx->m[9];
cam->planes[FRUS_BOTTOM_PLANE].d = mx->m[15] + mx->m[13];
cam->planes[FRUS_TOP_PLANE].normal.x = mx->m[3] - mx->m[1];
cam->planes[FRUS_TOP_PLANE].normal.y = mx->m[7] - mx->m[5];
cam->planes[FRUS_TOP_PLANE].normal.z = mx->m[11] - mx->m[9];
cam->planes[FRUS_TOP_PLANE].d = mx->m[15] - mx->m[13];
cam->planes[FRUS_FAR_PLANE].normal.x = mx->m[3] - mx->m[2];
cam->planes[FRUS_FAR_PLANE].normal.y = mx->m[7] - mx->m[6];
cam->planes[FRUS_FAR_PLANE].normal.z = mx->m[11] - mx->m[10];
cam->planes[FRUS_FAR_PLANE].d = mx->m[15] - mx->m[14];
cam->planes[FRUS_NEAR_PLANE].normal.x = mx->m[3] + mx->m[2];
cam->planes[FRUS_NEAR_PLANE].normal.y = mx->m[7] + mx->m[6];
cam->planes[FRUS_NEAR_PLANE].normal.z = mx->m[11] + mx->m[10];
cam->planes[FRUS_NEAR_PLANE].d = mx->m[15] + mx->m[14];
for (i=0; i<6; ++i) {
#ifdef GPAC_FIXED_POINT
/*after some testing, it's just safer to move back to float here, the smallest drift will
result in completely wrong culling...*/
Float vx, vy, vz, nor;
vx = FIX2FLT(cam->planes[i].normal.x);
vy = FIX2FLT(cam->planes[i].normal.y);
vz = FIX2FLT(cam->planes[i].normal.z);
nor = (Float) sqrt(vx*vx + vy*vy + vz*vz);
vx /= nor;
vy /= nor;
vz /= nor;
cam->planes[i].d = FLT2FIX (FIX2FLT(cam->planes[i].d) / nor);
cam->planes[i].normal.x = FLT2FIX(vx);
cam->planes[i].normal.y = FLT2FIX(vy);
cam->planes[i].normal.z = FLT2FIX(vz);
#else
Float len = (Float)(1.0f / gf_vec_len(cam->planes[i].normal));
cam->planes[i].normal = gf_vec_scale(cam->planes[i].normal, len);
cam->planes[i].d *= len;
#endif
/*compute p-vertex idx*/
cam->p_idx[i] = gf_plane_get_p_vertex_idx(&cam->planes[i]);
}
}
开发者ID:Brilon314,项目名称:gpac,代码行数:60,代码来源:camera.c
示例4: print
/**
* Debug print
*/
void print ( void )
{
lprintfln( "{%f, %f, %f}",
FIX2FLT( m_x ),
FIX2FLT( m_y ),
FIX2FLT( m_z ) );
}
开发者ID:AliSayed,项目名称:MoSync,代码行数:10,代码来源:vector3fi.hpp
示例5: A_FogMove
void C_DECL A_FogMove(mobj_t* actor)
{
coord_t speed = (coord_t) actor->args[0];
uint an;
if(!(actor->args[4]))
return;
if(actor->args[3]-- <= 0)
{
P_MobjChangeStateNoAction(actor, P_GetState(actor->type, SN_DEATH));
return;
}
// Move the fog slightly/slowly up and down. Some fog patches are supposed
// to move higher and some are supposed to stay close to the ground.
// Unlike in the original Hexen, the move is done by applying momentum
// to the cloud so that the movement is smooth.
if((actor->args[3] % 4) == 0)
{
uint weaveindex = actor->special2;
actor->mom[VZ] = FLOATBOBOFFSET(weaveindex) / TICSPERSEC;
actor->special2 = (weaveindex + 1) & 63;
}
an = actor->angle >> ANGLETOFINESHIFT;
actor->mom[MX] = speed * FIX2FLT(finecosine[an]);
actor->mom[MY] = speed * FIX2FLT(finesine[an]);
}
开发者ID:skyjake,项目名称:Doomsday-Engine,代码行数:29,代码来源:a_action.c
示例6: c2d_gl_fill_alpha
static void c2d_gl_fill_alpha(void *cbk, u32 x, u32 y, u32 run_h_len, GF_Color color, u8 alpha)
{
#if defined(GPAC_USE_OGL_ES)
GLfloat line[4];
line[0] = FIX2FLT(x);
line[1] = FIX2FLT(y);
line[2] = FIX2FLT(x+run_h_len);
line[3] = line[1];
glEnable(GL_BLEND);
glColor4ub(GF_COL_R(color), GF_COL_G(color), GF_COL_B(color), (u8) alpha);
glVertexPointer(2, GL_FLOAT, 0, line);
glEnableClientState(GL_VERTEX_ARRAY);
glDrawArrays(GL_LINES, 0, 2);
glDisableClientState(GL_VERTEX_ARRAY);
glDisable(GL_BLEND);
#else
glEnable(GL_BLEND);
glColor4ub(GF_COL_R(color), GF_COL_G(color), GF_COL_B(color), (u8) alpha);
glBegin(GL_LINES);
glVertex2i(x,y);
glVertex2i(x+run_h_len,y);
glEnd();
glDisable(GL_BLEND);
#endif
}
开发者ID:jnorthrup,项目名称:gpac,代码行数:29,代码来源:compositor_2d.c
示例7: A_PotteryExplode
void C_DECL A_PotteryExplode(mobj_t* actor)
{
int i, maxBits = (P_Random() & 3) + 3;
mobj_t* potteryBit;
for(i = 0; i < maxBits; ++i)
{
if((potteryBit = P_SpawnMobj(MT_POTTERYBIT1, actor->origin, P_Random() << 24, 0)))
{
P_MobjChangeState(potteryBit, P_GetState(potteryBit->type, SN_SPAWN) + (P_Random() % 5));
potteryBit->mom[MZ] = FIX2FLT(((P_Random() & 7) + 5) * (3 * FRACUNIT / 4));
potteryBit->mom[MX] = FIX2FLT((P_Random() - P_Random()) << 10);
potteryBit->mom[MY] = FIX2FLT((P_Random() - P_Random()) << 10);
}
}
S_StartSound(SFX_POTTERY_EXPLODE, potteryBit);
if(actor->args[0])
{
// Spawn an item.
if(!G_Ruleset_NoMonsters() ||
!(MOBJINFO[TranslateThingType[actor->args[0]]].
flags & MF_COUNTKILL))
{
// Only spawn monsters if not -nomonsters.
P_SpawnMobj(TranslateThingType[actor->args[0]], actor->origin,
actor->angle, 0);
}
}
P_MobjRemove(actor, false);
}
开发者ID:skyjake,项目名称:Doomsday-Engine,代码行数:34,代码来源:a_action.c
示例8: A_LeafSpawn
void C_DECL A_LeafSpawn(mobj_t* actor)
{
coord_t pos[3];
mobj_t* mo;
int i;
for(i = (P_Random() & 3) + 1; i; i--)
{
pos[VX] = actor->origin[VX];
pos[VY] = actor->origin[VY];
pos[VZ] = actor->origin[VZ];
pos[VX] += FIX2FLT((P_Random() - P_Random()) << 14);
pos[VY] += FIX2FLT((P_Random() - P_Random()) << 14);
pos[VZ] += FIX2FLT(P_Random() << 14);
/// @todo We should not be using the original indices to determine
/// the mobjtype. Use a local table instead.
if((mo = P_SpawnMobj(MT_LEAF1 + (P_Random() & 1), pos,
actor->angle, 0)))
{
P_ThrustMobj(mo, actor->angle, FIX2FLT(P_Random() << 9) + 3);
mo->target = actor;
mo->special1 = 0;
}
}
}
开发者ID:skyjake,项目名称:Doomsday-Engine,代码行数:27,代码来源:a_action.c
示例9: swf_svg_print_color
static void swf_svg_print_color(SWFReader *read, u32 ARGB)
{
SFColor val;
val.red = INT2FIX((ARGB>>16)&0xFF) / 255*100;
val.green = INT2FIX((ARGB>>8)&0xFF) / 255*100;
val.blue = INT2FIX((ARGB)&0xFF) / 255*100;
swf_svg_print(read, "rgb(%g%%,%g%%,%g%%)", FIX2FLT(val.red), FIX2FLT(val.green), FIX2FLT(val.blue));
}
开发者ID:ARSekkat,项目名称:gpac,代码行数:8,代码来源:swf_svg.c
示例10: BE_WriteSFFloat
void BE_WriteSFFloat(GF_BifsEncoder *codec, Fixed val, GF_BitStream *bs, char *com)
{
if (codec->ActiveQP && codec->ActiveQP->useEfficientCoding) {
gf_bifs_enc_mantissa_float(codec, val, bs);
} else {
gf_bs_write_float(bs, FIX2FLT(val));
GF_LOG(GF_LOG_DEBUG, GF_LOG_CODING, ("[BIFS] SFFloat\t\t32\t\t%g\t\t%s\n", FIX2FLT(val), com ? com : "") );
}
}
开发者ID:Brilon314,项目名称:gpac,代码行数:9,代码来源:field_encode.c
示例11: print
void print ( void )
{
for ( int i = 0; i < 4; i++ )
printf( "{%f, %f, %f, %f}",
FIX2FLT( m_matrix[i][0] ),
FIX2FLT( m_matrix[i][1] ),
FIX2FLT( m_matrix[i][2] ),
FIX2FLT( m_matrix[i][3] ) );
}
开发者ID:AliSayed,项目名称:MoSync,代码行数:9,代码来源:matrix4fi.hpp
示例12: gf_cache_remove_entry
static Bool gf_cache_remove_entry(GF_Compositor *compositor, GF_Node *node, GroupingNode2D *group)
{
u32 bytes_remove = 0;
GF_List *cache_candidates = compositor->cached_groups;
/*auto mode*/
if (!group) {
group = gf_list_get(cache_candidates, 0);
if (!group) return 0;
/*remove entry*/
gf_list_rem(cache_candidates, 0);
node = NULL;
} else {
/*remove entry if present*/
if (gf_list_del_item(cache_candidates, group)<0)
return 0;
}
/*disable the caching flag of the group if it was marked as such*/
if(group->flags & GROUP_IS_CACHABLE) {
group->flags &= ~GROUP_IS_CACHABLE;
/*the discarded bytes*/
bytes_remove = group->cached_size;
}
/*indicates cache destruction for next frame*/
if (group->cache && (group->flags & GROUP_IS_CACHED)) {
group->flags &= ~GROUP_IS_CACHED;
/*the discarded bytes*/
bytes_remove = group->cached_size;
}
if (bytes_remove == 0) return 0;
assert(compositor->video_cache_current_size >= bytes_remove);
compositor->video_cache_current_size -= bytes_remove;
GF_LOG(GF_LOG_DEBUG, GF_LOG_CACHE, ("[CACHE] Removing cache %s:\t Objects: %d\tSlope: %g\tBytes: %d\tTime: %d\n",
gf_node_get_log_name(node),
group->nb_objects,
FIX2FLT(group->priority),
group->cached_size,
FIX2FLT(group->traverse_time)));
GF_LOG(GF_LOG_DEBUG, GF_LOG_CACHE, ("[CACHE] Status (B): Max: %d\tUsed: %d\tNb Groups: %d\n",
compositor->video_cache_max_size,
compositor->video_cache_current_size,
gf_list_count(compositor->cached_groups)
));
return 1;
}
开发者ID:erelh,项目名称:gpac,代码行数:51,代码来源:offscreen_cache.c
示例13: switch
/**
* Get a pointer to the value of a variable. Added for 64-bit support.
*/
void *G_GetVariable(int id)
{
static float bob[2];
switch(id)
{
case DD_GAME_NAME:
return GAMENAMETEXT;
case DD_GAME_NICENAME:
return GAME_NICENAME;
case DD_GAME_ID:
return GAMENAMETEXT " " GAME_VERSION_TEXT;
case DD_GAME_MODE:
return gameModeString;
case DD_GAME_CONFIG:
return gameConfigString;
case DD_VERSION_SHORT:
return GAME_VERSION_TEXT;
case DD_VERSION_LONG:
return GAME_VERSION_TEXTLONG "\n" GAME_DETAILS;
case DD_ACTION_LINK:
return actionlinks;
case DD_XGFUNC_LINK:
return xgClasses;
case DD_PSPRITE_BOB_X:
bob[VX] = 1 + (cfg.bobWeapon * players[CONSOLEPLAYER].bob) *
FIX2FLT(finecosine[(128 * mapTime) & FINEMASK]);
return &bob[VX];
case DD_PSPRITE_BOB_Y:
bob[VY] = 32 + (cfg.bobWeapon * players[CONSOLEPLAYER].bob) *
FIX2FLT(finesine[(128 * mapTime) & FINEMASK & (FINEANGLES / 2 - 1)]);
return &bob[VY];
default:
break;
}
// ID not recognized, return NULL.
return 0;
}
开发者ID:cmbruns,项目名称:Doomsday-Engine,代码行数:54,代码来源:d_api.c
示例14: swf_svg_print_shape_record_to_path_d
static void swf_svg_print_shape_record_to_path_d(SWFReader *read, SWFShapeRec *srec)
{
u32 pt_idx;
u32 i;
pt_idx = 0;
for (i=0; i<srec->path->nbType; i++) {
switch (srec->path->types[i]) {
/*moveTo*/
case 0:
swf_svg_print(read, "M%g,%g", FIX2FLT(srec->path->pts[pt_idx].x), FIX2FLT(srec->path->pts[pt_idx].y));
pt_idx++;
break;
/*lineTo*/
case 1:
swf_svg_print(read, "L%g,%g", FIX2FLT(srec->path->pts[pt_idx].x), FIX2FLT(srec->path->pts[pt_idx].y));
pt_idx++;
break;
/*curveTo*/
case 2:
swf_svg_print(read, "Q%g,%g", FIX2FLT(srec->path->pts[pt_idx].x), FIX2FLT(srec->path->pts[pt_idx].y));
pt_idx++;
swf_svg_print(read, ",%g,%g", FIX2FLT(srec->path->pts[pt_idx].x), FIX2FLT(srec->path->pts[pt_idx].y));
pt_idx++;
break;
}
}
}
开发者ID:ARSekkat,项目名称:gpac,代码行数:28,代码来源:swf_svg.c
示例15: gdip_set_vertex_center
static
GF_Err gdip_set_vertex_center (GF_STENCIL _this, Fixed cx, Fixed cy, u32 color)
{
GpStatus ret;
GPSTEN();
CHECK_RET(GF_STENCIL_VERTEX_GRADIENT);
if (!_sten->pRadial) return GF_BAD_PARAM;
_sten->center.X = FIX2FLT(cx);
_sten->center.Y = FIX2FLT(cy);
ret = GdipSetPathGradientCenterPoint(_sten->pRadial, &_sten->center);
ret = GdipSetPathGradientCenterColor(_sten->pRadial, (ARGB) color);
return GF_OK;
}
开发者ID:DmitrySigaev,项目名称:gpac_hbbtv,代码行数:15,代码来源:gdip_grad.cpp
示例16: A_Quake
void C_DECL A_Quake(mobj_t* actor)
{
angle_t angle;
player_t* player;
mobj_t* victim;
int richters = actor->args[0];
int playnum;
coord_t dist;
if(actor->args[1]-- > 0)
{
for(playnum = 0; playnum < MAXPLAYERS; ++playnum)
{
player = &players[playnum];
if(!players[playnum].plr->inGame)
continue;
victim = player->plr->mo;
dist = M_ApproxDistance(actor->origin[VX] - victim->origin[VX],
actor->origin[VY] - victim->origin[VY]);
dist = FIX2FLT(FLT2FIX(dist) >> (FRACBITS + 6));
// Tested in tile units (64 pixels).
if(dist < FIX2FLT(actor->args[3])) // In tremor radius.
{
localQuakeHappening[playnum] = richters;
players[playnum].update |= PSF_LOCAL_QUAKE;
}
// Check if in damage radius.
if(dist < FIX2FLT(actor->args[2]) &&
victim->origin[VZ] <= victim->floorZ)
{
if(P_Random() < 50)
{
P_DamageMobj(victim, NULL, NULL, HITDICE(1), false);
}
// Thrust player around.
angle = victim->angle + ANGLE_1 * P_Random();
P_ThrustMobj(victim, angle, FIX2FLT(richters << (FRACBITS - 1)));
}
}
}
else
{
for(playnum = 0; playnum < MAXPLAYERS; playnum++)
开发者ID:skyjake,项目名称:Doomsday-Engine,代码行数:48,代码来源:a_action.c
示例17: gf_node_get_private
static char *audiobuffer_fetch_frame(void *callback, u32 *size, u32 audio_delay_ms)
{
u32 blockAlign;
AudioBufferStack *st = (AudioBufferStack *) gf_node_get_private( ((GF_AudioInput *) callback)->owner);
M_AudioBuffer *ab = (M_AudioBuffer*)st->output.owner;
if (!st->is_init) return NULL;
if (!st->buffer) {
st->done = 0;
st->buffer_size = (u32) ceil(FIX2FLT(ab->length) * st->output.input_ifce.bps*st->output.input_ifce.samplerate*st->output.input_ifce.chan/8);
blockAlign = gf_mixer_get_block_align(st->am);
/*BLOCK ALIGN*/
while (st->buffer_size%blockAlign) st->buffer_size++;
st->buffer = (char*)gf_malloc(sizeof(char) * st->buffer_size);
memset(st->buffer, 0, sizeof(char) * st->buffer_size);
st->read_pos = st->write_pos = 0;
}
if (st->done) return NULL;
/*even if not active, fill the buffer*/
if (st->write_pos < st->buffer_size) {
u32 written;
while (1) {
/*just try to completely fill it*/
written = gf_mixer_get_output(st->am, st->buffer + st->write_pos, st->buffer_size - st->write_pos, 0);
if (!written) break;
st->write_pos += written;
assert(st->write_pos<=st->buffer_size);
}
}
/*not playing*/
if (! ab->isActive) return NULL;
*size = st->write_pos - st->read_pos;
return st->buffer + st->read_pos;
}
开发者ID:golgol7777,项目名称:gpac,代码行数:35,代码来源:mpeg4_audio.c
示例18: group_cache_insert_entry
/*guarentee the tr_state->candidate has the lowest delta value*/
static void group_cache_insert_entry(GF_Node *node, GroupingNode2D *group, GF_TraverseState *tr_state)
{
u32 i, count;
GF_List *cache_candidates = tr_state->visual->compositor->cached_groups;
GroupingNode2D *current;
current = NULL;
count = gf_list_count(cache_candidates);
for (i=0; i<count; i++) {
current = gf_list_get(cache_candidates, i);
/*if entry's priority is higher than our group, insert our group here*/
if (current->priority >= group->priority) {
gf_list_insert(cache_candidates, group, i);
break;
}
}
if (i==count)
gf_list_add(cache_candidates, group);
tr_state->visual->compositor->video_cache_current_size += group->cached_size;
/*log the information*/
GF_LOG(GF_LOG_DEBUG, GF_LOG_CACHE, ("[CACHE]\tAdding object %s\tObjects: %d\tSlope: %g\tSize: %d\tTime: %d\n",
gf_node_get_log_name(node),
group->nb_objects,
FIX2FLT(group->priority),
group->cached_size,
group->traverse_time));
GF_LOG(GF_LOG_DEBUG, GF_LOG_CACHE, ("[CACHE] Status (KB): Max: %d\tUsed: %d\tNb Groups: %d\n",
tr_state->visual->compositor->video_cache_max_size,
tr_state->visual->compositor->video_cache_current_size,
gf_list_count(tr_state->visual->compositor->cached_groups)
));
}
开发者ID:erelh,项目名称:gpac,代码行数:35,代码来源:offscreen_cache.c
示例19: SV_ReadPlat
static int SV_ReadPlat(plat_t *plat)
{
/* Original Heretic format:
typedef struct {
thinker_t thinker; // was 12 bytes
Sector *sector;
fixed_t speed;
fixed_t low;
fixed_t high;
int wait;
int count;
platstate_e status; // was 32bit int
platstate_e oldStatus; // was 32bit int
boolean crush;
int tag;
plattype_e type; // was 32bit int
} v13_plat_t;
*/
byte temp[SIZEOF_V13_THINKER_T];
// Padding at the start (an old thinker_t struct)
Reader_Read(svReader, &temp, SIZEOF_V13_THINKER_T);
// Start of used data members.
// A 32bit pointer to sector, serialized.
plat->sector = P_ToPtr(DMU_SECTOR, Reader_ReadInt32(svReader));
if(!plat->sector)
Con_Error("tc_plat: bad sector number\n");
plat->speed = FIX2FLT(Reader_ReadInt32(svReader));
plat->low = FIX2FLT(Reader_ReadInt32(svReader));
plat->high = FIX2FLT(Reader_ReadInt32(svReader));
plat->wait = Reader_ReadInt32(svReader);
plat->count = Reader_ReadInt32(svReader);
plat->state = Reader_ReadInt32(svReader);
plat->oldState = Reader_ReadInt32(svReader);
plat->crush = Reader_ReadInt32(svReader);
plat->tag = Reader_ReadInt32(svReader);
plat->type = Reader_ReadInt32(svReader);
plat->thinker.function = T_PlatRaise;
if(!(temp + V13_THINKER_T_FUNC_OFFSET))
Thinker_SetStasis(&plat->thinker, true);
P_ToXSector(plat->sector)->specialData = T_PlatRaise;
return true; // Add this thinker.
}
开发者ID:roman313,项目名称:Doomsday-Engine,代码行数:46,代码来源:p_oldsvg.c
示例20: A_LeafThrust
void C_DECL A_LeafThrust(mobj_t *actor)
{
if(P_Random() > 96)
{
return;
}
actor->mom[MZ] += FIX2FLT(P_Random() << 9) + 1;
}
开发者ID:skyjake,项目名称:Doomsday-Engine,代码行数:8,代码来源:a_action.c
注:本文中的FIX2FLT函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论