Welcome, guest. You can be a Login или register
« Previous 1 2 3 4 Next » | All
Author
Topic title
Eugeny
Offline
191 posts
Karma 10
Приветствую!

Решили мы добавить в наш аддон дождь, клонировали имеющийся снег, но возникла проблема. Чтобы покрыть все открытое пространство на карте дождем, необходимо примерно 250 энтити дождя. Но так как уже на карте уперлись в лимиты подумали перенести дождь из Enemy Territory.
Попробовал перенести, практически получилось.
Компоновщик ругается, хотя как в ET добавил в RtCW.
2>g_save.obj : error LNK2001: неразрешенный внешний символ "_CG_GenerateTracemap"
2>..\Release/qagamex86.dll : fatal error LNK1120: 1 неразрешенных внешних элементов

Целый день бьюсь с ним. :(
Берсеркер
Offline
Суровый челябинский программист
2258 posts
Karma 200
приветствую.
погляди по аналогии как сделано для прочих вызовов, подобных CG_GenerateTracemap,
что-то где-то видимо не дописал.
Машина несла меня через неведомые районы Галактики сквозь пространство математической реальности быстрее скорости света. (C) Фред Саберхаген.
Eugeny
Offline
191 posts
Karma 10
такой код в bg_public.h

// Tracemap
#ifdef CGAMEDLL
void CG_GenerateTracemap( void );
#endif // CGAMEDLL
qboolean BG_LoadTraceMap( char *rawmapname, vec2_t world_mins, vec2_t world_maxs );
float BG_GetSkyHeightAtPoint( vec3_t pos );
float BG_GetSkyGroundHeightAtPoint( vec3_t pos );
float BG_GetGroundHeightAtPoint( vec3_t pos );
int BG_GetTracemapGroundFloor( void );
int BG_GetTracemapGroundCeil( void );

это написано в bg_tracemap.c

#ifdef CGAMEDLL
void CG_GenerateTracemap( void ) {
бла-бла-бла :D
}
#endif // CGAMEDLL

если объявить этот CGAMEDLL, то начинает ругаться на "cg" и "cgs"

3>.\bg_tracemap.c(81) : error C2065: cg: необъявленный идентификатор
2>.\bg_tracemap.c(375) : error C2065: cgs: необъявленный идентификатор

intellisense подсказывает их определения
:'(
Eugeny
Offline
191 posts
Karma 10
Кто-нибудь что-нибудь подскажет?

И как поменять порядок построения? а то ЕТ в другом порядке компилится
Eugeny
Offline
191 posts
Karma 10
одну проблему решил добавив пустую функцию
#ifdef CGAMEDLL
void CG_GenerateTracemap( void ) {
бла-бла-бла :D
}
#else
void CG_GenerateTracemap( void ) {}
#endif // CGAMEDLL

теперь дождь не хочет идти :-
теперь дождь не хочет идти :-[
Берсеркер
Offline
Суровый челябинский программист
2258 posts
Karma 200
эх.. не копался ни разу в cg и ui коде...
Вопрос 1: CG_GenerateTracemap есть в сурсах ET или это ваша новая функция?
Если второе, тогда второй вопрос: дай аналогичную функцию, попробую проследить связь между cg и движком.
Машина несла меня через неведомые районы Галактики сквозь пространство математической реальности быстрее скорости света. (C) Фред Саберхаген.
Eugeny
Offline
191 posts
Karma 10
[quote author=Берсеркер link=topic=713.msg16071#msg16071 date=1325935264]
Вопрос 1: CG_GenerateTracemap есть в сурсах ET или это ваша новая функция?
[/quote]
функция CG_GenerateTracemap в сурсах есть

как я уже писал, есть условие
#ifdef CGAMEDLL
void CG_GenerateTracemap( void ) {
// код функции
}
#endif // CGAMEDLL
из-за этого условия он и говорил что неразрешенный внешний символ "_CG_GenerateTracemap"
я добавил в условие #else и код пустой функции void CG_GenerateTracemap( void ) и он закончил компиляцию
Берсеркер
Offline
Суровый челябинский программист
2258 posts
Karma 200
если объявить этот CGAMEDLL, то начинает ругаться на "cg" и "cgs"

надо объявлять CGAMEDLL, иначе не будут выполняться условия типа
// Tracemap
#ifdef CGAMEDLL
void CG_GenerateTracemap( void );
#endif // CGAMEDLL

и далее разбираться почему не видны cg и cgs.

В самом начале bg_tracemap.c есть
#ifdef CGAMEDLL
#include "../cgame/cg_local.h"
#else
#include "g_local.h"
#endif

т.е. подтягивается файл "../cgame/cg_local.h", а в нём то прописано вот что:
extern cgs_t cgs;
extern cg_t cg;


Если не получится, скинь сурс, а то неудобно так вот умозаключениями баги править :)
Машина несла меня через неведомые районы Галактики сквозь пространство математической реальности быстрее скорости света. (C) Фред Саберхаген.
Eugeny
Offline
191 posts
Karma 10
вот залил
http://zalil.ru/32444754

свое решение проблемы описал пару сообщений назад
Eugeny
Offline
191 posts
Karma 10
Создал тестовую карту с дождем в ЕТ дождь отображается, а в Вольфе отказывается и ошибок не пишет. :(
возможно что-то где-то не добавил в код
« Previous 1 2 3 4 Next » | All