- SDL_Event event;
- while(SDL_PollEvent(&event))
- {
- switch(event.type)
- {
- case SDL_MOUSEBUTTONDOWN:
- button_press(event.button.x, screen_h-1-event.button.y, event.button.button);
- break;
- case SDL_MOUSEBUTTONUP:
- button_release(event.button.x, screen_h-1-event.button.y, event.button.button);
- break;
- case SDL_MOUSEMOTION:
- pointer_motion(event.motion.x, screen_h-1-event.motion.y);
- break;
- case SDL_KEYDOWN:
- key_press(event.key.keysym.sym, event.key.keysym.mod);
- break;
- case SDL_QUIT:
- exit(0);
- break;
- }
- }
-
- control.tick();
-
- glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
-
- project_3d();
- glLoadIdentity();
- glRotatef(-cam_rot*180/M_PI, 0, 0, 1);
- glTranslatef(-cam_pos.x, -cam_pos.y, -cam_pos.z);
-
- if(!no_lighting)
- {
- glEnable(GL_LIGHTING);
- glEnable(GL_LIGHT0);
- float params[4];
- params[0]=0;
- params[1]=-0.2;
- params[2]=1;
- params[3]=0;
- glLightfv(GL_LIGHT0, GL_POSITION, params);
- }
-
- //glEnable(GL_DEPTH_TEST);
- glEnable(GL_MULTISAMPLE);
+ for(list<Train *>::iterator i=new_trains.begin(); i!=new_trains.end(); ++i)
+ process_new_train(**i);
+ new_trains.clear();